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
330
スタートアップ企業のフェーズ転換期を乗り越えるためのリアーキテクト戦略
horitamon
0
600
ActでGithub Actionsの動作確認をする
horitamon
0
1.4k
Bitrise Pipelinesを使って リリース作業を効率化する
horitamon
0
74
コルーチンを使って処理の見通しをよくする
horitamon
2
2.4k
解決むずかったバグ3選
horitamon
0
510
Other Decks in Programming
See All in Programming
自作OSでスライド発表する
uyuki234
1
3.8k
分散システム、なんですぐ死んでしまうん?耐障害性を高めたいあなたのためのレジリエンスパターン入門
mshibuya
7
5.9k
Performance Engineering for Everyone
elenatanasoiu
0
270
Snowflake Summitでの新機能 CoCo / CoWork / snowflake-summit-2026-overall-what-new-coco
tatsuhiro
1
220
【SRE NEXT 2026 Lunch Session】一人目専任SREの立ち上げを加速する ― AIと進めたオンボーディングで2分を0.04秒にした話
pkshadeck
PRO
0
2.5k
AWS CDK を「作」ってみた 〜フルスクラッチで見えた CDK の裏側〜 / aws-cdk-from-scratch
gotok365
3
300
OSINT for SRE: 学術論文とポストモーテムから探る システム障害の共通パターン / SRE NEXT 2026
tomoyk
1
3.6k
5分で問診!Composer セキュリティ健康診断
codmoninc
0
100
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
190
エンジニアと一緒にテストコードの設計と実装を改善した話
mototakatsu
0
260
AI がコードを書く時代における新卒エンジニアの仕事風景 (2026) / New Graduate Engineers in the Era of AI Coding (2026)
sushichan044
0
220
Terraform標準の組織で AWS CDKをどう使うか
mu7889yoon
0
110
Featured
See All Featured
Lightning talk: Run Django tests with GitHub Actions
sabderemane
0
220
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
510
Building Better People: How to give real-time feedback that sticks.
wjessup
370
20k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
1k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.2k
Statistics for Hackers
jakevdp
799
230k
The browser strikes back
jonoalderson
0
1.4k
Designing for Timeless Needs
cassininazir
1
350
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
900
Code Review Best Practice
trishagee
74
20k
Java REST API Framework Comparison - PWX 2021
mraible
34
9.5k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
55k
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 ショートカット 参考リンク
音声×テクノロジーでワクワクする社会をつくる