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
Sponsored
·
SiteGround - Reliable hosting with speed, security, and support you can count on.
→
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
380
スタートアップ企業のフェーズ転換期を乗り越えるためのリアーキテクト戦略
horitamon
0
630
ActでGithub Actionsの動作確認をする
horitamon
0
1.5k
Bitrise Pipelinesを使って リリース作業を効率化する
horitamon
0
79
コルーチンを使って処理の見通しをよくする
horitamon
2
2.4k
解決むずかったバグ3選
horitamon
0
530
Other Decks in Programming
See All in Programming
Web3Dライブラリを作ってVue Custom Rendererの仕組みを理解しよう / lets learn vue custom renderer by making 3d library
drumath2237
1
130
AIがコードを書いてくれる時代、我々は何を確かめるのか
yosuke_furukawa
PRO
13
5.9k
graphql-ruby を Spinel で速くしようとした話
mtsmfm
0
140
ActionController meets Protocol Buffers
sorah
1
800
TS 7.0 で baseUrl が使えなくなった今、パスエイリアスをどうするか
bicstone
2
590
Web Framework Benchmark Battle 2026, Any%
a_matsuda
3
3.2k
React Native에 현대적인 빌드 도구 더하기: Rollipop 구현기
leegeunhyeok
0
180
Goコンパイラを作ってGoをもっと理解する / Build a Go compiler to better understand Go
ikura_hamu
0
130
AI時代のシニアエンジニアとは
yosuke_furukawa
PRO
15
11k
エージェントを使い続けるためのメタワーク / Meta-work for keeping using the agent
rkaga
6
2.3k
Python Lambdaにおけるテストしやすい設計とAI支援の活用 / Designing Testable Python Lambda Functions with AI
kitano_yuichi
1
310
Spec-Driven Development - Why Vaadin Is the Perfect Fit
simas
PRO
0
240
Featured
See All Featured
The Curse of the Amulet
leimatthew05
4
17k
How to Ace a Technical Interview
jacobian
280
24k
The Invisible Side of Design
smashingmag
301
52k
Dominate Local Search Results - an insider guide to GBP, reviews, and Local SEO
greggifford
PRO
0
400
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
620
How to Talk to Developers About Accessibility
jct
2
620
Distributed Sagas: A Protocol for Coordinating Microservices
caitiem20
333
23k
The Director’s Chair: Orchestrating AI for Truly Effective Learning
tmiket
1
350
Amusing Abliteration
ianozsvald
1
390
Product Roadmaps are Hard
iamctodd
55
13k
Into the Great Unknown - MozCon
thekraken
41
2.8k
Context Engineering - Making Every Token Count
addyosmani
9
1.3k
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 ショートカット 参考リンク
音声×テクノロジーでワクワクする社会をつくる