Upgrade to Pro — share decks privately, control downloads, hide ads and more …

VUI設計後の実装からリリースまでのポイント

Sponsored · Ship Features Fearlessly Turn features on and off without deploys. Used by thousands of Ruby developers.

 VUI設計後の実装からリリースまでのポイント

Avatar for Yoichiro Tanaka

Yoichiro Tanaka

April 16, 2018
Tweet

More Decks by Yoichiro Tanaka

Other Decks in Technology

Transcript

  1. Yoichiro Tanaka Software Engineer / IT Architect Google Developers Expert

    (Web) twitter.com/yoichiro google.com/+YoichiroTanaka
  2. 脚本 • Google SpreadSheet 脚本からのVUI設計 VUI設計 • Google SpreadSheet •

    UML: ステートチャート図 • UML: アクティビティ図
  3. const DialogflowApp = require("actions-on-google").DialogflowApp; const ACTION_INPUT_WELCOME = "input.welcome"; exports.fulfillment =

    (req, res) => { const app = new DialogflowApp({request: req, response: res}); const inputWelcome = app => { app.ask("こんにちは。◦◦です。・・・"); }; const actionMap = new Map(); actionMap.set(ACTION_INPUT_WELCOME, inputWelcome); app.handleRequest(actionMap); }; フルフィルメントのテンプレートコード
  4. Output Contextsの決定に使用するコード // Output Contextを設定する const CONTEXT_PLAY_AGAIN = "play_again"; app.setContext(CONTEXT_PLAY_AGAIN,

    1); // 1 はLifespan // Input Contextを削除する const CONTEXT_GAME = "game"; app.setContext(GAME, 0); // 0 によって削除される
  5. const inputNumber = app => { const number = app.getArgument("number");

    const answer = app.data.answer; if (number === answer) { app.setContext("game", 0); app.setContext("play_again", 1); app.ask("正解です!もう一度遊びますか? "); } else { app.setContext("game", 1); app.ask("◦イート◦バイトです。"); } }; 実際のコードの例
  6. アプリの情報登録 • アプリ名、発音 • アプリの説明文 • 画像、アイコン • 呼び出しフレーズ •

    開発者情報 • プライバシーポリシー、利用規約 • カテゴリ • その他もろもろ 基本的には、右図のページに必要となる情報を登 録していくことになる。
  7. 呼び出しフレーズ レビュアーは登録された全ての呼び出しフレーズを 試して、実際にアプリが起動するかをちゃんと確認 している。 → しかも、全てのデバイスで!起動しなければ、 Rejectされる。 特に Implicit Invocation

    は全てのデバイスで確認 することが大事。 上記の2つ目のImplicit InvocationはAndroidアシ スタントではOkだったのでレビュー提出するも、実 はGoogle HomeではNGであり、結果Rejectになっ てしまった。