2017年12月19日に、Android開発者向けにGoogle Play APP DOJOというイベントが行われました。これは毎月行われているイベントです。
[Google Play APP DOJO 案内ページ](https://events.withgoogle.com/appdojojp/)
今回のテーマは、「Android x Dialogflow/Actions on Google」ということで、最近僕が没頭していることが内容でした。講師として
僕にもお声がかかり、資料などを準備…
Googleアシスタントは、既に複数の言語をサポートしています。その中には、当然英語と日本語も含まれています。Actions on GoogleによるGoogleアシスタント向けアプリの開発では、同時に複数の言語に対応したアプリ開発をすることが可能です。ユーザに返事を返すのは主にフルフィルメントの役目ですので、フルフィルメントの実装には国際化のための実装が含まれることになります。
Actions on Googleのドキュメントにある[Localization - Fulfillment](h…
Actions SDKを使ったGoogleアシスタント向けアプリの開発が完了した後は、実機でのテストを経て、承認プロセスを通過するためにレビュー依頼を提出することになります。それらには、gactionsコマンドを使います。
Actions on Googleのドキュメントにある[Build with Actions SDK - Submit Your App](https://developers.google.com/actions/sdk/submit-app)にて、それらの手順が説明され…
Actions SDKを使ってGoogleアシスタント向けアプリを開発するための第1歩は、プロジェクトの作成と、アクションパッケージの作成です。アクションパッケージの実体はJSONファイルであり、 gactions コマンドでそのひな形を得ることができます。
以下は、[Build with Actions SDK - Create a Project and Action Package](https://developers.google.com/actions/sdk/create-a-p…
Actions on Googleでは、Dialogflowが提供するNLPやその他のリッチな機能を使ったGoogleアシスタント向けアプリの開発だけでなく、Actions SDKを使って、低レベルな(NLPを含むほとんどの処理を自前で)アプリ開発も行うことができます。例えば、コマンド型の簡単なリクエスト/レスポンス形式のアプリであったり、NLPを行うための機構を既に持っていてそれを使いたい場合は、Actions SDKを採用すると良いでしょう。
Actions on Googleのドキュメン…
Dialogflowを使ったGoogleアシスタント向けのアプリ開発の手順について、総決算として「Number Genie」という名前の数当てゲームの作り方が、Actions on Googleの[Build with Dialogflow "Number Genie"](https://developers.google.com/actions/dialogflow/tutorials/number-genie)に掲載されています。以下は、その日本語訳です。
ここに書かれている内容が、ほとん…
[フルフィルメントのデプロイ](https://www.eisbahn.jp/yoichiro/2017/11/actionsongooglebuilddialogflow6.html)まで済んでいれば、あとはアプリをデプロイして承認プロセスに進むことになります。Actions on Googleの[Deploy Your App](https://developers.google.com/actions/dialogflow/submit-app)では、アプリをデプロイして実機(Google…
[フルフィルメントの構築](https://www.eisbahn.jp/yoichiro/2017/11/actionsongooglebuilddialogflow5.html)では、FirebaseのCloud Functionとしてフルフィルメントを作りました。これをFirebaseにデプロイするための方法が、Actions on Googleの[Deploy Fulfillment](https://developers.google.com/actions/dialogflow/de…
Actions on GoogleとDialogflowにてGoogleアシスタント向けアプリを開発する際に、そのアプリの本体とも言えるものがフルフィルメント(Fulfillment)になります。フルフィルメントは、DialogflowからWebhookで呼び出され、ユーザからの入力の解析結果が渡されます。そして、何か処理を行った後に、ユーザに返事をする処理を書くのも、フルフィルメントです。
Actions on Googleでは、Dialogflowでのフルフィルメントの作り方について、[B…
Dialogflowを使ったGoogleアシスタント向けのアプリ開発において、[Create a Project and Dialogflow Agent](https://www.eisbahn.jp/yoichiro/2017/11/actionsongooglebuilddialogflow3.html)にてプロジェクトを作成できたら、次はアクションを定義していきます。アクションの作成方法は、Actions on Googleの[Define Actions](https://develo…
[会話の設計]を終えた後は、Dialogflowを使ってアプリを作成していきます。Actions on GoogleのBuild with Dialogflowにある[Create a Project and Dialogflow Agent](https://developers.google.com/actions/dialogflow/project-agent)では、サンプルのスターターアプリをダウンロードし、Dialogflowにてプロジェクトを作成するまでの手順が書かれています。以下…
Dialogflowを使ってGoogleアシスタント向けのアプリを開発する最初のステップは、Dialogflowを使わずに、まず会話を設計することです。ユースケースを選び、ペルソナを作成して、アプリ名を考え、そしてダイアログ(対話: ユーザとアプリでやり取りされる具体的な会話の内容)を書き出しています。以下は、[Build with Dialogflow - Design a Conversation](https://developers.google.com/actions/dialogfl…
GUIによるアプリでは、ユーザが何か期待していないことを行った時や、システムが予期せぬ状況になった時には、エラーメッセージをユーザに提示することが一般的です。しかし、会話型UIでは、エラーダイアログといったインタフェースはありません。全てが会話です。人間同士の会話でも、突然相手から「○○エラーです」とか提示されることは、あり得ません。その代わり、会話は継続されます。その会話の中で、間違いは自然な形で訂正されていくはずです。
Actions on Googleで掲載されているベストプラクティスの…
誰かと会話をしている際に、相手が本当に自分が言ったことを理解してくれているのか、とても気になると思います。理解したことを相手が自分に繰り返してくれれば、理解されたんだな、と確認することができます。また、適度に「はい」「オッケー」「わかりました」と、自分が言ったことを相手が肯定してくれれば、さらに会話はスムーズに進んでいくはずです。
Actions on GoogleのBest Practicesの[Instilling User Confidence Through Confirmations…
普段の会話と比べて、自動音声応答に対して「機械的だなぁ」と思ってしまったことは誰しもあることだと思います。これは、ちょっとしたことに気をつけるだけで、避けることができます。どうしてもコンピュータ相手には「命令をする」というイメージで考えがちですが、会話型UIでは、あくまで相手はコンピュータかどうかではなく、「会話相手」として自然に感じるような設計が必要です。
Actions on GoogleのBest Practicesに[Unlocking the Power of Spoken Lang…
Actions on Googleのドキュメントサイトでは、会話型UIを設計するために役に立ついくつかのベストプラクティスが掲載されています。最初のベストプラクティスは、[Be Cooperative...Like Your Users](https://developers.google.com/actions/design/be-cooperative)です。ここでは、会話が協力的な原則で成り立っていることをベースとして、ユーザにとって自然な会話型UIを設計するためのポイントや具体例が説明さ…
Design in Actionの[設計原則と方法論](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglecustomdesign3.html)と[会話を巧みに作る](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglecustomdesign4.html)を読むことで、Googleアシスタント向けのアプリにてどのように会話型UIを組み立てていけば良いかをイメージすることができる…
[会話を巧みに作る](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglecustomdesign4.html)にて書き出されたダイアログ(対話)によって、作成したいGoogleアシスタント向けアプリの実際のイメージを掴むことができるようになります。しかし、さらに「その会話をユーザはどのように行うことになるんだろう?」とユーザ体験を確認したくなると思います。
ここでは、Design in Actionの[UI toolkit](http…
[設計原則と方法論](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglecustomdesign3.html)にて、会話型UIを設計するための指針について得ましたが、具体例がないと、なかなかイメージすることは難しいかもしれません。特に、「ダイアログ(対話)を書き出す」ということが何を意味しているのか、最初は想像できないと思います。[Crafting a Conversation](https://developers.google.co…
Actions on Googleを使ってGoogleアシスタントにアプリを提供する際の会話型UI設計について、[The Conversational UI and Why It Matters](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglecustomdesign1.html)と[How Conversations Work](https://www.eisbahn.jp/yoichiro/2017/10/actionsongo…
[会話型UIとそれが重要な理由](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglecustomdesign1.html)に続いて、ここでは[Understanding How Conversations Work](https://developers.google.com/actions/design/how-conversations-work)の日本語訳を紹介します。会話型UIの重要性から、会話の仕組みを理解することで、アプリを…
Google AssistantへのアプリによるUIの提供は、会話型になります。つまり、GUIのような「画面の操作」ではないので、アプリの開発者はどのように会話を組み立てれば良いのか、悩むはずです。Actions on Googleのドキュメントでは、アプリのデザインの概要として、[Conversational UI and Why It Matters](https://developers.google.com/actions/design/)が掲載されています。以下はその日本語訳になります…
[前回のエントリ](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglegetstarted1stappdialogflow.html)では、Dialogflow(旧API.AI)を使ったアプリのチュートリアルドキュメントの日本語訳を紹介しました。ここでは、Dialogflowよりももっと簡単にアプリを作ることができるテンプレートのチュートリアル([GET STARTED - Build Your First App - with Tem…
[前回のエントリ](https://www.eisbahn.jp/yoichiro/2017/10/actionsongooglegetstartedbasics.html)では、Actions on Googleの基本を説明したドキュメントの日本語訳を紹介しました。ここでは、Dialogflowを使ったアプリのチュートリアル([GET STARTED - Build Your First App - with Dialogflow](https://developers.google.com/…
Google Homeがついに日本でも発売が開始されました。Google Homeは、Googleアシスタントと声でやりとりすることができるデバイスです。そして、開発者としては、Googleアシスタントに自作のアクションを登録できることに注目すべきですし、その作り方に興味を持つことでしょう。その作り方は、[Actions on Google](https://developers.google.com/actions/)というサイトにまとめられています。
自作アクションを作るために最初に読むべ…
Chromeウェブストアに開発者登録している方は、おそらく「Changes to Apps and Extensions notifications on macOS」という題名のメールを受け取っていると思います。Chrome 59から、chrome.notifications API経由で送信された通知について、Chromeが独自に提供してきた機構ではなく、macOS側が持つ通知システムにて表示されるように変更される、とのことです。
 で API が公開されることは当たり前の時代ですが、エラーをアプリケーションにどう伝えるかは、個々の API の設計に依存していました。特に、HTTP ステータスコードは有限であり、元々持っている意味があるので、自由に使うことはできません。API はそのドメインごとにもっと複雑で細かなエラー情報があるはずで、それらはレスポンスボディに載せてアプリケーションに伝えることになりますが、その書式に規定は今までありませんでした。
HTTP API にて、アプリケーションにエラ…