iOS 6 вряд ли можно назвать рекордным апдейтом по части новых функций для конечного пользователя. Обновление принесло новые фирменные карты Apple, улучшило голосовой помощник Siri, добавило поддержку Passbook — эти новшества, конечно, интересны, но их нельзя и близко сравнить с масштабом обновления, например, iOS 4. Может быть это доказывает тот факт, что iOS превратилась во «взрослую» операционную систему, поэтому Apple остается лишь слегка «шлифовать» различные аспекты? Считаю, что это мнение в корне неверно!
Причин тому несколько, но среди них выделяются две основные: взаимодействие приложений и Siri. При правильном подходе Apple работа в этой области может преобразить iOS до неузнаваемости. Каким образом? Ответить на этот вопрос попытался Кайл Бакстер, популярный западный блогер и разработчик приложения Basil для iPad. Представляю вам краткий пересказ его статьи.
Взаимодействие приложений
Понять модель приложений на iOS не сложно: каждая программа работает в собственной «песочнице», которая никак не пересекается с «песочницами» других приложений. С одной стороны, такой подход имеет преимущества по части безопасности, поскольку одно приложение не может каким-либо образом испортить данные другого приложения. С другой стороны, это серьезно ограничивает разработчиков, в итоге страдает функционал программ.
Недавно Оле Бегеманн обнаружил интересную особенность системной программы Mail. Когда пользователь в каком-либо стороннем приложении нажимает на кнопку «Email», запускается отдельный процесс, независимый от Mail. Звучит скучно, но на самом деле, как любят говорить американцы, это «big deal».
Фактически, этот самостоятельный процесс можно рассмотреть в качестве отдельной мини-программы, которая запускается в тот момент, когда пользователь в другом приложении (допустим, в Basil) хочет отправить электронное письмо. А теперь представьте, что любой разработчик получил разрешение на создание таких мини-программ для добавления возможностей к сторонним приложениям.
К примеру, Basil работает с URL-адресами для сохранения рецептов с сайтов. Эту функцию сохранения можно трансформировать в мини-программу, чтобы ею можно было воспользоваться из любого другого приложения. Если кто-то из пользователей Basil просматривает сайт с рецептами в браузере Safari, они могут прикоснуться к иконке Basil в списке действий, затем с помощью всплывшего окна сохранить рецепт в приложение и продолжить просмотр, не покидая Safari. Тоже самое можно проделать в Reeder (сохранение рецептов из RSS-лент), в Twitter-клиенте и любом другом приложении. Разработчики этих приложений могут даже не знать о существовании Basil, поскольку их активного участия в этом деле практически не требуется. Им необходимо лишь указать, что их приложение работает с URL-схемами обработки адресов, которые совместимы с Basil.
В результате, приложения могут работать в связке друг с другом. По идее, это может сделать iOS намного мощнее и функциональнее.
Siri
Представьте, что разработчики получили возможность создавать не просто мини-приложения, взаимодействующие между собой, но и процессы без пользовательского интерфейса. Допустим, разработчики из компании Tapity могут перенести функциональность своего приложения Languages в самостоятельный процесс, чтобы создатели других программ, которые активно работают с текстом, смогли применять его в своих продуктах.
Еще лучше — привязать эту функциональность к Siri API! Используя «скрытый» процесс Languages, пользователи с установленной программой могли бы задать голосовому помощнику такой вопрос: «Как будет «молоко» по-итальянски?» и мгновенно получить разумный ответ. Или с установленным приложением для отслеживания полетов в аэропорту, можно было бы спросить: «Во сколько садится мой самолет?». Наконец, с установленной читалкой газет Siri могла бы рассказать вам о том, что сейчас происходит в мире.
Я привел лишь несколько элементарных примеров, однако главная мысль заключается в следующем: если бы Apple предоставила сторонним разработчикам доступ к Siri API, возможности голосового помощника были бы существенно расширены. Siri превратилась бы в невероятно полезный инструмент, своего рода новый интерфейс для iOS.