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

Если вы также исповедуете эту философию, то с выходом iOS 8 и OS X Yosemite ваша вера будет вознаграждена. Мы постепенно получали интеграцию различных функций и сервисов в обеих ОС на протяжении последних трех лет, но релизы этого года выведут интеграцию мобильной и десктопной ОС на качественно новый уровень и все это благодаря технологии Continuity. Ее нельзя назвать новой фичей ОС, поскольку она обеспечивает целый ряд возможностей, каждую со своим режимом работы и различными требованиями к оборудованию. Так же, как ранее мы рассказывали вам о реализации и работе расширений в iOS 8, в этом материале речь пойдет о технологии, которая скрывается за такими функциями, как интеграция звонков, Handoff и AirDrop.


iCloud: более тесная интеграция

С момента своего релиза в iOS 5 — iCloud был официальным способом синхронизации между вашими iOS-устройствами и компьютерами Mac. И это было действительно удобно: достаточно залогиниться на новом устройстве со своего Apple ID, как все ваши контакты, почта, закладки, пароли и другие данные тут же оказывались на своих привычных местах.

Для работы практически всех функций Continuity требуется iCloud, даже в том случае если через облако не передается никаких данных. Apple сделала использование Apple ID более универсальным, позволяя вам держать весь ваш контент под контролем. Функция Family Sharing, например, делает возможным обмен приложениями и медиафайлами на нескольких устройствах, используя различные Apple ID. Это избавит вас от необходимости логиниться под основным аккаунтом для скачивания приложений, внося таким образом путаницу в iCloud, iMessages и Facetime.

Если вы используете один Apple ID на своем Mac и iPhone, то вы сможете насладиться всеми преимуществами Continuity, при условии, что ваши устройства совместимы с определенными функциями (более подробнее о совместимости далее).

Телефонные звонки в OS X

calls_hero

Процесс совершения голосовых звонков на Mac, через сотовую сеть оператора, описан в документации довольно поверхностно, но из той информации, которая имеется на данный момент доподлинно известно, что устройства должны быть подключены к одной сети Wi-Fi (вероятнее всего, что для маков также будет допустимо подключение по Ethernet, но уверенно об этом сейчас сказать нельзя). Судя по всему, эта функция не использует Bluetooth вообще (в отличии о Handoff) и не требует поддержки peer-to-peer подключений для Wi-Fi (как AirDrop).

Screen-Shot-2014-07-16-at-2.37.37-AM

Таким образом, голосовые звонки, в отличии от остальных функций Continuity, похоже будут единственной функцией, работающей на iMac и MacBook Pro линеек 2007 года. Данные при этом будут передаваться внутри вашей локальной сети, а не через интернет.

Принцип действия Bluetooth 4.0 на примере iBeacon

Все Continuity-функции, кроме голосовых звонков, помимо Wi-Fi, завязаны еще и на технологии Bluetooth 4.0 (известной также, как Bluetooth Low-Energy). Чтобы понять чем это обусловлено, важно знать о некоторых возможностях Bluetooth LE, которые хорошо видны на примере собственной программы Apple — iBeacon.

Первым потребительским устройством, поддерживающим Bluetooth LE, был iPhone 4s. И хотя стандарт был одобрен еще в 2010, массовая интеграция таких модулей в гаджеты началась не так давно. В умных часах и другой носимой электронике он используется для связи со смартфонами и планшетами, Apple же использует его для обеспечения работы функции iBeacon, которая была представлена в iOS 7.0, как “новая технология расширения сервисов определения местоположения в iOS”. Маяки и iOS-устройства связываются друг с другом посредством Bluetooth LE, определяя местоположение пользователя и предлагая контексто-зависимую функциональность для приложений и сервисов.

Маяки используют “рекламную” составляющую Bluetooth LE, которая позволяет отправлять очень маленькие пакеты информации с различными интервалами (от 20 мс до 10 сек). Эти пакеты имеют размер в 47 байт: 10 байт для служебных нужд, 6 — для MAC-адреса и 31 — для полезной информации.

В случае с iBeacon, Apple использует пакеты по 20 байт, в которых умещается на удивление много данных. Это 16-байтовый уникальный идентификатор пользователя для разработчиков приложения (ваш маяк в торговом центре), 2-байтовая метка основного местоположения (торговый центр в Сан-Франциско) и 2-байтовая метка дополнительного местоположения (отдел электроники в торговом центре в Сан-Франциско). Модули Bluetooth LE в iOS-устройствах периодически сканируют такие маяки и как только они будут обнаружены — приложения будут предлагать вам различные вещи, как только вы приблизитесь к магазину, во время передвижения по нему или когда вы будете уходить из него (при условии, что вы разрешили использование местоположения для соответствующих приложений). Здесь важно, что передается изрядный объем информации, используя при этом минимальное количество ресурсов, что практически не сказывается на энергопотреблении.

Новый AirDrop: когда Bluetooth и Wi-Fi работают вместе

airdrop-2-640x450

Когда Apple заявила на WWDC о том, что AirDrop будет поддерживать передачу между OS X и iOS — зал отреагировал апплодисментами. Напрашивается вопрос, почему этого не было сделано изначально? Ведь и в OS X, и в iOS были функции AirDrop, но они были полностью несовместимы.

Оказывается, что AirDrop в iOS 7 использует те самые “рекламные” возможности Bluetooth 4.0, на которых построена работа iBeacon. Устройства “перекликаются” между собой, объявляя, что они доступны для приема данных. При попытке отправить какой-либо файл, ваше устройство опрашивает находящиеся рядом устройства и показывает вам список доступных. Как только получатель подтвердит передачу — будет создано peer-to-peer Wi-Fi соединение, по которому и будут отправлены данные. Apple использует для этого стандарт, подобный Wi-Fi Direct, который однако не совместим с общепринятым Wi-Fi Direct (использующимся на Android-устройствах). От комбинации этих хардварных возможностей и будет зависеть — поддерживает ли ваше устройство AirDrop или нет. Например, iPhone 4s имеет модуль Bluetooth 4.0, но у него нет совместимого Wi-Fi чипа, поэтому AirDrop на нем не будет поддерживаться.

Передача файлов по AirDrop в OS X Lion, Mountain Lion и Mavericks также работает через peer-to-peer соединение, но для поиска находящихся рядом устройств используется Wi-Fi. Этому есть логичное объяснение — в то время, когда была представлена функция AirDrop, модулями Bluetooth 4.0 были оснащены лишь некоторые модели из всей линейки маков. Поэтому использование Bluetooth вызвало бы проблемы с совместимостью на более старых устройствах.

На сегодняшний день необходимые модули Bluetooth LE имеется в подавляющем большинстве маков, поддерживающих OS X Yosemite (они получили их на протяжении 2011–2012 годов), так что переход на эту технологию почти не затронет львиную долю пользователей. Список компьютеров с поддержкой AirDrop выглядит следующим образом:

  • iMac (начиная с 2012);
  • MacBook Pro без Retina-дисплея (начиная с 2012);
  • MacBook Air (начиная с 2011);
  • Mac Mini (начиная с 2011);
  • Mac Pro (начиная с 2013);
  • MacBook Pro с Retina-дисплеем (все модели);

Этот список охватывает устройства последних 2–3 лет, однако по сравнению с полным списком устройств, поддерживающих OS X Yosemite — он все еще относительно мал.

Судя по ранним отзывам пользователей, в OS X Yosemite по-прежнему осталась поддержка обычного AirDrop, позволяюющая вам передавать файлы с одного мака на другой, поэтому можно предположить, что как опция, она останется и в финальном релизе. Мы полагаем, часть пользователей останется на OS X Mavericks, чтобы использовать ОС с “до-Айвовским” дизайном, как некоторые пользователи застряли на OS X Snow Leopard, не желая использовать iOS-подобный интерфейс и функции, навязываемые Apple в более поздних релизах.

Как работает Handoff

IMG_0071

Одной из наиболее ключевых функций Continuity является Handoff, которая в самом деле может кардинально изменить опыт использования Apple-устройств. Выполнение любых действий, которые вы начали делать в OS X, можно без каких-либо сложностей продолжить на мобильных устройствах или наоборот. Каким же образом эти чудеса воплощаются в жизнь?

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

IMG_0072-640x480

Как только вы залогинитесь в один и тот же iCloud-аккаунт, наш старый знакомый Bluetooth LE будет отвечать за то, чтобы одни устройства знали какие действия вы выполняете на других. Откройте веб-страницу на iPad и другие устройства поблизости смогут открыть ее в любой момент, если вы этого захотите. При этом иконка Handoff будет отображаться в левом нижнем углу локскрина и сделав свайп на ней — вы откроете соответствующее приложение, продоложив работу с того же места, где она была прекращена на другом устройстве.

IMG_0073-640x480

Также иконки приложений, использующих Handoff, будут отображаться на панели многозадачности, слева от домашнего экрана. В OS X Yosemite для них тоже отведено специальное место — они будут располагаться в доке, слева от иконки FInder и в меню переключения приложений (⌘Tab).

IMG_0074-640x480

Сделав тап или клик на иконке Handoff, вы сразу же переключитесь на действие, выполнявшееся на другом устройстве. При этом продолжение активности предусматривает даже такие мелочи как положение прокрутки на странице, которую вы читали. Передача данных, не происходит по локальной сети (как в случае со звонками), peer-to-peer соединению (как в AirDrop) или по Bluetooth. Скорее всего, для этих целей используется iCloud, что в свою очередь говорит нам о двух вещах. Во-первых — функция будет работать на iPhone 4s (благодаря наличию модуля Bluetooth 4.0) и во-вторых — для работы Handoff обязательно активное подключение к интернету.

Согласно информации Apple, список поддерживающих Handoff устройств выглядит следующим образом:

  • Все iOS-устройства поддерживающие iOS 8, кроме iPad 2
  • iMac (начиная с 2012);
  • MacBook Pro без Retina-дисплея (начиная с 2012);
  • MacBook Air (начиная с 2011);
  • Mac Mini (начиная с 2011);
  • Mac Pro (начиная с 2013);
  • MacBook Pro с Retina-дисплеем (все модели);

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

Handoff для разработчиков

continuation_2x-640x463

Теперь, когда мы выяснили какие iOS-устройства и маки смогут работать с Handoff, давайте попробуем разобраться, что смогут (и не смогут) с этим сделать сторонние разработчики, используя API предоставленные Apple.

Прежде чем использовать Handoff в своих приложениях, разработчикам придется озаботиться наличием универсальных действий, которые должны быть одинаковыми в обеих версиях приложений. Например, Apple Mail разделяет чтение и написание email, как два разных действия. Если вы разработчик клиента облачного хранилища, то для вас будет актуально разделение активности во время просмотра текстового документа и электронной таблицы. Для этих целей используется класс NSUserActivity, детали работы с которым подробно описаны здесь.

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

Таким образом невозможным становится сценарий использования различных приложений на десктопе и мобильном устройстве. Вы не сможете передать вкладку из Chrome на OS X в Safari на iPad, как и сообщение из Outlook в Mail. То есть, для пользователей, не использующих стандартные приложения Apple будут определенные неудобства и пока разработчики не внедрят в свои приложения поддержку Handoff, вы не сможете воспользоваться этой функцией. Но даже после этого, вы все еще остаетесь частично ограничены, поскольку не сможете использовать Handoff, если предпочитаете “смешивать” приложения на разных платформах.

IMG_0090-640x380

И хотя это ограничение не радует, такой механизм означает, что разработчики смогут передавать данные из одного приложения в другое даже если они не на 100% индентичны. Например, Microsoft Office, который на iPhone является одним приложением и разделен на отдельные приложения в OS X. Если разделить работу с различными типами файлов на разные виды активности, то Microsoft сможет передавать данные из Word на маке прямо в приложение на iPhone или iPad.

Для разработчиков, которые предпочитают использовать нативные приложения на iOS и веб-версии на десктопах (например Google Docs или Facebook), Apple предусмотрела различные API, позволяющие им подтвердить свою собственность на определенные домены и использовать веб-приложения в связке с iOS-приложениями.

Ну и наконец, для тех видов активности, в которых пользователь взаимодействует с одними и теми же данными на нескольких устройствах одновременно, используется Continuation Streams, позволяющий задействовать двунаправленные связи между двумя устройствами через iCloud. Мы не знаем, какие задержки при этом будут, но инженер Apple Кит Стэттенфилд утверждал на WWDC, что потоки работают “довольно высокоэффективным способом”.

Итоги

Говорить о качестве реализации всех заявленных функций Continuity пока рано, поэтому в данный момент можно отметить только один недостаток — ограниченная совместимость как маков, так и iOS-устройств. Быстрая эволюция аппаратной начинки смартфонов всегда подразумевала, что часть новых функций и возможностей будет доступна только на новейших устройствах. Владельцы более старых маков тоже иногда оставались за бортом, так произошло с AirDrop и Восстановлением OS X через интернет.

Continuity — это одна из ключевых функций обеих ОС, тем не менее, отсутствие копеечного Bluetooth LE модуля (~$30) оставляет ваш компьютер стоимостью в тысячи долларов на обочине прогресса.

(via)