Исповедь iOS-разработчика, или «за что я ненавижу iOS»

Для пользователя iOS — прекрасная платформа. Иногда она бывает немного скучной и недостаточно гибкой, а иногда — красивой и удобной (второе — большую часть времени).

А вот у разработчиков не все так гладко. Для них иметь дело с iOS (и Apple вообще) — это как пытаться найти общий язык с роботом-параноиком, работающим советским пограничником в произведении Кафки.

Safari под iOS — это боль

Это один их самых кошмарных браузеров, с которыми я имел удовольствие работать с тех пор, как в далекие 90-е стал веб-разработчиком. Я потерял счет хакам и костылям, которые наворотил в своем коде, чтобы он нормально себя вел в Safari под iOS. Для мира, живущего по стандартам 2016 года, это дико.

Чтобы вы понимали, о чем я. Как вам то, что вы не можете указать высоту элемента iframe? Он появился в 1999 году, и поэтому это можно сделать в любом браузере — даже на IE6, самом ненавистном браузере планеты. Но не в Safari. С 2011 года эта проблема так и висит неразрешенной.

Естественно, вас это поразит. Почему Apple не может использовать под iOS другие браузерные движки? Или почему Apple больше не инвестирует в проект Webkit, как делает это Google с Chromium?

Вы не можете (без проблем) потестировать старые версии iOS

Как-то раз я хотел потестировать симулятор под iOS 7, и знаете, что мне помешало? Так сделать нельзя. Нет, ну вообще кое-как можно, но для этого надо скачать старую и уже давно не поддерживаемую версию Xcode, которая работает только под Mavericks.

Таким образом, остается собирать у рабочего стола коллекцию старых «маков» и складывать в ящики старые устройства под iOS, молясь, чтобы Apple не сломала что-нибудь еще.

Политика Apple — в том, чтобы «пленных не брать». Если вы не обновляете свои девайсы — вы не «свой человек». Так что идите и покупайте новое, если не хотите сидеть с забагованными приложениями.

Сертификаты и профили

Работа с сертификатами iOS — работа утомительная, полная бюрократии и покрытая завесой загадок. Иногда что-то идет не так — и ни документация Apple, ни Xcode, ни ужасный Member Center не прольет свет на истинные причины происходящего.

Недавно я потерял 2 дня, пытаясь понять, почему у меня не создается сертификат. Наконец, я нашел ответ в непонятной документации от Mozilla. Xcode просто продемонстрировал мне неактивную кнопку, на форуме разработчиков Apple ответа никто не дал.

Как разработчику вам не требуется спрашивать у Apple разрешения на запуск своего кода на ваших устройствах. Знаете, как и на любой другой платформе мира. Даже macOS.

AppStore

AppStore — еще один уголок разочарования. Например, всего несколько часов мое приложение отклонили, потому что кому-то в компании не понравились его скриншоты.

Мы заметили, что ваши скриншоты не демонстрируют должным образом работу приложения.

Я просто загрузил те же скриншоты, ничего не меняя.

Если Apple надо, чтобы скриншотов было больше, или они просто некрасивые, то почему бы так об этом и не сказать? Нет, я ведь не заслужил ничего большего, чем автоматический ответ.

Кстати, на то, чтобы решить, нравятся ли компании ваши скриншоты, Apple тратит примерно неделю. Удачи вам с планированием даты релиза.

Помните робота из фильма Элизиум?

>

«Вы хотите поговорить с живым человеком?»

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

Впрочем, моя ситуация не так страшна, как та, что недавно случилась с приложением Dash под iOS. Apple решила, что разработчик такого успешного приложения — определенно мошенник, и заблокировала его приложение.

Решение Apple окончательное и обжалованию не подлежит.

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

Самое страшное

За привилегию быть iOS-разработчиком надо платить. Мало того, что вам приходится работать за компьютером, купленным с наценкой за бренд, и терпеть все эти проблемы — нужно платить за свои страдания.

Быть может, однажды Apple делает среду разработки под iOS бесплатной для всех. Весь мир будет дружно аплодировать, а фанбои — утирать слезы счастья. Ах, какой щедрый жест!

Кстати, почти под любую другую платформу можно разрабатывать бесплатно и даже компилировать под какие-нибудь другие платформы. Ну то есть скомпилировать приложение для Windows под macOS, Android-приложение под Linux.

Вот так оно.

Источник: Medium