В начале марта 2008 года Apple выпустила первый iOS SDK — набор инструментов разработки приложений для iPhone, iPod Touch и iPad. Путь, который прошли приложения и средства разработки для iOS за это время, описал в статье на TechCrunch разработчик c 40-летним опытом Крейг Хоккенбери.
Появление iPhone и SDK к нему повлияло на жизни многих людей и на деятельность самой Apple. В посвящённом этому событию тексте есть немало полезных исторических ссылок, на которые стоит обратить внимание. Хоккенбери отмечает, что постарался свести к минимуму профессиональный сленг разработчиков, чтобы сделать статью доступной широкой аудиории.
Прикоснуться к будущему
Первый iPhone представили в июне 2007 года, и многим он казался чем-то невероятным. Всем было любопытно, что же скрывается внутри металлического корпуса со стеклянным экраном. Apple рассказала о том, что её телефон умеет делать, но не то, как именно эти функции можно создавать. Разработчики ничего не знали о скорости процессора, доступном объёме памяти или о том, как писать приложения.
Программистам было интересно изучить возможности устройства и понимать, каким образом изменится процесс разработки программного обеспечения. Предстояло раскрыть много секретов, и энтузиасты из разных частей мира подолгу работали над тем, чтобы узнать их. Это называлось джейлбрейк.
Джейлбрейк
Открытия посыпались одно за другим. В течение нескольких недель была взломана файловая система айфона, а спустя несколько месяцев появились программы-установщики сторонних приложений.
Такими темпами хакеры смогли продвигаться благодаря тому, что для разработки iPhone применяли те же инструменты, что и для MacOS. Чтобы ускорить процесс, создатели iOS решили использовать привычную инфраструктуру, но именно это и стало преимуществом в руках хакеров.
Например, большое количество программ для айфона писали на Objective-C. Разработчики Mac OS долгое время использовали утилиту class-dump, которая показывала различные элементы приложения и их взаимодействие. После получения доступа к первым приложениям и фреймфоркам для iPhone разработчики смогли лучше понять, как они написаны.
Важным этапом стало появление UIKit, который содержал все компоненты пользовательского интерфейса (например, кнопки и таблицы). А так как они были теми же, что и в MacOS, сделать элементы для клика и прокрутки было несложно.
Ещё одним важным ключом к разгадке стала операционная система. Apple выбрала Unix, а это значило, что с айфоном будет совместимо много ПО с открытым кодом. Поэтому создавать приложения можно было именно нём, а потом переносить на телефон и просматривать содержание файла LatestCrash.plist в аварийном журнале /var/logs/CrashReporter.
«Я хорошо помню, как смог впервые запустить командную строку на устройстве и воспользовался командой uname. Я был дома!», — пишет Хоккенбери.
Ранние этапы мобильной разработки
Я был не единственным. Тысячи других разработчиков начинали понимать, что начинка устройства так же интересна, как и внешность. Поэтому неудивительно, с какой скоростью появлялись новые iOS-приложения.
Одним из поворотных моментов стала конференция для разработчиков C4 в августе 2007 года. У многих участников уже были устройства от Apple, которые они скрупулёзно изучали. Большинство энтузиастов были опытными Mac-разработчиками, и многие узнали о новинке на прошедшей парой недель ранее конференции WWDC.
В это же время проходил конкурс по работе с iPhone API «Iron Coder». Его организатор Джонатан Резнич хотел, чтобы разработчики создали что-нибудь креативное. Так и произошло.
Лично я представил программу для расчёта графиков функций на JavaScript. Победило в соревновании приложение для проведения видеоконференций, которое написали Глен и Кен Аспеслаф. Они сами собрали фронтальную камеру и написали что-то вроде Face Time на три года раньше, чем Apple. Стоит учесть, что у первого айфона не было даже обычной видеокамеры.
Сам Хоккенбери отмечает, что для него предвестником будущего стало приложение, занявшее второе место. Во-первых, это была игра, причём на телефоне она работала достаточно убедительно. Но ещё важнее стало то, что она чётко давала понять: грамотный код позволяет улучшить пользовательские возможности объектов из «реального мира» благодаря сенсорному экрану iPhone.
Энтузиасты получили нужные инструменты и вдохновение. Что дальше?
Первые приложения Iconfactory
В июне 2007 года мы выпустили версию 2.1 пользующегося огромной популярностью Mac-приложения для Twitter. Ведь было так просто перенести часть кода Cocoa на другую платформу.
На деле всё оказалось не так. Но я многому учился и получал от этого огромное удовольствие. Айфон привлекал разработчиков из различных сфер, среди них был Шон Хебер. В 2007 году он занимался веб-разработкой и ничего не понимал в Objective-C и разработке под Mac. Но это не помешало ему покопаться в class-dump и создать своё первое приложение.
Он решил не останавливаться и писать по приложению в день весь ноябрь 2007 года. Популярность его марафона (который он называл «iприложение-в-день») среди джейлбрейк-сообщества просто зашкаливала. Именно это обеспечило ему место в Tapulous, наряду с талантливой командой Tap Tap Revenge.
В теченние месяца Шон продемонстрировал, что возможности разработки для iOS были безграничны. На айфоне можно было играть в игры, вести бюджет, сочинять мелодии или даже повесить с его помощью картину.
Ранняя версия UIKit была полна неожиданностей. Можно было целую вечность искать XML парсер, зарытый где-то в OfficeImport. Некоторые важные функции вообще отсутствовали: например, на Objective-C нельзя было вернуть числа с плавающей запятой.
Попадались и просто нелогичные вещи. Например, можно было вставить рандомный HTML-код в текстовый вид, который работал с простыми тегами вроде <b>, но ломался с более сложными. Для компоновки использовался LKLayer, почти как в новой Mac OS X Leopard, Появилась опция «многократного использования ячеек», что позволяло ускорить прокрутку, но само было сложным и неудобным. Тогда очень не хватало контроллеров представления, которые только что вышли для AppKit.
Всё это ничуть не мешало сообществу пробовать свои силы и познавать свои возможности. Но внезапно всё остановились.
Настоящий SDK
Apple упорно работали над развитием iPhone. Сообщество разработчиков джейлбрейк-приложений видело в новинке множество изъянов, но это было неважно. Компании удалось реализовать классную идею. Но теперь ей нужно было двигаться вперёд.
Возможно, на это повлиял джейлбрейк, но выпуск вполне мог быть задуман менеджерами Apple. Так или иначе, сообщество разработчиков было в восторге, когда всего через пять месяцев после выхода телефона Стив Джобс анонсировал появление первого официального SDK.
Выпустить его обещали в феврале 2008 года, но с учётом масштаба продукта никто не расстроился, что релиз опоздал на несколько дней. Десять лет назад 6 марта создатели приложений впервые услышали о симуляторе и других обновлениях Xcode, фреймворках Core Location и OpenGL, новеньком App Store, в котором можно будет скачивать приложения.
Вот видео презентации в Таун Холле и её трансляция на Macworld.
Теперь мы сами могли творить
Когда эйфория вокруг долгожданного SDK улеглась, разработчики всего мира во всю начали писать приложения. И всем нужно было торопиться.
На создание готовых приложений было отведено около четырёх месяцев. И то, что участники Iconfactory узнали за период развития джейлбрейка, давало им преимущество в плане разработки дизайна и кода.
«Прямо перед релизом своего магазина Apple добавила новые номинации в Apple Design Awards. Мы просто обалдели, когда выиграли заветный кубик! Насколько обалдели? Примерно так же, как когда скачивал новый SDK. Наше приложение появилось в App Store одним из первых и заняло верхние строчки в топах. Мы знали, что стали частью чего-то значительного. Но понятия не имели, насколько значительного», — рассказывает Хоккенбери.
Релоцировались? Теперь вы можете комментировать без верификации аккаунта.