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
新人はどこまで自力でやり、どこからAIに頼るべきか/エンジニア育成に向き合う_先輩たちの悩みと知見共有会
toppan_digital_dev
1
620
Snowflakeで業務アプリを作ろう。 Snowflakeのアプリ機能解説&実践ガイド
ayumu_yamaguchi
1
270
大喜利で理解するLLM as a Judge / Understanding LLM-as-a-Judge through Ogiri
rockname
0
100
DroidKaigi 2026 「個人開発という実験場: Android エンジニアが手にする4つの自由」
slashnephy
0
230
[GoCon2026] When Goroutines Are Not Enough: Runtime Locality in High-Throughput Go
takehaya
6
2.2k
ゲームコントローラやキーボードのファームウェアをSwiftで書く
kishikawakatsumi
1
240
LoopHub - ローカルで動く GitHub で、AI と共同開発
jugyo
1
550
The Past, Present, and Future of Enterprise Java
ivargrimstad
0
370
テストを司るデーモンに会いに行く 〜隔離した仮想マシンでテストを通すまで〜
h1d3mun3
1
360
How I Stole PSI from Android Studio - DroidKaigi2026
worker8
0
130
Intent as Code
shoppingjaws
6
1k
What We Talk About When We Talk About XP
m_seki
2
620
Featured
See All Featured
Being A Developer After 40
akosma
91
590k
Lessons Learnt from Crawling 1000+ Websites
charlesmeaden
PRO
1
1.6k
[SF Ruby Conf 2025] Rails X
palkan
3
1.4k
We Are The Robots
honzajavorek
0
370
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
6
1.2k
コードの90%をAIが書く世界で何が待っているのか / What awaits us in a world where 90% of the code is written by AI
rkaga
63
46k
I Don’t Have Time: Getting Over the Fear to Launch Your Podcast
jcasabona
35
2.8k
CoffeeScript is Beautiful & I Never Want to Write Plain JavaScript Again
sstephenson
162
16k
ピンチをチャンスに:未来をつくるプロダクトロードマップ #pmconf2020
aki_iinuma
128
56k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The World Runs on Bad Software
bkeepers
PRO
72
12k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
2
2.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 ショートカット 参考リンク
音声×テクノロジーでワクワクする社会をつくる