Интервью
Артур Сахаров (Redmadrobot): iOS 8 для разработчиков
Артур Сахаров, технический директор Redmadrobot, поделился с нами информацией о том, что iOS 8 значит для аутсорс разработчиков и разработчиков бизнес-приложений.
Артур Сахаров, технический директор Redmadrobot, поделился с нами информацией о том, что iOS 8 значит для аутсорс разработчиков и разработчиков бизнес-приложений.
iOS 8
У Apple был и есть набор минусов, которые у всех на слуху (сюда я не отношу гнущийся iPhone 6). Например, нельзя понятным и простым образом передать данные из одного приложения в другое. Ежегодно, с каждой новой версией iOS закрывается часть недостатков, а заодно появляется что-то новое — эволюция существующего функционала или перехваты с других платформ.
Чем вообще iOS 8 отличается от iOS 7? Дизайна принципиально нового нет; программная часть — это дополнение, оптимизация и исправление ошибок; функциональность — все крупные отличия только тут. Добавили фичи, которые вытекают из существующих потребностей (что уже хотят) и будущих трендов по версии Apple (чего никто не ожидал). Опережение ожиданий — это, например, часы, которые взаимодействуют с iOS; покрытие существующих потребностей — возможность подключения внешних клавиатур.
Неправильно рассматривать iOS 8 как принципиально новый продукт — это эволюция седьмой версии. А вот если сравнивать iOS с другими платформами (Blackberry, Android, Windows Phone, Mozilla и пр.), то можно увидеть, что некоторые фичи iOS 8 вышли с опозданием, но в более продуманном качестве. Apple не просто открыла доступ к внешним клавиатурам и сделала виджеты, она объединила все это с точки зрения разработки в систему — появились «расширения приложений».
Вау-эффекта от iOS 8 нет, но есть любопытный нюанс: все новые фичи в очередной раз сильно задрали планку для разработчиков. С точки зрения кодинга ничего сложного в этом нет, но по фичам — придется потрудиться.
Фичи iOS 8
Приветствие на сайте Apple в разделе для разработчиков начинается словами «iOS 8 включает в себя более 4 тыс. новых API, которые позволяют создавать в ваших приложениях удивительные новые фичи».
Apple вообще умеет делать презентации как шоу, которые впечатляют, формируют ожидания — после WWDC 2014 пользователи (включая коммерческих заказчиков приложений) уже не хотят продукты без виджетов и Touch ID («вводить пароль? да это прошлый век!»). Хайп ожиданий заставляет разработчиков быстро работать, бежать, чтобы не отстать и не оказаться за бортом. А разработчики не могут быстро — накопленных материалов по технологиям и готовых решений нет, но зато есть баги.
И баги, конечно, портят experience и не позволяют разработчикам реализовать новый функционал iOS 8 так, как они хотят. Проблемы с версткой, TouchID, кастомными клавиатурами — ты ничего не можешь с этим сделать, пока Apple не пофиксит баги.
Три месяца назад Apple опубликовала SDK iOS 8, он был в бета-тестировании, работал не очень, но приложения-хэдлайнеры все равно успели в первый же день выхода «восьмерки» выкатить в стор свои свежие версии с использованием всего набора нового функционала.
У нас в разработке бизнес-приложений на заказ своя специфика в смысле потребностей и возможностей реализации новых фич (не все нужны и не все достаточно безопасны).
Touch ID
Технология Touch ID уже год есть в iPhone 5s, и теперь, с выходом iOS 8, ее можно использовать в приложениях. С одной стороны, непонятно, насколько она действительно безопасна. С другой — все её уже хотят.
Apple гарантирует, что предприняла всё возможное для защиты и что сама технология уже зрелая. Компания публикует несколько раз в год свои отчеты по обеспечению системной безопасности (каким образом запрограммированы чипы, как система с этих чипов грузит уникальные ключи и пр.). При этом в интернете есть видео, в котором какие-то чуваки с помощью силикона снимают со стакана отпечаток пальца и успешно используют его в Touch ID.
Да, но ведь и обычный пароль легко подсмотреть, и я даже не говорю про кредитные карты, которые мы постоянно передаем продавцам и официантам для оплаты своих счетов.
Новые технологии типа Touch ID повышают риски, но не делают их космическими. Поэтому, как показывает наша практика, большинство банков — зарубежных и российских — смотрят в сторону этой технологии с оптимизмом. Просто использовать её нужно аккуратно. Мы в Redmadrobot, применяя Touch ID в своих приложениях (например, банковских), никогда не убираем все остальные составляющие безопасности — безопасное хранение данных, авторизацию по паролям, возможность удаленной блокировки приложения на устройстве.
Виджеты
По сути виджет — это дополнительный экран приложения со своей отдельной памятью, который с основным приложением общается через хитрую конструкцию, не предоставляющую доступа к его данным.
Например, мы сделали виджет для отображения баланса банковского счета. Важный момент здесь — конфиденциальность информации, потому что виджеты видны, даже когда телефон заблокирован. Нужно дополнительно думать, какую информацию представлять и как ее представлять, чтобы не навредить пользователю.
У Apple в гайдлайнах есть пункт о том, что приватные данные пользователя не должны приходить в push-аутентификации. Какие данные считать приватными, Apple не указывает. Есть полным-полно банковских приложений, которые вместо SMS присылают баланс push-сообщениями, и стор это пропускает. Но всегда есть риск не пройти ревью из-за отсутствия однозначных правил по виджетам, например.
Уведомления
У уведомлений появились контекстные действия. К примеру, приходит информация о списании средств, и вы тут же можете классифицировать его — просто сдвигаете уведомление, выбираете действие «указать вид расхода» и проваливаетесь сразу в раздел приложения, где есть статьи «еда», «одежда» и пр. Здесь революции, конечно, нет, вы могли кликнуть нотификацию, попасть в приложение и уже там выбрать действие. Но теперь процесс упростился.
В уведомлениях есть еще много мелких изменений — бесшумные аутентификации, которые приходят прямо в приложение, увеличенный размер сообщений…
App Extention
Позволяет в одном приложении открыть какой-то фрагмент интерфейса другого приложения для обработки данных. Самый простой пример, который у всех на слуху, — обработка фотографий без перехода в другое приложение. Но App Extention — это намного больше, правда, пока революционных примеров, отличных от использования фото-фильтров, я не видел.
XCode
В новой версии XCode появились дополнительные функции, которые облегчают разработку интерфейсов, позволяют полуавтоматически делать повороты для разных экранов, тянуть верстку, подгружать красивую векторную графику. Уже летом на WWDC, когда представили новую версию XCode, всем стало понятно, что скоро появится iPhone с большим экраном.
Swift
Только сейчас появилась возможность отправлять приложения, написанные на Swift, в стор. Язык этот очень симпатичный, легкий и быстрый, но он пока не подходит для производства в серьезных конторах, и реализация достаточно глючная. Спецификация понятная и логичная, но реализация — нестабильная. Не хватает многих функций, которые мы давно используем, какие-то вещи отрабатываются не так, как должны, и в любом случае приходится прибегать к Objective-C.
Большинство разработчиков сходится во мнении, что Swift не станет единственно универсальным языком для разработки под платформу Apple, Objective-C как был, так и останется. Да и большое количество legacy-кода сделано на Objective-C, и все равно необходимо знать этот язык, чтобы понимать, каким образом система работает.
CloudKit
Основная аудитория пользователей CloudKit — разработчики, которые не могут себе позволить разработку собственного бекэнда. CloudKit — это функционал на подхвате, который синхронизирует данные. Вы можете написать сценарий в приложении, посчитать какие-то очки, отправить их в «облако» и потом сравнить с друзьями. Или взять всех пользователей приложения и посчитать какую-нибудь выборку.
Redmadrobot работает практически всегда с клиент-серверными приложениями, поэтому мы завязаны именно на функционал сервера, а CloudKit не даст доступа ни к банковской системе, ни в какую другую админку.
TestFlight
Купив TestFlight, Apple дала разработчикам возможность тестировать приложения прямо через App Store. Такого рода инструментов на рынке очень много (HockeyApp, Crashlytics и пр.), но с TestFlight можно сразу тестить из XCode. Плюс появилась аналитика в iTunes Connect. Правда, она пока уступает по качеству Flurry и Google Analytics.
Продуктовая аналитика – это отдельная большая тема. Это не только подсчет количества пользователей, но и анализ потребительского поведения, подсчет функций, которые найдены пользователем и ему нужны, отработка каких-то сценариев, которые действительно сработали в приложении, и т.д.
HomeKit / HealthKit
Cтрого говоря, тут Apple не совершила заметных технологических скачков, ведь сервисы, аналогичные HomeKit, были на рынке довольно давно (например, проект SmartThings и все умные телевизоры, которые заполонили рынок). Были браслеты, приложения для трекинга, проприетарные SDK для умных часов и т.д.
Важно в HomeKit и HealthKit то, что корпорация подминает под себя создание новых сервисов и интеграцию их друг с другом. Это скажется положительно как на прибыли внешних разработчиков, так и на удобстве поиска и использования новых продуктов.
Агрегаторов для различных сервисов на рынке уже довольно много, и каждый из них разрабатывался как приложение, и, следовательно, у них были все те же ограничения, что и у любых других приложений — они не могли взаимодействовать с системой и по-нормальному друг с другом. Были и есть сотни подобных продуктов, Apple по сути предложила еще несколько, но ее сервисы выигрывают тем, что они встроены в систему намертво. Разработчику не надо рассчитывать на другие приложения, не надо никому отчислять деньги за использование API, его успех не зависит от другого сервиса. Просто бери и используй — это стимул для экспериментов, это гарантия надежности, это заделка на рывок по созданию своего продукта.
HomeKit и HealthKit — это большой шаг в сторону упрощения производства новых сервисов — Apple собрала технологии в своей экосистеме и дала доступ к девайсам. Теперь разработчик может легко переключаться с приложений под смартфоны на приложения под браслеты и часы. Не нужно лезть в железяки (доступ к ним дает HealthKit или HomeKit), не нужно месяцами знакомиться с непопулярной платформой и кодить под нее, нужно концентрироваться на сервисной части — что ты хочешь дать пользователям, как это будет выглядеть в картинках.
Раньше, чтобы разработать приложение под часы Pebble, нужно было 2-3 недели «курить» SDK и потом месяц учиться делать классные приложения под них. Но сколько продано Pebble? Сто тысяч штук? Ради такого количества потребителей жалко тратить время на изучение документации (пусть довольно простой и понятной) и написание ПО.
Экосистема
Экосистема Apple исторически начиналась на своем железе: Mac, iPod, iPhone. Со временем вокруг этого железа начали образовываться приложения и сервисы, а Apple стала развивать системные API для того, чтобы облегчить построение внешних сервисов под свои платформы. На iPhone возможности для интеграции были организованы настолько удобно, что практически все мыслимые гаджеты — часы, браслеты, наушники, шагомеры — обзавелись своими приложениями под iOS.
В этом году Apple шагает в том же направлении, но с куда большим размахом.
Во-первых, одна из главных тем прошедшего WWDC — continuity, плотное проникновение десктопной MacOS X в iOS и наоборот. Стирание границы между этими платформами означает для пользователя одинаковый комфорт при использовании различных устройств, а для корпорации — мощное взаимное продвижение своих продуктов.
Во-вторых, корпорация приоткрыла свою экосистему для внешних разработчиков и производителей. В iOS отныне могут напрямую интегрироваться различные внешние девайсы и системы, и помимо нативной поддержки производители получат возможность разрабатывать только ту часть, которая получается лучше всего: например, только железку или только софт.
Оба этих шага направлены именно на развитие экосистемы, на продвижение своих продуктов за счет усилий других разработчиков. Взаимовыгодный симбиоз с мелкими компаниями сегодня — основной путь удержания на вершине технологического прогресса.
Перспективы
Потенциально расширение экосистем может захватить и другие рынки. К примеру, давно поделенный рынок игровых консолей. Уже сейчас проекты типа Nvidia Shield способны серьезно пошатнуть продажи аналогичных продуктов от гигантов вроде Sony. Индустрия часов постепенно вымирает, остаются только игроки элитарного уровня. Вся индустрия дистрибуции музыки накрылась медным тазом и массово перешла в эпоху цифрового распространения контента, на очереди окончательное вымирание вещательного телевидения как такового.
Вокруг платформ концентрируются разработчики, собираются потребители. Пару-тройку лет назад соцсетям пророчили утопическое будущее — дескать, все холодильники полезут в фейсбук и твиттер. Сейчас фокус смещается на платформы и экосистемы. Сервисы и агрегаторы остаются двигателем этих платформ, но двигателем не единственным. Да, ВКонтакте и Фейсбук до сих пор лидируют по количеству проведенных за ними часов после игр, но все неоцифрованные аспекты нашей жизни так и ждут переноса на мобильные устройства.
С массовым приходом домашней автоматизации, носимой электроники и управления всеми системами на мобильные платформы в жизни еще наступят неожиданные повороты, однако тренды на ближайшее будущее можно отследить уже сейчас.