В помощь мобильному разработчику
Siri о чем спросить

Здороваемся с Siri при помощи SiriKit

Александр Алексеев

Одной из наиболее интересных новых особенностей iOS 10 является то, что она открывает Siri для разработчиков приложений. В этой статье мы рассмотрим вопрос о том, как встроить поддержку Siri в существующие приложения. SiriKit

Siri была введена в 2011 году как часть iOS, после того, как компания Apple приобрела разработчиков Siri в 2010 году, и затем интегрировала её в ядро iOS в качестве персональной цифровой помощницы, которая использует естественные языковые паттерны для того, чтобы отвечать на вопросы, которые ей задают, предоставлять рекомендации по запросу и даже выполнять требуемые действия.

До выхода iOS 10 Siri была недоступна в качестве отдельного приложения в App Store. Однако, в настоящее время с выпуском SiriKit Apple сделала возможной интеграцию между Siri и контентом, а также сервисами Вашего приложения. Sirikit поддерживает ряд сценариев, каждый из которых определяет задачи, которые могут быть выполнены, в том числе следующие:

  • Звонки через голосовую связь по IP-протоколу
  • Действия с сообщениями
  • Платежи
  • Обработку фотографий
  • Тренировки
  • Бронирование такси
  • CarPlay (только для производителей автомобилей)
  • Предварительный заказ столиков в ресторане (требуется дополнительная поддержка от Apple)

 

Сценарии

Siri «думает» обо всем в определённых сценариях, которые охватывают такие широкие категории понятий, как обмен сообщениями, VoIP, платежи, тренировки, бронирование такси и поиск фотографий. Сценарии обладают известными действиями под названием Intents, и каждой из этих Intent имеет ряд параметров. Перед тем как приступать к работе с SiriKit Вам необходимо убедиться в том, что Ваше приложение вписывается в какой-либо сценарий из тех, которые поддерживает Apple.

 

Intents и расширения UI Intents

Если Вы когда-либо осуществляли разработку с использованием Apple Maps, то должны быть знакомы с расширениями использующими Intents. Существует два типа App Extensions, которые используются для взаимодействия с Siri:

  • Intents Extension: Обеспечивает взаимодействие Siri и Maps с контентом приложений и выполняет задачи, необходимые для реализации любого из поддерживаемых intents.
  • Intents UI Extension: Предоставляет пользовательский интерфейс, который отображает внутренний контент либо Siri, либо Maps.

Очень важно, чтобы Ваше приложение обеспечивало Intents Extension для поддержки SiriKit, но вы можете отказаться от предоставления UI Extension, так как Siri может обрабатывать все взаимодействия с пользователем, используя стандартный, встроенный интерфейс. Intent Extension может поддерживать один или несколько Intents, и именно Вы решаете, как реализовывать Siri в приложениях, поскольку для этого существует несколько способов. Таким образом, Apple требует, чтобы мы, как разработчики, старались ограничивать число Intent Extensions, так как это помогает поддерживать использование памяти на низком уровне и повышать производительность Siri.

 

Приветствие

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

SiriПользователь
«Привет, Siri, отправь XamarinChat Message»
«Кому?»
«Мигелю»
«Что вы желаете сообщить Мигелю?»
«Ты хорошо справился с работой по созданию Mono»

Процесс преобразования этого разговора в осуществимое действие выглядит следующим образом:

Siri

  1. Siri принимает аудио пользовательской Speech (Речи) и преобразует его в текст.
  2. Текст затем преобразуется в Intent, который является структурированным представлением запроса пользователя.
  3. На основе Intent, Siri будет применять Action для осуществления запроса пользователя.
  4. В итоге Siri представит Responses (как визуальные, так и вербальные), которые основаны на принятых пользовательских Action.

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

 

Политика безопасности и приватности

Конфиденциальность и безопасность рекламировались как одни из главных особенностей iOS 10 и Apple относится к безопасности Siri очень серьезно. Они добились того, что личная информация остаётся в безопасности при работе с Siri и обозначили конкретные взаимодействия как те, которые требуют разблокировки устройства, например, при вызове автомобиля в Uber или Lyft, или при совершении платежей.

Вы можете заранее убеждаться в том, что пользователь разблокировал устройство, прежде чем позволять расширению Siri вступать в действие. Это может быть с лёгкостью включено путём добавления Restrict While Locked в Info.plist-файл приложений.

 

Дополнительная информация

SiriKit — это обширное дополнение к iOS 10, обладающие большим количеством опций для разработчиков, благодаря чему они могут реализовывать множество нововведений в своих приложениях. Если Вам нужна более подробная информация, то Вы можете найти углубленный обзор новых API-интерфейсов в нашей документации, а также мы рекомендуем Вам ознакомиться с образецом уже готового проекта на GitHub.

Автор: Mike James
ИсточникОфициальный блог Xamarin

Александр Алексеев
Александр Алексеев

Xamarin - разработчик. Работаю с .NET платформой с 2012 года, программирую в основном с использованием C#. За это время успел поработать с ASP.NET, Entity Framework, MSSQL, Git

Устройства iOS 10

Написать ответ