Homeには様々なテンプレート的なアクションが用意されており、細かいところに拘らなければ、ほぼコードを書かずにアプリを作成できる。コンテンツさえ用意できれば、リリースすることも可能だ。自分の作りたい物にマッチしたものがあれば...。今回は、なかった場合として話を進めてみる。Homeアプリ開発の本質でない部分(アプリのビジネスロジック部分)が増えてしまい何の解説なのかわかりにくくなってしまう。Homeに尋ねると、間に合う電車の時間を教えてくれる。最寄り駅は、複数路線が乗り入れておらず、上りと下りしかないとする。限定された状況だが、アプリを単純にするため、でも、テンプレートで実装するには無理があるという状況を無理矢理作っているということでご容赦願いたい。「はい、間に合う電車ですね。上りは○○時○○分、下りは○○時○○分です。」このようなアプリを作ってみたい。列車の来る間隔が十数分おきで、ランダムなダイヤ編成の路線沿線のちょっとした郊外の住宅での利用を想定している。山手線のように数分に一本くるような状況(なぜなら、駅に行けばすぐに列車が来るから)や、1時間に一本程度しかこない状況(なぜなら、ダイヤ覚えられるから)での利用は想定してない。繰り返しになるがかなり限定された状況であることは、お許しを。Googleにログインし、プロジェクトを作成する。様々なテンプレートが用意されているが、ここでは一番下の”Conversational”を選択する。Action(s)”を実行する。ACTION”を実行する。intent”を選び”BUILD”を実行する。⇒Dialogflowが作成される。言語やタイムゾーンを適当に選び作成を実行する。conversation”をONにする。intent”をONにする。“SAVE”を実行する。Editor”を有効にする。17行目、welcomeという関数内、agent.add(“”)に発話させたい文字列(このアプリでは次の列車の発車時刻)を入力する。“DEPLOY”を実行(結構時間がかかる)する。次の列車の発車時刻を取得するロジックについては、ここでは割愛した。ステップ11で、addの引数に渡す文字列を作るロジックはアプリそれぞれの実装であり、今回は現在時刻で間に合いそうな列車の時刻を埋め込んだ。16時42分」の様な文字列を渡すようにした。現在時刻と列車の時刻表を比較し最適な列車をしゃべらせればよい。そのロジックは作りたいアプリそれぞれに依存する部分なので割愛した。Google、テスト用アプリにつないで」と言えば、上記ステップ11で入力した文字列を発話してくれるはずである。出来上がったアプリの動作(ただし、リリース前アプリ:音声あり)は以下の動画で確認できる。興味のある方はご覧ください。12ものステップがあるが、数分でおつりがくる程度の作業である。後は適切な文字列を返すロジックをFulfillmentに組み込むだけだ。呼びかけに使った「テスト用アプリについないで」も、返答の「テストアプリです。」もリリース審査が通れば、ちゃんとした気の利いたメッセージになるはずだ。心にうつりゆくよしなしことを、そこはかとなくかきつづります。