Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
「OK Google」でアプリの機能を呼び出してみる
Search
horitamon
March 16, 2022
Programming
1.7k
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
610
ActでGithub Actionsの動作確認をする
horitamon
0
1.5k
Bitrise Pipelinesを使って リリース作業を効率化する
horitamon
0
74
コルーチンを使って処理の見通しをよくする
horitamon
2
2.4k
解決むずかったバグ3選
horitamon
0
520
Other Decks in Programming
See All in Programming
Go × SIMDで高速化するベクトル検索 ~ルーフラインモデルでSIMDが効く境界を探れ! ~
po3rin
1
200
kubernetes コンポーネント開発入門 / 新卒N年目の勉強会&交流会!〜〇〇への誘い〜 #n_study
mazrean
0
190
AIの中の人になってみる
htkym
0
170
まだ間に合う!今年の夏こそSchemeのマクロ展開器を完全理解!
omasanori
0
650
thread_parallel_with_free-threaded_Python_and_NumPy.pdf
riku_sakamoto
0
270
Can LLMs Replicate 4 Years of Compose Migration? Exploring the boundaries of automation with 279 XML files from a real product
makun
0
130
業務時間外もAIに働いてもらう話
colorful12
3
10k
Press start. Python's next generation.
willingc
PRO
3
330
GraphRAGのKnowledge Graphを 直接!見る/View-GraphRAG's-KnowledgeGraph-directly!
tyumugi1113
1
280
モバイル交通系ICへのチャージ実例から考える、クロスプラットフォーム開発におけるiOS実機テスト設計とCI運用
yusuga
1
280
App Storeの外へ──日本のiOSサイドローディング入門 for iOSDC Japan 2026
yuukiw00w
0
150
20260828_品質と開発生産性を両立させる、AI時代のE2Eテストの考え方
magicpod
0
180
Featured
See All Featured
Impact Scores and Hybrid Strategies: The future of link building
tamaranovitovic
0
440
Applied NLP in the Age of Generative AI
inesmontani
PRO
4
2.4k
How to make the Groovebox
asonas
2
2.4k
Measuring Dark Social's Impact On Conversion and Attribution
stephenakadiri
2
270
StorybookのUI Testing Handbookを読んだ
zakiyama
31
6.9k
Practical Orchestrator
shlominoach
191
12k
Hiding What from Whom? A Critical Review of the History of Programming languages for Music
tomoyanonymous
3
1.2k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
3k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.5k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
194
17k
It's Worth the Effort
3n
188
29k
Visual Storytelling: How to be a Superhuman Communicator
reverentgeek
2
660
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 ショートカット 参考リンク
音声×テクノロジーでワクワクする社会をつくる