Upgrade to Pro — share decks privately, control downloads, hide ads and more …

備えよう Siri Shortcuts

備えよう Siri Shortcuts

2019/11/29に開催された「集まれSwift好き!Swift愛好会 vol46 @ナビタイムジャパン」にて発表した資料です。

NAVITIME JAPAN

November 29, 2019
Tweet

More Decks by NAVITIME JAPAN

Other Decks in Technology

Transcript

  1. 備えよう Siri Shortcuts

    株式会社ナビタイムジャパン 中島 元成

    View full-size slide

  2. 自己紹介
    中島元成(ナカシマ モトナリ)
    役割:iOS開発+プロジェクト管理
    担当したアプリ:
     ・NAVITIME Travel
     ・JapanTravel by NAVITIME
     ・NAVITIME
    補足:
     ・ビールが大好きです🍻
     ・Google Home, Alexaと暮らしています

    View full-size slide

  3. ゴール
    終わった後に
    と思ってもらえると嬉しいです。
    「Siri Shortcutsいいな!自分のプロダクトにも入れてみよう!」
    「もっと機能を増やしてみよう!」

    View full-size slide

  4. 備えよう Siri Shortcuts
    • 第1部:Siri Shortcutsを知る
    • Siri Shortcutsの種類
    • NAVITIMEでの事例
    • 第2部:Siri Shortcutsを作る
    • 導入の助けになるドキュメント
    • Intents対応の悩みどころ

    View full-size slide

  5. • 第1部:Siri Shortcutsを知る
    • Siri Shortcutsの種類
    • NAVITIMEでの事例
    • 第2部:Siri Shortcutsを作る
    • 導入の助けになるドキュメント
    • Intents対応の悩みどころ
    Siri Shortcuts
    何に?
    備えよう

    View full-size slide

  6. 備えよう Siri Shortcuts
    • 第0部:ショートカットAppの強力なアップデート
    • オートメーション
    • ショートカットの配布
    • 第1部:Siri Shortcutsを知る
    • Siri Shortcutsの種類
    • NAVITIMEでの事例
    • 第2部:Siri Shortcutsを作る
    • 導入の助けになるドキュメント
    • Intents対応の悩みどころ

    View full-size slide

  7. ショートカットApp
    iOS 13から強力なアップデート
    • オートメーション
    • ショートカット配布

    View full-size slide

  8. オートメーション
    さまざまなトリガーで
    ショートカットが実行できる
    • 時刻
    • 位置情報
    • 到着、出発
    • 各種設定
    • 機内モード
    • Wi-Fi
    • Bluetooth
    • おやすみモード
    • 低電力モード
    • Appを開く
    • NFC(iPhone XS/XR/11以降)

    View full-size slide

  9. オートメーション活用記事(NFC)
    https://reliphone.jp/nfc-automation/

    View full-size slide

  10. ショートカットApp
    iOS 13から強力なアップデート
    • オートメーション
    • ショートカット配布

    View full-size slide

  11. ショートカットの配布
    ショートカットの共有ボタンから簡単に共有することができます。

    View full-size slide

  12. ショートカットの配布
    受け取るには端末の設定変更が必要になります

    View full-size slide

  13. 試しに配布してみます。
    ショートカットを実行すると現在地を取得し
    NAVITIMEの地図URLを
    クリップボードにコピーします

    View full-size slide

  14. ショートカットの配布
    https://www.matthewcassinelli.com/siri-shortcuts/
    既に150個以上ショートカットを配布している方もいらっしゃいます。
    中にはアプリをDLする前提としたショートカットもありました。

    View full-size slide

  15. 期待している変化
    ショートカット
    製作者
    多くユーザーが利用
    共有
    新しい発見

    View full-size slide

  16. でアプリの
    機能をカスタムする時代に備えましょう

    View full-size slide

  17. 備えよう Siri shortcuts
    • 第0部:ショートカットAppの強力なアップデート
    • オートメーション
    • ショートカットの配布
    • 第1部:Siri Shortcutsを知る
    • Siri Shortcutsの種類
    • NAVITIMEでの事例
    • 第2部:Siri Shortcutsを作る
    • 導入の助けになるドキュメント
    • Intents対応の悩みどころ

    View full-size slide

  18. Siri Shortcutsの種類
    Intents Extension(本日はこちらの方法を主に説明します)
    • 一般的なShortcutsで表示される方法
    • iOS 13より変数を受け取れる様になり複雑な機能が実現可能
    NSUserActivity
    • 特定状態のアプリを再現する機能
    • 繰り返し同じ動作をする際に便利

    View full-size slide

  19. NAVITIMEでの事例
    iOS 13にて対応した対話型のShortcutsもIntentsで実装しています。
    Siriに追加ボタン
    • 自宅、会社・学校を目的地の場合に表示
    ショートカットアプリ内
    ・「現在地からのルート検索」として表示
    質問の選択肢
    ・目的地:「自宅」「会社」の選択式
    ・時間:「今すぐ出発する」「終電」の選択式

    View full-size slide

  20. 実は... 掲載いただきました 🙌

    View full-size slide

  21. 備えよう Siri shortcuts
    • 第0部:ショートカットAppの強力なアップデート
    • オートメーション
    • ショートカットの配布
    • 第1部:Siri Shortcutsを知る
    • Siri Shortcutsの種類
    • NAVITIMEでの事例
    • 第2部:Siri Shortcutsを作る
    • 導入の助けになるドキュメント
    • Intents対応の悩みどころ

    View full-size slide

  22. 導入の助けになるドキュメント
    Siri ShortcutsについてApple公式の
    ドキュメント・サンプルコードが充実していますので
    本日は実装時のTipsを中心にお話します。
    公式の記事Siri Shortcuts導入記事
    Adding User Interactivity with Siri Shortcuts and the Shortcuts App
    https://developer.apple.com/documentation/sirikit/adding_user_interactivity_with_siri_shortcuts_and_the_shortcuts_app
    WWDCお馴染みサンプルアプリSoup Chef
    Soup Chef: Accelerating App Interactions with Shortcuts
    https://developer.apple.com/documentation/sirikit/soup_chef_accelerating_app_interactions_with_shortcuts

    View full-size slide

  23. Intents Extensionの実装・悩みどころ
    ・デバッグが大変
    ・検索結果を選択肢にしたい
    ・他のアプリとの連携したい

    View full-size slide

  24. デバッグが大変!

    View full-size slide

  25. デバッグが大変!
    ・これまでのExtensionsと違い、動作確認に発声が必要
     🙅‍♂ 常に発声できる環境ではない
     🙅‍♂ 発音が正しくないと言い直し
    ・リリース目前で「自宅へ帰る」とつぶやき続ける開発者…
    (※リリース前チェックです。)

    View full-size slide

  26. デバッグ時に固定の文言を発話させる。
    Siri Intent Queryを使うことで、メッセージが入れれます。

    View full-size slide

  27. UIテストで機械的に呼び出す
    メリット:テストパターンを複数作ることでボタン一つで文言を変更可能
    デメリット:実行ターゲットがアプリ本体となるためブレークが貼れない

    View full-size slide

  28. 検索結果を選択肢にしたい
    (非同期通信処理の対応)

    View full-size slide

  29. 先程紹介したサンプルアプリSoup Chefで用途を検討します。
    例)
    注文できるお店を、有効な店舗だけ選択肢に表示したい。
    事前説明)
    OrderSoupIntentHandlerクラス:Intentの実装クラス
    StoreListClientクラス:非同期で有効な店舗を取得できる
    検索結果を選択肢にしたい

    View full-size slide

  30. 検索結果を選択肢にしたい
    通信処理の実装 (OrderSoupIntentHandler.swift)の実装
    対応前
    対応後

    View full-size slide

  31. Siri側も多少レスポンスが遅くても柔軟に対応してもらえるため、
    特に実装する点では、困ることはありませんでした。
    検索結果を選択肢にしたい

    View full-size slide

  32. テストの設計:
    IntentsではTestのビルドスキームの実行が選択ができない
    どう対処できるか:
    ・テスト対象動作をEmbedded framework化し、内部でテストを行う
    ・IntentUI(画面処理部分)はTestビルド可能なので、IntentUI内で行う
    他のExtensionでも利用する事を考慮すると
    Embedded frameworkを利用一択
    IntentUI上でのテストは一時的な利用に留めた方が良いと思います
    検索結果を選択肢にしたい

    View full-size slide

  33. 他のアプリと連携したい

    View full-size slide

  34. 他のアプリから入力値をもらう
     ・極力System Typesを利用する
     ・値のバリデーションをアプリ側で担保
    カスタムなTypes使うにはプロダクトによって判断が必要
     ・Enumによる選択肢が制限できるメリット
     ・他のアプリから受け取れなくなるデメリット
    他のアプリと連携したい(入力値)

    View full-size slide

  35. 他のアプリと連携したい(出力値)
    他のアプリへ出力値を渡す
    ||
    テキスト入力などの場合に出てくる
    サジェストに表示したい

    View full-size slide

  36. 他のアプリと連携したい(出力値)
    ここに変数を設定するだけで出力可能

    View full-size slide

  37. 他のアプリと連携したい(出力値)
    注意点
     ・処理しやすいようにSystem Typesの出力にする
     ・複数の変数を渡す場合には、CustomType化が望ましい
     ・利用ユーザーがいるかもしれないので出力の変更は慎重に

    View full-size slide

  38. まとめ
    Siri ShortcutsはiOS 13からできることが格段に増えています。
    通常のアプリ開発とは違う点も多く、またショートカットの配布には課題もあり
    ますが、まずは多くのアプリがSiri Shortcutsに対応することが重要です。
    Siri Shortcutsは利用者の創意工夫で、新たな需要・機能が出る可能性を秘
    めています。
    そのためにもユーザーが組み合わせやすいインターフェースの設計を検討
    し、積極的に取り入れて行きましょう。

    View full-size slide

  39. 備えよう Siri Shortcuts


    View full-size slide

  40. NAVITIMEは

    エンジニアを募集しています


    View full-size slide

  41. 引用・参考文献
    ・iPhoneをかざすだけでオートメーション発動 NFCタグとショートカットで作業効率が爆上がり - maxi
    https://reliphone.jp/nfc-automation/
    ・My Siri Shortcuts Library - Matthew Cassinelli
    https://www.matthewcassinelli.com/siri-shortcuts/
    ・Adding User Interactivity with Siri Shortcuts and the Shortcuts App - Apple
    https://developer.apple.com/documentation/sirikit/adding_user_interactivity_with_siri_shortcuts_and_the_sho
    rtcuts_app
    ・Soup Chef: Accelerating App Interactions with Shortcuts - Apple
    https://developer.apple.com/documentation/sirikit/soup_chef_accelerating_app_interactions_with_shortcuts
    ・[書籍]iOS 12 Programming - 加藤 尋樹, 佐藤 紘一, 石川 洋資, 堤 修一, 吉田 悠一, 池田 翔, 佐藤剛士, 大榎一
    司, 所 友太
    https://peaks.cc/books/iOS12

    View full-size slide