Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
「OK Google」でアプリの機能を呼び出してみる
Search
horitamon
March 16, 2022
Programming
1.6k
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
「OK Google」でアプリの機能を呼び出してみる
https://fablic.connpass.com/event/239265/
horitamon
March 16, 2022
More Decks by horitamon
See All by horitamon
Kotlin Multiplatformで考えるクリーンアーキテクチャ
horitamon
0
320
スタートアップ企業のフェーズ転換期を乗り越えるためのリアーキテクト戦略
horitamon
0
600
ActでGithub Actionsの動作確認をする
horitamon
0
1.4k
Bitrise Pipelinesを使って リリース作業を効率化する
horitamon
0
73
コルーチンを使って処理の見通しをよくする
horitamon
2
2.4k
解決むずかったバグ3選
horitamon
0
500
Other Decks in Programming
See All in Programming
3Dシーンの圧縮
fadis
1
680
さぁV100、メモリをお食べ・・・
nilpe
0
130
LLM本来の能力を解き放つサンドボックス技術とAI民主化への適用
yukukotani
3
3.3k
AI時代のUIはどこへ行く?その2!
yusukebe
19
6.9k
Skillsは効率化、Agentsは"自分の拡張"——Builder時代のエージェント編成(CC Night 2026)
wemra
1
110
IBM Bobを活用したレガシーアプリの最新化
oniak3ibm
PRO
1
180
Old Dog, New Tricks: The Java 25 Reinvention - JNation
bazlur_rahman
0
150
Dataformのリポジトリを立ち上げるときにまずやること / dataform-day0-2026
snhryt
0
130
Signal Forms: Beyond the Basics @ngBaguette 2026 in Paris
manfredsteyer
PRO
0
230
ユニットテストの先へ:テスト技法で要求・仕様を整理するJava開発実践 / Beyond_Unit_Testing_Practical_Java_Development_Techniques_for_Organizing_Requirements_and_Specifications
shimashima35
0
370
ECSアプリログをFireLensでコスト削減しようとしたけど諦めた話 in Fargate×Node.js
akihisaikeda
2
3.7k
気づいたらRubyで100作品 ー クリエイティブコーディングが生活の一部になるまで / 100 Ruby Sketches Later: How Creative Coding Became Part of My Life
chobishiba
3
550
Featured
See All Featured
Getting science done with accelerated Python computing platforms
jacobtomlinson
2
220
Principles of Awesome APIs and How to Build Them.
keavy
128
17k
Discover your Explorer Soul
emna__ayadi
2
1.1k
Organizational Design Perspectives: An Ontology of Organizational Design Elements
kimpetersen
PRO
1
720
From π to Pie charts
rasagy
0
200
Self-Hosted WebAssembly Runtime for Runtime-Neutral Checkpoint/Restore in Edge–Cloud Continuum
chikuwait
0
570
Believing is Seeing
oripsolob
1
140
Mobile First: as difficult as doing things right
swwweet
225
10k
Digital Projects Gone Horribly Wrong (And the UX Pros Who Still Save the Day) - Dean Schuster
uxyall
0
1.6k
Leo the Paperboy
mayatellez
7
1.8k
First, design no harm
axbom
PRO
2
1.2k
Docker and Python
trallard
47
3.9k
Transcript
「OK Google」で アプリの機能を呼び出してみる 2022/03/16 ラクマ × Voicy × ANDPAD ~
Android開発の裏側 ~ @horitamon
©2022 Voicy, Inc. ハッシュタグ #rva_android • モバイルアプリエンジニア (Androidがメイン) • 2021/09
Voicy入社 • 髪をこんなことにしたのは入社翌月 自己紹介 horitamon(堀 多聞)
©2022 Voicy, Inc. ハッシュタグ #rva_android アジェンダ 1. はじめに 2.
さわってみた 3. わかったこと 4. まとめ
ハッシュタグ #rva_android はじめに
©2022 Voicy, Inc. ハッシュタグ #rva_android はじめに お話しすること • 個人的に学習して理解したこと
お話ししないこと • Voicyにおける開発状況 ※実際に開発されている機能ではありません! 今回の発表内容
©2022 Voicy, Inc. ハッシュタグ #rva_android はじめに • 高校生の頃に一時期「Hey
Siri」が流行ってAndroidのぼく涙目 • 悔しくてiPhoneに変えたら2016年にGoogleアシスタントが発表 「OK Google」と呼びかけると天気を教えてくれたり、 Google検索してもらえたりするように • アプリを起動したり、ショートカット的な使い方もできるようになった 「OK Google」使ってますか?
「OK Google, Voicyで〇〇を再生」って できたらなあ…
©2022 Voicy, Inc. ハッシュタグ #rva_android Google I/O 2021にて •
Android アプリの音声対応化 • アシスタント向けの Android ショートカット Androidアプリへの導入方法のセッションが公開
使ってみないわけにはいかない。
ハッシュタグ #rva_android さわってみた
©2022 Voicy, Inc. ハッシュタグ #rva_android さわってみた • サンプルアプリのソースコードと一緒にざっくりとした組み方がわかる
◦ https://codelabs.developers.google.com/codelabs/appactions-beta#0 タスクリストアプリの例
©2022 Voicy, Inc. ハッシュタグ #rva_android 実装の流れ① • build.gradleで設定しているapplication
Idを確定して アプリをストアにアップロードする • 機能はできてなくてOK、 内部テストでOK、審査に出さなくてもOK • application Idを一意にしないとテストツールが使えない模様 Play Storeにアップロード
©2022 Voicy, Inc. ハッシュタグ #rva_android 実装の流れ② • 「どんな操作ができるか」を定義するファイル
• Built-in intents(BII)の中から、アプリで実現したい操作を選んで capability要素を追加していく 今回追加しているのは • タスクを検索する→「Get thing」 • 完了タスク一覧画面を開く→「Open app feature」 shortcuts.xmlの作成
None
©2022 Voicy, Inc. ハッシュタグ #rva_android Built-in intentsとは •
ユーザーが発した言葉からアプリで実現したい操作を解釈して intentに変えてくれる仕組み →正確な/一意な言葉じゃなくても同一の意味として判別できる • テンプレートのようにいくつもある https://developers.google.com/assistant/app/reference/built-in-intents これがGoogleアシスタントを使う”肝”
©2022 Voicy, Inc. ハッシュタグ #rva_android Built-in intentsとは 例えばGet
thingは • 「タスクリストでカレーを検索」 • 「タスクリストからトマト缶を探して」 →微妙にゆれがあっても 探したい物の文字列をextrasに付与してintentを発行してくれる これがGoogleアシスタントを使う”肝”
©2022 Voicy, Inc. ハッシュタグ #rva_android 実装の流れ③ • intentのextrasにshortcuts.xmlで指定したとおりのキーで
要素が格納されている →取り出して画面遷移とかする intentから要素取得
None
None
©2022 Voicy, Inc. ハッシュタグ #rva_android 実装の流れ④ • 機能名や操作の名称のゆれを吸収する場合に設定 例えば
• 「タスクリストで完了タスク」 • 「タスクリストで完了を表示」 • 「タスクリストで終了タスク」 • 「タスクリストで終了を表示」 どれを言っても完了タスク一覧画面を開いて欲しい時に設定する inline inventoryの作成
「完了タスク」も 「終了タスク」も 同じものとして受け取りたい
©2022 Voicy, Inc. ハッシュタグ #rva_android 実装の流れ④ • shortcuts.xmlにshortcut要素を追加 •
arrays.xmlに名称のゆれを列挙し、shortcuts.xmlから参照 →どう言っても「completed_tasks」がextrasに格納される inline inventoryの作成
©2022 Voicy, Inc. ハッシュタグ #rva_android • Google AssistantというAndroidStudioプラグインでテスト可能 •
実装したGoogleアシスタントの挙動の「プレビュー」を作成できる • ワンクリックで各種capabilityがテストできる • 実際にGoogleアシスタントからも操作できるようになる →細かい使い方は省略(直感的にわかる) 実装の流れ⑤ 動作確認
ハッシュタグ #rva_android わかったこと
©2022 Voicy, Inc. ハッシュタグ #rva_android 日本語では「一応使える」状態 • built-in
intent一覧ではどのBIIも対応言語に日本語は入ってない (と言うか英語とポルトガル語しかない) 恐らくサポート外
None
©2022 Voicy, Inc. ハッシュタグ #rva_android 日本語では「一応使える」状態 • テストツールでプレビューを作成するときも 説明の通り設定値をデフォルトにすると動かない
↓ • アプリ名を日本語で設定し、Localeをjaにすれば反応してくれる 恐らくサポート外
None
©2022 Voicy, Inc. ハッシュタグ #rva_android アプリ名が認識されないことがある • アプリ名を「Voicy」(アルファベット)にしているので 「ボイシー」という言葉と結びついていない模様
→うまく動かずGoogle検索になってしまう • 「スポティファイ」って言うとちゃんと「Spotify」ってなるから 何かしら申請したり、もしくはいっぱい呼んでもらって 学習とかしてくれたらちゃんと認識してくれるのかなあ… (「ラクマ」って言うとちゃんとラクマを認識してくれます。何かしたのかな…?) 「ボイシー」って言うと「ボイス」「おいしい」になりがち
©2022 Voicy, Inc. ハッシュタグ #rva_android actions.xmlからも作れる • ほとんど同じ機能を実装できる方法がもう一通りある https://developers.google.com/assistant/app/legacy
• URLからもわかる通り、こちらはレガシーになっていく模様 • 違いはintentに付与されるのがextrasではなくディープリンクになる ↓ • 既にディープリンクから起動する導線があるなら こっちを使った方がスムーズなのかもしれない shortcuts.xmlから作るのはベータ版
ハッシュタグ #rva_android まとめ
©2022 Voicy, Inc. ハッシュタグ #rva_android まとめ • Googleアシスタント経由のアプリ起動は結構簡単に実装できる
• 正確な言葉じゃなくても、Googleアシスタントがうまいこと ゆれを吸収してくれたり、ゆれの定義ができたりする • 日本語でも動くけどサポートされていない可能性がある • Googleアシスタントに認識されるくらいまで アプリの知名度を上げていく必要あり?
©2022 Voicy, Inc. ハッシュタグ #rva_android まとめ • 全体概要 ◦
Build App Actions | Google Developers • Codelab ◦ Extend an Android app to Google Assistant with App Actions (Beta) • Built-in intents一覧 ◦ App Actions built-in intents | Google Developers • Google I/Oセッション ◦ Android アプリの音声対応化 ◦ アシスタント向けの Android ショートカット 参考リンク
音声×テクノロジーでワクワクする社会をつくる