思ってることってこんなもんだよ
2017

2017年も残りわずかとなりました。毎年必ず振り返りエントリを書いてますが、今年も書いてみたいと思います。 娘が4歳になりました 4月から幼稚園の年少さんとなりました。行けるかな〜、毎日泣いちゃうかもなぁ、という心配をしていましたが、まったくの無用でした。 楽しく毎日通っています。 度重なる風邪 幼稚園に娘が行くようになってから、頻繁に幼稚園から自宅に風邪を輸入してくるようになりました。決まって僕は家族で最後にうつり、 ウィルスなのか細菌なのかわかりませんが、最強になった状...

2017年12月19日に、Android開発者向けにGoogle Play APP DOJOというイベントが行われました。これは毎月行われているイベントです。 Google Play APP DOJO 案内ページ 今回のテーマは、「Android x Dialogflow/Actions on Google」ということで、最近僕が没頭していることが内容でした。講師として 僕にもお声がかかり、資料などを準備していたのですが、残念ながら家族がインフルエンザにかかってしまうという大事件がおき...

Googleアシスタントは、Android端末やGoogle Home、Android TV搭載のテレビ、ChromeOS、そしてiOS向けのGoogleアシスタントアプリなど、 本当に皆さんの身近にいる存在です。Actions on Googleの提供によって、Googleアシスタント向けアプリの開発と提供が可能になりましたが、公開 されたアプリを発見するための場所が今までありませんでした。Amazon Alexa向けのSkillは、Amazon Alexaアプリの中で探すことができます...

Googleアシスタントが生息するデバイスは主に2つの形態があります。Googleアシスタント向けアプリの開発では、これらの存在を意識して、ユーザに最適なUIを提供しなければなりません。 音声のみのデバイス(Google Homeのような)。 音声と画面を持つデバイス(Androidのような)。 Actions on GoogleのドキュメントにあるConversations - Basicsにて、それらの概要が説明されています。以下はその日本語訳です。 会話の基本 ...

Googleアシスタントは、既に複数の言語をサポートしています。その中には、当然英語と日本語も含まれています。Actions on GoogleによるGoogleアシスタント向けアプリの開発では、同時に複数の言語に対応したアプリ開発をすることが可能です。ユーザに返事を返すのは主にフルフィルメントの役目ですので、フルフィルメントの実装には国際化のための実装が含まれることになります。 Actions on GoogleのドキュメントにあるLocalization - Fulfillmentに...

Actions SDKを使ったGoogleアシスタント向けアプリの開発が完了した後は、実機でのテストを経て、承認プロセスを通過するためにレビュー依頼を提出することになります。それらには、gactionsコマンドを使います。 Actions on GoogleのドキュメントにあるBuild with Actions SDK - Submit Your Appにて、それらの手順が説明されています。以下はその日本語訳です。 アプリを提出する Dialogflowエージェントとフルフィル...

Actions SDKを使ったGoogleアシスタント向けのアプリにおいて、作成したフルフィルメントを呼び出すためには、フルフィルメントをデプロイしてインターネット上から利用可能な状態にして、そのエンドポイントURLをアクションパッケージ内に記載することが必要です。Firebase Cloud Functionsとしてフルフィルメントを開発していた場合には、Firebaseにデプロイ後に決定されるURLを登録することになります。 Actions on GoogleのドキュメントにあるBu...

Googleアシスタント向けのアプリにて、実際にユーザからの入力を処理して返事を返すのは、フルフィルメントの役目です。Actions SDKを使ったアプリにおいても、フルフィルメントを作ることになります。 Actions on GoogleのBuild with Actions SDK - Build Fulfillmentでは、フルフィルメントをどう実装すれば良いかが説明されています。以下は、その日本語訳です。 フルフィルメントの構築 レスポンス構築についての詳細を学ぶ ...

プロジェクトとアクションパッケージの作成が終わった後は、具体的なアクションを定義していきます。アクションは、ユーザがアプリをアプリ名によって呼び出した際に起動されるデフォルトアクションや、付帯情報(○○を使った△△と話す、のような)を伴ったアクションの呼び出し(具体的な、が転じて「深い(Deep)」という表現が使われます)、つまりディープリンクを行うためにアクションを追加することもできます。 Actions on Googleのドキュメントにある、Define Actionsでは、Act...

Actions SDKを使ってGoogleアシスタント向けアプリを開発するための第1歩は、プロジェクトの作成と、アクションパッケージの作成です。アクションパッケージの実体はJSONファイルであり、 gactions コマンドでそのひな形を得ることができます。 以下は、Build with Actions SDK - Create a Project and Action Packageの日本語訳です プロジェクトとアクションパッケージの作成 プロジェクトの作成 Actio...

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”に掲載されています。以下は、その日本語訳です。 ここに書かれている内容が、ほとんどのアプリで必要となる実装要求となるはずです。Number Genieの仕組みと実装内容を把握することが、あなたがGoogleアシスタント向けの...

フルフィルメントのデプロイまで済んでいれば、あとはアプリをデプロイして承認プロセスに進むことになります。Actions on GoogleのDeploy Your Appでは、アプリをデプロイして実機(Google HomeやAndroid端末など)でテストを行い、レビューに提出する手順が説明されています。以下は、その日本語訳です。 アプリをデプロイする Dialogflowエージェントとフルフィルメントがデプロイされたら、実際のハードウェアデバイスやアクションシミュレータでアプリ...

フルフィルメントの構築では、FirebaseのCloud Functionとしてフルフィルメントを作りました。これをFirebaseにデプロイするための方法が、Actions on GoogleのDeploy Fulfillmentにて説明されています。以下は、その日本語訳です。 フルフィルメントをデプロイする 本番環境用のCloud Functions for Firebaseにデプロイするように環境を設定する方法を説明します。ただし、フルフィルメントをホストするHTTPSリクエ...

Actions on GoogleとDialogflowにてGoogleアシスタント向けアプリを開発する際に、そのアプリの本体とも言えるものがフルフィルメント(Fulfillment)になります。フルフィルメントは、DialogflowからWebhookで呼び出され、ユーザからの入力の解析結果が渡されます。そして、何か処理を行った後に、ユーザに返事をする処理を書くのも、フルフィルメントです。 Actions on Googleでは、Dialogflowでのフルフィルメントの作り方について...

Dialogflowを使ったGoogleアシスタント向けのアプリ開発において、Create a Project and Dialogflow Agentにてプロジェクトを作成できたら、次はアクションを定義していきます。アクションの作成方法は、Actions on GoogleのDefine Actionsに書かれています。以下は、その日本語訳です。 アクションを定義する Dialogflowでアクションを定義するには、Dialogflowエージェントでインテントを作成し、エントリポ...

Googleアシスタント向けのアプリでは、基本的にユーザにはテキストから音声合成された結果を「聞かせる」ことになるのですが、時としてもっと異なるものを聞かせたくなることがあります。音声合成を細かく制御するために、またオーディオファイルの再生を指示するために、SSML(Speech Synthesis Markup Language)のサブセットを利用することができます。Actions on Googleの Conversations SSML and Audio - SSML にて、サポー...

[会話の設計]を終えた後は、Dialogflowを使ってアプリを作成していきます。Actions on GoogleのBuild with DialogflowにあるCreate a Project and Dialogflow Agentでは、サンプルのスターターアプリをダウンロードし、Dialogflowにてプロジェクトを作成するまでの手順が書かれています。以下は、その日本語訳です。 アプリの作成 Dialogflowを使用して開発するには、まず、Actions on Goog...

Dialogflowを使ってGoogleアシスタント向けのアプリを開発する最初のステップは、Dialogflowを使わずに、まず会話を設計することです。ユースケースを選び、ペルソナを作成して、アプリ名を考え、そしてダイアログ(対話: ユーザとアプリでやり取りされる具体的な会話の内容)を書き出しています。以下は、Build with Dialogflow - Design a Conversationにて掲載されている上記の手順に関する日本語訳です。 会話を設計する Googleアシ...

Googleアシスタント向けのアプリは、基本的にはActions SDKを使って開発を行います。しかし、Dialogflowを使うことで、直接Actions SDKを使わなくても、使いやすいIDEや自然言語理解(NLU)、そして機械学習などの追加機能が一通り揃った上で開発を行うことができるようになります。以下は、Build with Dialogflow - Overviewの日本語訳です。Dialogflowを使ったアプリ開発の概要が説明されています。 概要 Actions on...

GUIによるアプリでは、ユーザが何か期待していないことを行った時や、システムが予期せぬ状況になった時には、エラーメッセージをユーザに提示することが一般的です。しかし、会話型UIでは、エラーダイアログといったインタフェースはありません。全てが会話です。人間同士の会話でも、突然相手から「○○エラーです」とか提示されることは、あり得ません。その代わり、会話は継続されます。その会話の中で、間違いは自然な形で訂正されていくはずです。 Actions on Googleで掲載されているベストプラクテ...

Googleアシスタント向けのアプリを開発するための情報が掲載されている Actions on Google - GUIDES の各記事の日本語訳です。 いくつか公式ドキュメント側が日本語訳され始めていますので、既に日本語訳されたドキュメントについては、勝手翻訳ではなく公式のページを参照ください。 はじめよう (GET STARTED) 基本 (Basics) - 日本語訳された原文を参照ください。 最初のアプリ開発 (Build Your First App) ...

誰かと会話をしている際に、相手が本当に自分が言ったことを理解してくれているのか、とても気になると思います。理解したことを相手が自分に繰り返してくれれば、理解されたんだな、と確認することができます。また、適度に「はい」「オッケー」「わかりました」と、自分が言ったことを相手が肯定してくれれば、さらに会話はスムーズに進んでいくはずです。 Actions on GoogleのBest PracticesのInstilling User Confidence Through Confirmatio...

普段の会話と比べて、自動音声応答に対して「機械的だなぁ」と思ってしまったことは誰しもあることだと思います。これは、ちょっとしたことに気をつけるだけで、避けることができます。どうしてもコンピュータ相手には「命令をする」というイメージで考えがちですが、会話型UIでは、あくまで相手はコンピュータかどうかではなく、「会話相手」として自然に感じるような設計が必要です。 Actions on GoogleのBest PracticesにUnlocking the Power of Spoken La...

Actions on Googleのドキュメントサイトでは、会話型UIを設計するために役に立ついくつかのベストプラクティスが掲載されています。最初のベストプラクティスは、Be Cooperative…Like Your Usersです。ここでは、会話が協力的な原則で成り立っていることをベースとして、ユーザにとって自然な会話型UIを設計するためのポイントや具体例が説明されています。以下は、その日本語訳です。 協力的になれ… あなたのユーザのように PDFをダウンロード 会話...

会話を巧みに作るにて書き出されたダイアログ(対話)によって、作成したいGoogleアシスタント向けアプリの実際のイメージを掴むことができるようになります。しかし、さらに「その会話をユーザはどのように行うことになるんだろう?」とユーザ体験を確認したくなると思います。 ここでは、Design in ActionのUI toolkitを日本語訳したものを紹介します。Sketchテンプレートを入手することができ、携帯電話上でどのようにチャット形式で会話が進むかをイメージすることが可能なGoogl...

Design in Actionの設計原則と方法論と会話を巧みに作るを読むことで、Googleアシスタント向けのアプリにてどのように会話型UIを組み立てていけば良いかをイメージすることができるようになります。これに加えて、正しい会話型UIとして対話が設計されているかどうかを確認するためのチェックリストがあると、とても役に立ちます。 ここでは、Actions on Googleのドキュメントに掲載されている、会話型UIとして正しく設計されたかどうかを確認するためのDesign Checkl...

設計原則と方法論にて、会話型UIを設計するための指針について得ましたが、具体例がないと、なかなかイメージすることは難しいかもしれません。特に、「ダイアログ(対話)を書き出す」ということが何を意味しているのか、最初は想像できないと思います。Crafting a Conversationでは、数字当てゲームを題材として、どのようなダイアログを設計すべきかについて、具体的な例を示して説明しています。ここでは、それを日本語訳してみました。 これを読むことで、Google Assistant向けの...

Actions on Googleを使ってGoogleアシスタントにアプリを提供する際の会話型UI設計について、The Conversational UI and Why It MattersとHow Conversations Workによって、会話型UIがどういうものなのかが説明されています。しかし、概要なので、それらだけ読んでもなかなかイメージを持つことは難しいかもしれません。ドキュメントでは、更に具体的にアプリを設計するための説明が続きます。 ここでは、Design in Act...

会話型UIとそれが重要な理由に続いて、ここではUnderstanding How Conversations Workの日本語訳を紹介します。会話型UIの重要性から、会話の仕組みを理解することで、アプリを設計するための指針となる事項が数多く出てきます。どれも日々の会話の中で全く意識していないことなのですが、改めて考えてみると、どれも納得な重要な要素ばかりです。 会話の仕組みの理解: より良いUIへの鍵 PDFをダウンロード 今から25年後、誰もドロップダウンメニューをクリッ...

Google AssistantへのアプリによるUIの提供は、会話型になります。つまり、GUIのような「画面の操作」ではないので、アプリの開発者はどのように会話を組み立てれば良いのか、悩むはずです。Actions on Googleのドキュメントでは、アプリのデザインの概要として、Conversational UI and Why It Mattersが掲載されています。以下はその日本語訳になります。原文でも難しめの記載になってるため、日本語訳も微妙な感じになってますが、キーワードだけでも...

前回のエントリでは、Dialogflow(旧API.AI)を使ったアプリのチュートリアルドキュメントの日本語訳を紹介しました。ここでは、Dialogflowよりももっと簡単にアプリを作ることができるテンプレートのチュートリアル(GET STARTED - Build Your First App - with Templates)の日本語訳を作ってみましたので、以下に紹介いたします。 テンプレート Googleシートに記入し、アプリを作成します。 完全に定義されたペルソナを使...

技術評論社より、10月20日から「ソーシャルアプリプラットフォーム構築技法」という書籍が出版されます。2016年の春から書き始めていたので、1年半以上かかってしまいましたが、何とか出版というゴールを迎えることができました。題名の通り、ソーシャルアプリプラットフォームを作るための様々なことについて書かれています。この本を通じて伝えたかったこと、それは「プラットフォームを構築することこそが、インターネットの進化であり、ビジネスそのものである」ってことです。 取り上げている範囲としては、「...

前回のエントリでは、Actions on Googleの基本を説明したドキュメントの日本語訳を紹介しました。ここでは、Dialogflowを使ったアプリのチュートリアル(GET STARTED - Build Your First App - with Dialogflow)の日本語訳を作ってみましたので、以下に紹介いたします。 Dialogflowは、自然言語および人間の言語を解析するNLU(自然言語理解)エンジンも含まれているため、自然言語処理を自分で構築する必要がなく、比較的手軽に...

Google Homeがついに日本でも発売が開始されました。Google Homeは、Googleアシスタントと声でやりとりすることができるデバイスです。そして、開発者としては、Googleアシスタントに自作のアクションを登録できることに注目すべきですし、その作り方に興味を持つことでしょう。その作り方は、Actions on Googleというサイトにまとめられています。 自作アクションを作るために最初に読むべきドキュメントであるGE STARTED - Basicsを日本語訳してみたの...

昨年に引き続き、今年もLINE Developer Dayに参加させていただきました。 レセプションの横には、Waveの他にも、今後発売予定と思われるスマートスピーカーが並んでました。 サリーの、欲しい!!! Keynoteが始まるのを待っている間、どんな人が来てるんだろう?とキョロキョロしてました。印象的だったのは、席の前方はプレス席だったんだけど、日本人ではないであろう方々(アジア圏のどこかの国から来たって雰囲気)が結構多そうだったこと。僕はテーブル席の一番後ろに陣取った...

僕はChrome OS(Chromebook/boxに搭載されているOS)向けに、いくつかのChrome Appsをリリースしています。そのほとんどは、Chrome OSにてリモートにあるファイルシステムを、あたかもローカルにあるようにマウントすることができるchrome.fileSystemProvider APIの実装です。Dropbox、SFTP、OneDrive、SMB、WebDAVの4つの実装を作りました。その中で、最もユーザ数の多い実装が、Dropboxです。 File Sy...

Chromeウェブストアに開発者登録している方は、おそらく「Changes to Apps and Extensions notifications on macOS」という題名のメールを受け取っていると思います。Chrome 59から、chrome.notifications API経由で送信された通知について、Chromeが独自に提供してきた機構ではなく、macOS側が持つ通知システムにて表示されるように変更される、とのことです。 以下、僕のところに届いたメールを日本語訳してみま...

昨年の5月からIncrements社でQiitaの開発に従事していましたが、今月末をもってIncrements社を退職します。在籍期間は10ヶ月。今日が最終出社日です。 Incrementsでは、Qiitaの機能追加開発を主に担当していました。Qiita Blogには、僕がリリースしてきた機能が掲載されています。 yoichiroがIncrementsにJOINしました - Qiita Blog Email Markupに対応しました - Qiita Blog 外部リ...

GitLab.comのデータベースに障害が発生して、IssueおよびMerge Requestsが消し飛ぶ、という事態となりました。障害発生の6時間前までのデータベースのスナップショットがあって、それから復旧させるようです。 GitLab.com Database Incident - 2017/01/31 面白いというと不謹慎なのですが、GitLabのエンジニア達が復旧作業をしているのをライブストリーミングしているんですね。 GitLab Live Stream そして、世界...

今日では HTTP(s) で API が公開されることは当たり前の時代ですが、エラーをアプリケーションにどう伝えるかは、個々の API の設計に依存していました。特に、HTTP ステータスコードは有限であり、元々持っている意味があるので、自由に使うことはできません。API はそのドメインごとにもっと複雑で細かなエラー情報があるはずで、それらはレスポンスボディに載せてアプリケーションに伝えることになりますが、その書式に規定は今までありませんでした。 HTTP API にて、アプリケーション...