Как стать автором
Обновить

Первый опыт разработки для Apple iOS (IP-калькулятор)

Время на прочтение3 мин
Количество просмотров5.8K


Хочу поделиться своим опытом разработки приложения для iOS (IP-калькулятор). Опыт нельзя назвать успешным, тем интереснее, и, надеюсь, полезнее будет мой пост для начинающих разработчиков.

Сразу хочу сказать, что моя профессиональная деятельность не связана с разработкой ПО, и до iOS опыта программирования для мобильных платформ у меня не было (за исключением написания простеньких утилит на Qt для Symbian).

Собственно знакомство с iOS началось с приобретения iPhone. И сразу же захотелось что-нибудь для него написать. Поскольку на работе часто приходиться сталкиваться с IP-адресами, а вычислять в уме что-то помимо числа хостов в сети с заданной маской для меня не так просто, и не всегда под рукой есть онлайн или оффлайн (листочек-шпаргалка) IP-калькулятор, возникла идея написать простенькую программу, которая по указанному IP-адресу и маске выводила некоторую полезную информацию. Понятно, что в App Store уже имелась куча таких приложений. Тем не менее, просмотрев практически весь список (порядка 30 приложений), я не нашёл ни одного, которым я бы хотел пользоваться. Это укрепило меня, и я твердо решил написать достаточно простой IP-калькулятор со строгим/чистым дизайном. Убедиться в том, получилось ли у меня это сделать – можно тут.



Для разработки я использовал MacOS Snow Leopard (10.6). На мой взгляд, людям, имеющим только ОС Windows (и не имеющим компьютер mac) проще всего использовать MacOS на виртуальной машине. Не понимаю, чем вызван спор «Макинтош vs. Хакинтош», когда можно «в один клик» начать работать с MacOS имея хостовую ОС Windows. Как мне кажется, для начинающих (и не только) разработчиков это оптимальный вариант.

С языком Objective-C и средой разработки я освоился очень быстро. В этом мне помогли две книги. Первая («Beginning iPhone 4 Development: Exploring the iOS SDK » by David Mark, Jack Nutting & Jeff LaMarche), очень простая, в которой разжевывается буквально всё. Вторая («Programming in Objective-C 2.0», Stephen G. Kochan) куда более интересна, и, на мой взгляд, даже в каком-то смысле фундаментальна. Отдельного внимания заслуживает вопрос с управлением памятью. Начинающим разработчикам рекомендую, прежде всего, ознакомиться с этой темой (все внимание на время жизни объектов и retain/release!) и инструментом Leaks в XCode.

В плане разработки я не столкнулся с какими-либо сложностями, кроме отсутствия возможности использования некоторых классов, при программировании для старых версий iOS (3.*). В частности, это касается жестов (UI…GestureRecognizer) и регулярных выражений (NSRegularExpression). Судя по App Strore, многие разработчики, не слишком усердствуя, указывают в виде минимальной версии iOS 4.0 или даже 5.0 (!). Возможно они и правы, и не так много устройств со старыми iOS, но я статистики не видел, поэтому опираться только на новые версии iOS не хочется.

Если кому интересно, проблема с отсутствием GestureRecognizer может быть решена так, а с отсутствием NSRegularExpression так.

Тем, кто хочет разобраться с тем, как можно реализовать pop-up меню, аналогичному тому, что используется в адресной книге iPhone для копирования номеров контактов, пригодится эта статья.

С процессом покупки лицензии и размещением программы в App Store разобраться довольно просто (единственное, что требует внимания – заполнение Bank Info в iTunes Connect, советую обращаться в банк, если у вас есть какие-либо вопросы или сомнения – сэкономите время). По времени: с момента отправки факса до момента получения лицензии разработчика прошло 7 дней, с момента загрузки программы в iTunes Connect, до момента её принятия и размещения в App Store прошло 6 дней (приняли с первого раза).

Динамику покупок вы можете оценить по скриншоту, приведенному ниже. Программа какое-то время держалась в первой шестерке (занимала 3, 5, 6 места), потом выпала из этой шестерки и перестала кем-либо покупаться.



Всего было совершено 17 покупок, распределение по странам следующее:
  • USA – 7
  • France – 3
  • Russia – 3
  • Austria – 1
  • Italy – 1
  • Japan – 1
  • Niger – 1
Отмечу одну тонкость – крайне тщательно необходимо подходить к тегам, которые вы указываете, когда выкладываете программу, особенно к сокращенным формам слов. Не рассчитывайте что, указав в качестве тега слово «automobile», ваша программа будет выдаваться в iTunes по запросу «auto». Поиск в нем достаточно глупый, чтобы понимать, что это могут быть синонимы.

Считаю свой первый опыт в разработке под iOS удовлетворительным, положительного результата нет, но и отрицательного тоже. Буду рад замечаниям/советам/комментариям/вопросам.

UPD Спасибо Infernal за статистику по версиям используемых iOS.

Я не призываю нарушать авторское право и использовать для разработки ОС Mac OS, принадлежащие другим людям (нарушающим, кстати, лицензионное соглашение). Trial-версия Mac OS (сроком действия, например в 31 день) могла бы решить эту проблему.
Теги:
Хабы:
Всего голосов 28: ↑15 и ↓13+2
Комментарии26

Публикации

Истории

Работа

iOS разработчик
24 вакансии
Swift разработчик
44 вакансии

Ближайшие события

27 августа – 7 октября
Премия digital-кейсов «Проксима»
МоскваОнлайн
28 – 29 сентября
Конференция E-CODE
МоскваОнлайн
28 сентября – 5 октября
О! Хакатон
Онлайн
30 сентября – 1 октября
Конференция фронтенд-разработчиков FrontendConf 2024
МоскваОнлайн
3 – 18 октября
Kokoc Hackathon 2024
Онлайн
7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн