Connect with us

Разработка

Как все начиналось: десять лет iPhone SDK

Один из первых разработчиков приложений для iPhone Крейг Хоккенберри вспомнил первые дни разработки приложений для нового устройства до выхода официального SDK от Apple.

Анна Гуляева

Опубликовано

/

     
     

6 марта – очень важный день как для мобильных разработчиков, так и для миллионов людей, пользующихся приложениями. Это десятая годовщина выхода оригинального SDK для iPhone. Я думаю, что не будет преуменьшением сказать, что этот релиз изменил жизнь многих людей. Он точно изменил мою, поэтому давайте остановимся и посмотрим на то, что случилось десять лет назад.

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

Прикосновение к будущему

Для многих из нас прикосновение к первому iPhone в июне 2007 было взглядом в будущее. Мы все хотели знать, какие возможности находятся внутри стекла и металла в наших карманах.

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

Как разработчики мы хотели знать о возможностях устройства. Мы хотели понять, как изменится дизайн наших программ. Нам было любопытно и многому ещё нужно было учиться. И мы научились. Мы назвали это джейлбрекингом.

Выход из тюрьмы

Открытия случились быстро. Всего через несколько недель была открыта файловая система. Спустя пару месяцев был разблокирован весь опыт нативных приложений. Стали доступны инструменты для разработчиков и люди начали писать инсталляторы для нативных приложений.

Этот быстрый прогресс стал возможен благодаря инструментам, которые использовались для создания оригинального iPhone. Apple полагалась на ту же инфраструктуру, что и с Mac OS. Они выбрали знакомую среду для ускорения разработки, но это помогло людям и за пределами Купертино быстро во всем разобраться.

Hello world

Например, большая часть программ на iPhone была создана при помощи Objective-C. Mac-разработчики долгое время использовали инструмент под названием class-dump, чтобы увидеть разные части приложения и узнать, как они общаются друг с другом. После получения доступа к первым фреймворкам и приложениям Apple эта программа дала много информации о том, что написала Apple.

Самой важной частью была новая вещь под названием UIKit. Она содержала все компоненты интерфейса, например, кнопки или таблицы. Хотя они и были похожи на элементы для Mac, приходилось учитывать объекты для тапов и скроллинга.

Другой важной деталью пазла была операционная система Unix. Этот выбор Apple означал, что для наших iPhone уже было доступно множество программ с открытым исходным кодом. Мы могли использовать их для создания приложений, копирования их на телефон или для просмотра контента LatestCrash.plist в /var/logs/CrashReporter.

Я отчетливо помню первый раз, когда попытался посмотреть оболочку iPhone и использовал uname, чтобы посмотреть информацию о системе. Я был дома.

Ранняя разработка приложений

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

Одним из поворотных моментов для сообщества стала независимая конференция разработчиков под названием С4. В августе 2007 у многих из участников уже было новое устройство, но они только открывали его возможности. Многие из нас были опытными Mac-разработчиками. Мы были на WWDC и слышали питч Apple. В это же время было объявлен конкурс Iron Coder для “iPhone API”. Организатор конференции Джонатан Ренч попросил нас быть креативными. Мы были.

Но моим предложением было веб-приложение с графическим калькулятором на JavaScript. Оно олицетворяло все, что не нравилось нам в предложении Apple – неуклюжий интерфейс, работающий к тому же медленно. Это не то, на что мы все надеялись.

В то же время нативные приложения нас просто убили. Победителем конкурса стало приложение для видеоконференций от Глена и Кена Аспеслагов. Они создали свою камеру и написали нечто похожее на FaceTime за три года до Apple. Удивительное достижение, особенно в контексте того, что у первого iPhone не было видеокамеры.

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

Лукас Ньюман и Адам Беттс создали приложение Lights Off за несколько дней до C4. После этого Лукас помог мне начать работать с инструментами для джейлбрейка, а также дал мне исходный код, чтобы увидеть, как это работает. К счастью, я хорош в поддержке программ – ваш iPhone X может запустить тот же код, которым мы все восхищались десять лет назад.

Если вы используете Xcode, можете скачать этот проект с GitHub. Папка Jailbreak содержит все, что мне прислал Лукас. Проект Xcode адаптирует этот код, поэтому его можно запустить. Его запустить проще, чем оригинал, но разрешение будет другим.

В коде вы можете увидеть вещи вроде root view controller, который также является application delegate – помните, что мы учились писать приложения без документации. Там так же полностью отсутствуют свойства, сториборд, каталоги и множества других вещей, знакомых нам по  современным инструментам.

Если вы не используете Xcode, вы все ещё можете посмотреть на этот проект. Стив Троутон-Смит продает улучшенную версию в App Store. Мне нравится эта игра и я часто в неё играю: она заслужила попадания в “Зал славы”.

Что было дальше?

Первые приложения Iconfactory

В июне 2007 мы только что выпустили версию 2.1 нашего первого Mac-приложения для Twitter. Должно быть довольно просто перенести код Cocoa с одной платформы на другую, верно? Не совсем. Но я многому научился в процессе.

iPhone привлек программистов всех типов, включая нашего Шона Хебера. В 2007 Шон занимался веб-разработкой и ничего не знал об Objective-C или программировании для Mac. Но это не остановило его от исследования class-dump с остальными и создания своего первого приложения.

Но потом он сделал шаг дальше и поставил себе цель писать приложение каждый день (вдохновившись своей женой и NaNoWriMo). Он назвал этот марафон iApp-a-Day и это было хитом в джейлбрейк-сообществе. Это внимание принесло ему должность в Tapulous, а также привлекло людей, ответственных за первую хитовую франшизу на iPhone Tap Tap Revenge.

За месяц Шон показал, что iPhone может быть чем угодно. Конечно, вы можете играть в игры, но можете и следить за бюджетом, проигрывать музыку или вешать картины. И у меня, и у Шона есть архивы приложений из того периода. Код ужасен, но он представляет из себя нечто большее.

В ранней версии UIKit было много сюрпризов. Парсер XML было сложно найти, так как он был похоронен в фреймворке OfficeImport. И некоторые важные вещи напрочь отсутствовали – например, в Objective-C не было способа вернуть значение с плавающей запятой.

Существовали и странные инженерные решения. Вы могли поместить HTML в текстовый элемент, который работал с простыми тегами вроде <b>, но не работал с более сложными. Экраны использовали LKLayer для создания изображений, он был похож на Core Animation в Mac OS Leopard. Таблицы также представили новую концепцию повторного использования ячеек, которая позволяла быстро скроллить, но была сложной и неуклюжей. И не было возможности использовать что-то вроде view controller, которые на тот момент только вышли для AppKit.

Но это не останавливало нас от экспериментирования. Потом что-то произошло: мы остановились.

Настоящий SDK

Apple усердно работала над iPhone. Те, кто писал приложения при помощи джейлбрейка, видели некоторые проблемы в первом продукте, но они ничего не значили. Настоящие артисты поставляли продукты. Только дураки думали, что все плохо.

Но все создатели продукта знают, что за “Мы сделали это!” быстро следует “Что дальше?”.

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

iPhone SDK обещали в феврале 2008, но релиз несколько задержался. В честь этого состоялось мероприятие.

Десять лет назад мы впервые узнали о Simulator и других изменениях в Xcode, новых фреймворках, вроде Core Location и OpenGL, а также новом App Store, который будет показывать наши продукты пользователям. Джейсон Шелл сделал транскрипцию этого события. Здесь можно посмотреть видео.

Время быть настоящими художниками

Когда разработчики очнулись от прекрасных новостей, они начали думать о выпуске приложений. Мы не знали, сколько это займет, но в итоге у нас было около четырех месяцев, чтобы закончить приложения. Благодаря эпохе джейлбрейка мы понимали проблемы с дизайном и разработкой. Но все же нам пришлось потрудиться над созданием первого приложения Twitter для iPhone.

Перед запуском App Store Apple добавила новые категории во время своей ежегодной церемонии вручения наград по дизайну. Мы были рады выиграть ADA за свою работу для iPhone.

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

Путешествие продолжается

Первое приложение Iconfactory появилось в магазине, когда там было несколько сотен продуктов. Теперь там больше двух миллионов программ.

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

Многое может произойти за десять лет. Но одна вещь не изменилась. Вся наша команда горда быть частью этой экосистемы и вносить в неё свой вклад. Вперед, к новому десятилетию!

Комментарии
Если вы нашли опечатку - выделите ее и нажмите Ctrl + Enter! Для связи с нами вы можете использовать info@apptractor.ru.
Advertisement
Click to comment

You must be logged in to post a comment Login

Leave a Reply

Медиа

Podlodka #89: Перфоманс

Забота о производительности своего продукта – отличительная черта хорошего инженера или менеджера. К этому вопросу мы решили подойти фундаментально и позвали сразу четырёх экспертов, каждый из которых помог раскрыть один из аспектов перфоманса.

AppTractor

Опубликовано

/

Автор:

Podlodka

Денис Мишунов объяснил, почему производительность важна, как ее воспринимает мозг человека и показал варианты решения проблем этого восприятия. Александр Тоболь провел краткий экскурс в то, как работают различные сетевые протоколы и их клиентские реализации и открыл целую область для оптимизаций. Артур Василов и Николай Лихогруд копнули в оптимизацию перфоманса клиентского кода Android и iOS приложений соответственно. Короче говоря, если вы не знаете, как и зачем сделать свой продукт быстрым – этот выпуск однозначно для вас!

Комментарии
Продолжить чтение

Новости

Интересные материалы: 13.12

У нас в конце недели история приложения учета времени, проводимого в соц.сетях, митапы Туту.ру и тренды дизайна на следующий год.

AppTractor

Опубликовано

/

Автор:

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

Комментарии
Продолжить чтение

SDK

Epic выпустит SDK для кроссплатформенных игр

Epic Games в следующем году выпустит SDK для организации кроссплатформенных игр.

AppTractor

Опубликовано

/

Автор:

Новый Online Services SDK позволит регистрироваться в играх через разные социальные сети и платформы, заводить списки друзей, показывать свое присутствие, вести профиль и т.п. вещи, будет также облачное хранилище для сохранения игр, достижения и награды, голосовые коммуникации, подбор игроков для мультиплеера.

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

Предполагается, что все это будет бесшовно работать на PC, Mac, iOS, Android, PlayStation, Xbox и Switch. Предполагается, что сначала SDK выйдет для Windows – примерно во втором или третьем квартале. Остальные платформы будут подключаться по мере готовности.

SDK будет открытым, первоначально поддерживать Unreal Engine и Unity, инфраструктура – Amazon Web Services. Epic обещает полную поддержку GDPR.

 

Комментарии
Продолжить чтение

Разработка

Главные тренды мобильной разработки в 2019

В 2019 мобильные приложения станут еще более персонализированными и ориентированными на пользователя, в них будет простой дизайн и много искусственного интеллекта. Об этих и других трендах мобильной разработки – в статье Epom.

Epom Apps

Опубликовано

/

Автор:

Количество пользователей смартфонов в 2019 году достигнет 2,5 миллиардов, а постоянно растущее число приложений в Google Play и Apple App Store делает мобильную разработку одним из самых динамичных и конкурентных секторов.

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

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

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

Эволюция машинного обучения и искусственного интеллекта

Доход приложений от внедрения искусственного интеллекта (Artificial Intelligence, AI) на мировом рынке постоянно растет и превысит 100 млн. долларов к 2025 году. Согласно исследованиям Gartner, 200 самых крупных компаний в мире активно внедряют и полагаются на данные машинного обучения.

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

Отличный пример мобильного приложения на основе AI – фитнес-приложение Lark. Это умное приложение с чат-ботом, которое трекает физическую активность и с помощью введенных пользователем данных о своем распорядке дня и пищевых привычках дает рекомендации на основе данных, полученных от ведущих мировых экспертов в области здравоохранения и питания.

Машинное обучение очень пригодится в здравоохранении, логистике, IT, образовании — везде, где есть много неупорядоченных данных. А разработка приложений на базе AI помогает освободить саппорткоманду приложения от рутины — ведь на все типичные запросы может отвечать чат-бот.

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

Мгновенные приложения для Android

Идея мгновенных приложений (Instant Apps), которые Android выкатил еще в 2016, наконец набирает обороты. Благодаря этой технологии пользователи могут получить доступ к функционалу приложения, не загружая его. Для пользователей выгода очевидна: концепция “попробуй, прежде чем купить” позволит им сэкономить время на чтение отзывов, и самим попробовать фичи приложения.

Google Play планирует таким образом сэкономить память в смартфонах. Но одна из проблем заключается в том, что мгновенные приложения работают корректно с приложениями без тяжелой графики.

Тяжеловесным играм с большим функционалом может быть сложно экспериментировать с мгновенными приложениями.

Еще один предмет горячих споров разработчиков – как внедрение мгновенных приложений повлияет на рекламную монетизацию. Они могут увеличивать уровень вовлеченности на определенных уровнях приложения, но негативно влияют на retention: если нет необходимости устанавливать приложение, пользователь реже возвращается.

Низкий порог доступа к приложению и подход “попробуй, прежде чем установить” в идеале уменьшает случайные скачивания и количество пользователей, которые забросили приложение. Поэтому если у вас приложение с простой логикой, которое весит немного, стоит потестировать Instant Apps.

Персонализация vs GDPR

Исследование IAB показало, что в разных приложениях разное время пикового вовлечения пользователей, а значит шаблонная реклама на них не сработает. Рекламодателю важно привлечь внимание пользователя во время его максимальной вовлеченности, предоставляя ему возможность контролировать уровень персонализации.

Персонализация в 2019 не менее важна, чем приватность. Исследование Salesforce показывает, что 65% пользователей считают, что персонализация повышает их лояльность к компании. В то же время пользователи ценят конфиденциальность данных.

Это вызвало противоречия в онлайн-экосистеме: большие компании типа Google или Facebook запрашивали личную информацию, чтобы «обеспечить более качественный пользовательский опыт». Но правила GDPR теперь обязывают объяснять пользователям, какие данные и зачем собирает компания и дать им выбор – отказаться от сбора cookie, или разрешить системе узнать себя лучше.

Разработчики уверены, что GDPR не повредит персонализации, и она останется актуальным трендом 2019 года.

Появление новых способов монетизации

Объем рынка мобильной рекламы оценивается в 250 миллиардов долларов, поэтому все больше разработчиков стремятся к тому, чтобы монетизировать приложения рекламой. Но даже применяя все известные стратегии монетизации, попасть в 5% самых высокодоходных приложений нереально. Поэтому разработчики используют нетрадиционные способы монетизации приложений.

Монетизация пользовательских данных начала развиваться пару лет назад и сегодня является одним из быстрорастущих трендов. Монетизация данных — это процесс сбора и передачи неперсональных данных пользователей посреднику. Для приложений с DAU от 60 000 пользователей этот вариант – идеальный пассивный заработок.
Монетизация данных полностью соответствует правилам GDPR и Google Play Policy, но требует явного согласия пользователей перед началом процесса сбора данных.

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

UX: От сложного к простому

Упрощенный UX помогает пользователям быстро ориентироваться в приложении и находить то, что они искали. Дизайн мобильных приложений должен предсказывать поведение пользователей, быть минималистичным, и учитывать Swiping-жесты, чтобы обеспечивать целостный опыт для пользователей приложений. А с развитием Google Pay и Apple Pay,  желательно добавить возможность оплаты виртуальной картой.

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

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

Усиленная защита мобильных приложений

В 2017 году около 75% мобильных приложений не смогли пройти даже базовые тесты безопасности. Это означает, что в процессе создания приложения разработчик обычно не тестирует приложение на потенциальные уязвимости. Ошибки, допущенные в процессе разработки приложений, могут напрямую влиять на репутацию и погубить приложение после запуска. Наиболее распространенными уязвимостями мобильной безопасности являются слабый контроль на стороне сервера и уязвимости в протоколах и аппаратуре.

В 2019 ожидается усиление безопасности Android и iOS-приложений, но увы, низкокачественных приложений в обоих магазинах приложений все еще много.

Не надейтесь, что пронесет —проверьте приложение на предмет пробелов в безопасности. Список удобных инструментов проверки приложений включает ZAP, Micro Focus, Kiuwan и многие другие.

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

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

Комментарии
Продолжить чтение

Реклама

Наша рассылка

Нажимая на кнопку "Подписаться" вы даете согласие на обработку персональных данных.

Вакансии

Популярное

X
X

Спасибо!

Теперь редакторы в курсе.