Онлайн курсы по Swift

На WWDC 2018 Apple анонсировала Siri Shortcuts, долгожданную функцию, которая позволяет разработчикам расширять возможности Siri в своих собственных приложениях. Раньше SDK SiriKit был довольно ограничен. С появлением Siri Shortcuts разработчики могут расширять возможности Siri и создавать пользовательские голосовые действия для вызова приложений.

Краткая история Siri Shortcuts
В основе Siri Shortcuts лежит автоматизация. На самом деле, Siri Shortcuts эволюционировали из Workflow. Apple приобрела Workflow в 2017 году.

 

Давайте рассмотрим проект
В этом уроке мы рассмотрим, как использовать Siri-ярлыки в простом проекте, который позволит пользователям произнести фразу «Say Hi» (можно придумать свою фразу), а затем мы запустим наше приложение и представим UIAlertView.

В конце этого урока вы должны хорошо разбираться в вариантах использования и технологиях, лежащих в основе Siri-ярлыков, и знать, как их интегрировать с вашими приложениями!

Определение ярлыка в новом проекте
[dt_highlight color=»» text_color=»» bg_color=»»]Для начала убедитесь, что у вас есть последние beta версии iOS 12 beta 10 (на момент написания статьи), macOS Mojave и Xcode 10.[/dt_highlight] Если у вас нет этих инструментов, вы не сможете запустить код, так как Siri Shortcuts — это новый API, представленный в Xcode 10 и iOS 12 beta. Если вы являетесь зарегистрированным разработчиком Apple, вы можете загрузить их с сайта разработчика.

Запустите Xcode и создайте новое приложение Single View. После этого нажмите «Создать», чтобы загрузить проект Xcode. Мы сделали [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]ru.SwiftLab[/dt_highlight] в качестве идентификатора, вы можете поставить свой.

 

 

Не забудьте перейти к разделу «Параметры проекта» вашего проекта Xcode, выберите «Capabilities» и прокрутите вниз, и убедитесь, что вы включили Siri, как показано ниже. Это позволит использовать Siri SDK в нашем приложении и добавит в проект файл прав.

 

 

Когда вы включите Siri, Xcode добавит [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»].entitlements[/dt_highlight] в ваш проект. Затем переходим на вкладку «General», прокручиваем вниз и выбираем [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]Linked Frameworks and Libraries[/dt_highlight]. Не забудьте нажать [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]+[/dt_highlight] , чтобы добавить фреймворк. Найдите [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]Intents.framework[/dt_highlight] и выберите [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]Add[/dt_highlight] . Это позволит нам использовать новую платформу Intents в нашем приложении.

 

Перейдите к вашему [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]Info.plist[/dt_highlight] файлу и добавьте [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]NSUserActivityTypes[/dt_highlight] . Значение вашего первого элемента должно включать идентификатор вашего пакета с добавленным действием, например sayHi.

 

 

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

Перейдите в файл [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]ViewController.swift[/dt_highlight] . После метода [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]viewDidLoad[/dt_highlight] создайте новый метод [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]setupIntents[/dt_highlight] и вызовите его из метода [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]viewDidLoad[/dt_highlight]. Внутри этого метода мы включим наш код Siri Shortcuts.

 

func setupIntents() {
        let activity = NSUserActivity(activityType: "ru.SwiftLab.SiriSortcuts.sayHi")
        activity.title = "Say Hi"
        activity.userInfo = ["speech" : "hi"]
        activity.isEligibleForSearch = true
        activity.isEligibleForPrediction = true
        activity.persistentIdentifier = NSUserActivityPersistentIdentifier(stringLiteral: "ru.SwiftLab.SiriSortcuts.sayHi")
        view.userActivity = activity
        activity.becomeCurrent()
    }

 

Создайте еще один метод, который вызывается [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]sayHi()[/dt_highlight] и вставьте в следующий код. Этот код устанавливает базовый UIAlertController для отображения сообщения.

 

public func sayHi() {
        let alert = UIAlertController(title: "Hi There!", message: "Hey there! Glad to see you got this working!", preferredStyle: UIAlertController.Style.alert)
        alert.addAction(UIAlertAction(title: "OK", style: UIAlertAction.Style.default, handler: nil))
        self.present(alert, animated: true, completion: nil)
    }

 

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

 

Двигаемся дальше.

Когда вы настроили базовую функциональность [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]ViewController.swift[/dt_highlight], перейдите к файлу [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]AppDelegate.swift [/dt_highlight] и добавьте функцию [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]application(_:continueUserActivity:restorationHandler)[/dt_highlight] , как показано ниже.

 

func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool {
    let viewController = window?.rootViewController as! ViewController
  viewController.sayHi()
  return true
}

 

Отлично, давайте проверим! Перейдите в приложение «Настройки» и выберите «Siri». Вы должны увидеть новый ярлык названием «Say Hi». Нажмите кнопку [dt_highlight color=»» text_color=»000000″ bg_color=»eeeeee»]+[/dt_highlight] , чтобы добавить его, а затем следуйте инструкциям на экране, чтобы создать собственную голосовую фразу, для вызова этого ярлыка.

Как только вы это сделаете, включите Siri и произнесите свою фразу!

 

 

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

Изучайте Swift и создавайте крутые приложения! До скорого!

Пролистать наверх