Рубрика «разработка под iOS» - 180

Астронавты и космонавты ежедневно сталкиваются с огромными трудностями, выполняя научные эксперименты. Одним из ключевых аспектов эффективности их работы, является понимание того, как микрогравитация затрагивает их тела, и как их сохранять здоровыми. Важную роль в здоровье космонавтов играет режим питания. Cотрудники пищевой биохимической лаборатории NASA считают, что специальное приложение для iPad, окажется полезным и нужным членам космической команды для того, чтобы они могли следить за своим рационом питания. Мобильная программа будет подсказывать космонавтам, достаточно ли они употребляют калорий, находясь в космосе.

Читать полностью »

Платежи через iTunes фактические лидеры по монетизации контента, предоставляемого мобильными приложениями. В одном из известных мне приложений доход от них в 3 раза превышает доход от Google Play пользователей при том, что посещаемость последних в 1.5 раза выше. Таким образом, с одного пользователя iTunes можно получить вплоть до 5 раз больше денег, чем с одного пользователя Google Play. Данный аргумент достаточен для интеграции платежей iTunes в мобильные приложения.

В данной статье описываются некоторые особенности верификации платежей iTunes (в т.ч. и подписок) с серверной стороны, которые, как мне показалось, не достаточно освещены в существующих статьях.

Читать полностью »

HabraReader — удобно читаем Хабрахабр на iOS устройствахНекоторое время назад решил заняться разработкой программ для iOS. Хотелось написать что-нибудь для души и в качестве первого проекта я выбрал приложение для моего любимого сайта habrahabr.ru, так как на тот момент удобной программы для чтения постов сайта, удовлетворяющей моим требованиям, не было. Я представил себе какими свойствами должно обладать приложение, которым бы стал пользоваться ежедневно, и у меня получился следующий список:

  • простой интерфейс
  • возможность почитать посты в дороге, когда нет интернета
  • удобные возможности по работе с хабами/постами/поиском
  • возможность видеть только те посты, которые я еще не читал
  • автоматически синхронизировать список прочитанного и избранного между всеми моими iOS устройствами
  • поддержка habracut

Собственно речь и пойдет о том, как я решал поставленные задачи и что в итоге получилось.
Читать полностью »

Единственной постоянной в разработке програмного обеспечения являются баги. Давайте посмотрим правде в глаза, нам никогда не удавалось сделать все правильно с первого раза. Из-за небрежности или неправильных предположений, разработка программного обеспечения становится похожа на приготовление пирога в мотеле, кишащим тараканами, за исключением того, что в нашем случае мы сами создаем жуков. К счастью Xcode дает нам множество инструментов для того, чтобы держать насекомых в ужасе. Очевидно что для этой цели существует отладчик, который мы знаем и любим, но есть еще многое что он умеет помимо просмотра переменных и построчной отладки. Это туториал для начинающих и продвинутых iOS разработчиков, где вы сможете получить практический опыт работы с некоторыми менее известными но черезвычайно полезными методами отладки, таких как:
— как избавится от NSLog в пользу логирования брейкпоинтов;
— как избавится от списка TODO в пользу генерации предупреждений компилятора;
— остановка на условиях с выражениями;
— динамическое изменение данных с помощью LLDB и многое другое.
Как вы можете заметить, целью для меня является быть ленивым разработчиком. К счастью LLDB позволяет сохранить мое время на мартини. Он предоставляет мне отличные инструменты для того, чтобы я не был приклеен к моему компьютеру в течении дня и ночи. Устраивайтесь поудобнее в кресле и открывайте свой любимый напиток. Время становиться ленивым!
Замечу что данный туториал подразумевает что вы уже знакомы с основами отладки в Xcode. Если вы новичек, рекомендую пройти сначала этот туториал.
Читать полностью »

Один из способов обойти основные проблемы при поиске инвестора для iOS приложения

Проблем может три:

  • Инвестор хочет полный контроль над приложением или компанией;
  • Профильный инвестор ограничивает свободу творчества (например, в игре);
  • Непрофильный инвестор зачастую не даёт крупную сумму и не обеспечивает разные плюшки, которые есть у профильных.

Плюс большой сложностью бывает просто поверить в проект: многим инвесторам нужны вещи, которые повторяют истории каких-то других проектов, но с небольшими изменениями. В действительно необычные новые приложения чаще всего инвестировать планируется после доказательства продаж, когда инвестор-то уже и не очень нужен.

На сегодня уже есть команда iOS-разработчиков делающая своего рода римейк The Lost Vikings, которая решила попробовать краудинвестинг и обратилась к нам в Смартмаркет. И вот почему они это сделали. Читать полностью »

После небольшого перерыва, продолжим нашу разработку. Сегодня мы добавим в проект небольшой звуковой эффект, проигрываемый при соударении шарика с чем либо на игровом поле. О работе с SoundEngine (которой мы сегодня воспользуемся) я уже писал ранее. По этой причине, сегодня я расскажу не столько о ней, сколько о том, как ее использование отразится на разрабатываемом нами проекте.
Читать полностью »

Вступление

Изучая основы разработки под Android мне пришлось познакомится с таким замечательным языком, как Java. Читая очередной раздел гугловского GetStarted я наткнулся на такую конструкцию:

Button.OnClickListener mTakePicSOnClickListener = 
		new Button.OnClickListener() {
		@Override
		public void onClick(View v) {
			
		}
	};

Объявление представителя OnClickListener и переопределения у него метода onClick (поправьте меня Java программисты). Хм, подумал я, а круто бы эту фичу поиметь в Objective-C, а именно возможность переопределять реализацию метода у объекта(конкретного объекта, а не реализацию метода для всех объектов класса) да еще и через блоки в runtime (!) и забыл о этом всем… пока не оказался в полупустом автобусе в дождливую погоду. Времени было много и я решил поразмыслить над тем, что же тут можно сделать.
Зачем это нужно было? Изначально хотелось уметь делать так:

tableView1.delegate = [[NSObject new] override:@selector(tableView:didDeselectRowAtIndexPath:) imp:^void(NSIndexPath* ip){
       NSLog(@"selected row %i", ip.row);
}]
tableView2.delegate = [[NSObject new] override:@selector(tableView:didDeselectRowAtIndexPath:) imp:^void(NSIndexPath* ip){
       NSLog(@"selected row %i", ip.row);
}]

Обратите внимание, что предполагается изменение именно делегата и добавление/предопределение методов у него. А tableView остается оригинальным, без каких либо изменений.

Тем самым местом я чувствовал, что это вполне реализуемо благодаря богатому внутреннему миру Objective-C Runtime.
И да, то самое место меня не подвело.
Читать полностью »

В тестировании приложений от Little Beetle всегда участвуют дети – конечные потребители нашей продукции. Перед выходом обновлённой версии приложения «Маленький гений 2.0» мы в очередной раз пригласили юных тестеров в свой офис.

Маленькие гении: тестируем приложения вместе с детьми

Что из этого получилось – смотрите далее.Читать полностью »

Доброе время суток уважаемые разработчики!
Многие успели разбогатеть продавая игрушки и программы для Android и IOS устройств, и еще больше людей день и ночь думают — «что бы такое написать чтобы продавалось?». Кроме этого уже существует достаточно развитый рынок где требуются простые приложения — аналоги сайтов.
Читать полностью »

21 февраля в Киеве пройдет четвертая встреча AppClub { build, monetize }.

image

AppClub {build, monetize } — профессиональное общение на тему мобильной разработки, продвижения и монетизации, а также предоставление возможность мобильным стартапам рассказать о себе и получить живую обратную связь.

What's included?Читать полностью »


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js