«Не в обиду Android, но заказчики идут в iOS». Как в Беларуси разрабатывали iOS-приложения на заре iPhone

18 185
03 июля 2017 в 8:38
Автор: Станислав Иванейко. Фото: Влад Борисевич

«Не в обиду Android, но заказчики идут в iOS». Как в Беларуси разрабатывали iOS-приложения на заре iPhone

Автор: Станислав Иванейко. Фото: Влад Борисевич

С момента старта продаж iPhone прошло уже десять лет. При всем многообразии мнений о смартфоне от Apple давайте признаем очевидное: он оказал колоссальное влияние на мобильную индустрию и ввел в норму покупку дополнительного ПО через внутренний магазин, что оказалось очень удобно. Сервис AppStore появился лишь спустя год — изначально Джобс был против идеи допуска сторонних разработчиков к его сокровищу. Но передумал он не зря: AppStore дал дорогу сотням тысяч компаний и инди-творцов. Сейчас для iOS-разработчиков есть бесчисленное множество инструкций и обучающих лекций, в то время как раньше никто толком ничего не знал. В Беларуси тоже были энтузиасты, которые взялись за освоение приложений для iOS, и они рассказали Onliner.by, в каких условиях проходила разработка.

Алексей Шевчик и Игорь Сапьяник и сейчас создают проекты для iOS. Они работают в аутсорсинговой компании SoftTeco. Специалисты говорят, что теперь освоить язык программирования и выпустить приложение в AppStore — дело только усидчивости. Все зависит от того, хватит ли терпения штудировать форумы и читать пособия. Раньше ситуация была другая: информации практически не было, возможности iOS и правила отбора приложений оставались расплывчатыми.

«Было много ситуаций, когда заказчик хотел реализовать какую-то функцию, но мы упирались в ограничения. Банально нельзя было сделать „скопировать-вставить“ между приложениями»

— Изначально iPhone наделал много шума, поэтому ни у кого не было сомнений, что платформа перспективная. Если iPhone выстрелил, то выстрелят и приложения для него. В белорусских компаниях все прекрасно понимали потенциал и заинтересовались. Сперва, в октябре 2007 года, появилась информация о подготовке SDK для разработчиков, а в марте 2008 появилась и его первая бета-версия. Мне поручили изучить вопрос. Разрабатывать приложения возможно только в Apple-среде, потому начались поиски iMac. Хотя даже тогда техника Apple не была диковинной для Беларуси. У нас быстро появился реальный заказчик, и я уже делал какую-то двухмерную игру, — вспоминает Игорь.

Раньше приложению выделяли 20 МБ ОЗУ, теперь — под 500

Операционная система от Apple известна своей закрытостью, но разработчики говорят, что теперь ситуация стала намного лучше по сравнению с началом 2010-х:

— Было много ситуаций, когда заказчик хотел реализовать какую-то функцию, но мы упирались в ограничения. Банально нельзя было сделать «скопировать-вставить» между приложениями. Работа в фоновом режиме появилась не сразу: раньше если закрывал приложение, то насовсем, в фоне ничего не работало. Был еще забавный момент: почти все заказчики хотели добавить в приложение кнопку «Выход». Приходилось объяснять им, что за это отвечает аппаратная клавиша Home.

За годы разработки приложений для iOS у разработчиков накопилась большая коллекция iPhone и iPod разных поколений

Ограничений было много, говорит Алексей:

— Приложение должно было потреблять не больше 20 МБ оперативной памяти, а общий объем ОЗУ в первом iPhone составлял 128 МБ. Нужно учитывать, как работает пользователь: запустил приложение при открытых страницах в Safari — и телефон мог «лечь». Теперь, конечно, все намного лучше: разработчикам выделяют 300—500 мегабайт.

К слову, работу в фоне Apple разрешает неохотно: это может плохо сказаться на автономности.

— Если приложение использует геолокацию или потребляет слишком много энергии, модераторы AppStore запретят фоновый режим. Приходилось искать обходные пути — например, делать вид, что геолокация нам нужна для использования навигатора.

Разработчики вспоминают, что заказчики хотели сделать много вещей «от себя», в то время как Apple вела строгую политику: например, размер кнопок должен был быть не меньше 40 пикселей, а дизайнеры по старинке адаптировали интерфейс под тонкие стилусы, которые тогда использовались для работы с другими сенсорными смартфонами.

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

Apple была пионером в плане проверки приложений: мы сначала не понимали, как они будут успевать оценивать такой объем проектов.

Из-за высокой стоимости iPhone Алексей и Игорь первые несколько лет тестировали приложения на более дешевых iPod Touch.

— В плане разработки — полная идентичность, разве что не было сообщений и звонков. Но SDK все равно не открывал доступ к этим функциям, поэтому для разработчика разницы между iPhone и iPod совсем не было. Правда, приложения работали немного медленнее.

— Как проходила разработка на iOS? Ведь это не стационарная платформа, но система не похожа и на мобильные ОС того времени.

— Не могу сказать, что Symbian сильно отставала: к тому времени она была очень развитой платформой с серьезными проектами. Весь рынок был погружен в ту сферу. И вдруг появляется iOS — нечто совершенно новое. Еще и специфический язык Objective-C, который использовался в «маках». В первую неделю нужно было только привыкать к синтаксису, он был непохожим на другие языки. Приходилось изучать его практически с нуля.

Проблем добавляла и закрытость SDK для iOS: доступно мало функций, скудные описания. Но тут повезло с родством OS X и iOS: если что-то получилось сделать для стационарной платформы, с большой долей вероятности такой же принцип работы будет и для мобильной. Теперь приложения пишутся на новом языке — Swift. Он гораздо удобнее и прогрессивнее, многие вещи упрощены. Хотя есть детские болячки: приложение долго «собирается», нам нужно постоянно обновлять топовое железо. Раньше все смеялись над Swift, а теперь в компанию приходят люди, которые знают только этот язык.

Разработка на «хакинтоше»

Работать с SDK Алексей и Игорь начинали на «хакинтошах» — обычных компьютерах, на которые установлена macOS. Более того, тестировать приложения приходилось тоже на эмуляторах, а не на iPhone.

— Изначально запуск пробных приложений на смартфоне был доступен только для американского региона. Повезло, что нашелся заказчик из США. Он сразу купил нам подписку. Дальше начались поиски самого устройства. В компании человек на 150 нашел одного сотрудника с iPhone. Запускаем приложение и видим, что работает оно с черепашьей скоростью: эмулятор для компьютера был намного быстрее.

На белом смартфоне заметна крупная трещина у разъема. Она рано или поздно появлялась практически на всех экземплярах iPhone 3G и 3GS

— Думаю, тогда еще хорошо поднялись продажи компьютеров от Apple: все ринулись покупать их, чтобы разрабатывать приложения. Возникла большая сложность: на чем делать и собирать программы? У нас были ноутбуки Acer и Toshiba, начали ставить «хакинтоши». Работали сборки странно: если моя система переходила в спящий режим, то намертво зависала, а у Алексея почему-то не активировалась команда на включение кулера — ноутбук перегревался, — говорит Игорь.

Условия были практически кустарные: «Сначала я писал игру на C++ и в командной строке по координатам высчитывал, куда полетит пуля. Потом кусок кода отправлял Игорю, который на „хакинтоше“ все это проверял уже визуально».

Смартфон Apple привнес несколько принципиально новых типов управления — например, увеличение фотографий разведением пальцев. Сейчас этот функционал в приложение добавит и ребенок, а тогда нужно было совершать гораздо больше операций.

— Разработчики понимали, что это крутая «фишка» и что ее нужно использовать. Но были и другие — акселерометр, например. Некоторые заказчики думали, что сделают поддержку вертикального и горизонтального режимов и порвут рынок.

Странности модераторов Apple

Требования модераторов AppStore разработчики называют вполне справедливыми.

— Наиболее частые причины отказов в пропуске приложения — нестабильная и некорректная реализация встроенных покупок. Еще приложения должны поддерживать актуальные процессоры: например, с переходом на новую архитектуру рассылалось предупреждение, что программа или игра должна работать по другой схеме. Это вызывало проблемы, особенно если мы использовали какие-то сторонние библиотеки. Также до сих пор идет отказ приложениям, которые не адаптированы под пропорции маленьких экранов iPhone 4 и 4S.

При этом спорных ситуаций тоже хватало.

— Проще всего решить этот вопрос через звонок, но сначала модераторы настаивают на решении его письменно, а это бюрократия. Замечу, что Apple была пионером в плане проверки приложений: мы сначала не понимали, как они будут успевать оценивать такой объем проектов. Но постепенно все привыкли к полутора-двум неделям ожидания. Были интересные ситуации. Помню, сделали приложение, которое работало с серверами. Выкладываем приложение на модерацию, боимся отказа из-за высокого потребления энергии. Вдруг мы появляемся в AppStore — открываем шампанское, празднуем. Тут кто-то запускает приложение и не может войти в аккаунт. Оказывается, мы забыли запустить сервер. Похоже, Apple просто не проверяла наше приложение. Так что человеческий фактор тоже присутствует.

Самым полюбившимся iPhone Игорь и Алексей называют четвертый — из-за появления Retina-экрана и мультизадачности в iOS 4.

— Еще были странности с протоколом IPv6: мол, не поддерживается. Делаю якобы обновленную версию приложения, в которой на самом деле ничего не изменено, отправляю им — готово, проект в AppStore. Помнится случай с интерактивной книжкой для детей. Почему-то русская версия без проблем прошла с первого раза, а англоязычной постоянно отказывали: говорили, что у нас «неверный тип покупок». Звонил им много раз, доказывал, что все в порядке. Хотелось сказать, что тот же самый продукт на русском языке у вас уже выложен в AppStore, но тогда его сразу заблокировали бы. В конце концов они пропустили англоязычную версию, причем мы, кажется, так ничего и не изменили, — рассказывает Алексей.

В то же время на Android «приложение появляется в магазине за четыре часа», и разработчики называют это главной причиной захламленности фирменного магазина.

— Хуже всего было в начале, когда Google Play пытался срочно нагнать AppStore. Компания брала исключительно количеством, пропускала одинаковые приложения — помню, в какой-то момент насчитали 87 вариаций программы «Hello, world!». Не в обиду Android, но серьезные заказчики идут в iOS. Деньги приносят приложения для iPhone, как ни крути. В плане удобства, мне кажется, разработка для iOS тоже проще. Да, у Android много возможностей: например, для одного заказчика мы изучали, что реально достать из данных SIM-карты. Если кратко, то все. А в iPhone только недавно появился доступ к названию сотового оператора и его коду. Номер телефона, уверен, вообще никогда не откроют. В плане конфиденциальности информации Apple очень строга.

Самым полюбившимся iPhone Игорь и Алексей называют четвертый — из-за появления Retina-экрана и мультизадачности в iOS 4.

— Такое разрешение действительно было прорывом. Плотность пикселей больше ровно в два раза, но для разработчика ничего не изменилось — это огромный плюс. Мы работаем с логическими пикселями, то есть в тех же координатах, что и на прошлых iPhone.


Разработчики считают, что iOS и Android теперь схожи.

— Сначала iOS была очень закрытой, а в Android можно все — но пользоваться этим, честно говоря, оказывалось невозможно. Сейчас происходят обратные процессы: Apple дает доступ к ранее заблокированным функциям, а Google латает дыры в безопасности, вводя ограничения.

По количеству доступных приложений Android все еще на первом месте: 2,8 млн в Google Play против 2,2 млн в AppStore.

Ремонт компьютерной техники в сервисе «Onliner. Услуги»

Читайте также:

Перепечатка текста и фотографий Onliner.by запрещена без разрешения редакции. nak@onliner.by