2015/4/9 Google Developers Summit Tokyo 自分用メモ

https://events.withgoogle.com/gdstokyo-201501/


# 9:45 多様化するデバイス環境から考えるユーザー体験とエコシステム

* 及川 卓也 (Engineer Manager, Google, Japan), Chrome のmanager

* Web 技術, 開発されてから25年が経つ
    * Web技術の進化、いかにラクできるかというフェーズになっている
    * Web と何か、ではなくて、組み合わせて何ができるかというフェーズになっている

* web components
    * custom elements
    * shadow(virtual) DOM など

* polymer, polyfil の技術
    * https://www.polymer-project.org/0.5/
    * Chrome 以外はweb components に対応していないため、polyfil 技術を使うことになる
    * オープンソース

* Web Starter Kit
    * https://developers.google.com/web/starter-kit/
    * responsive, performance など、課題はいろいろある
    * Web fundermentals のノウハウに則った開発環境のひな形を提供

* Material Design
    * Google のProduct 間でUI が共通化されていなかったのを統一したかった

* Tools
    * Chrome dev editor, IDE みたいなもの (Dart で書かれてる、オフラインで動く)
        * https://chrome.google.com/webstore/detail/chrome-dev-editor-develop/pnoffddplpippgcfjdhbmhkofpnaalpg?hl=ja

* アメリカユーザー、インストールされているアプリ平均33個のうち, 1/3 しか使われない
    * 見つけてもらうのが難しくなる
    * 検索されることが必要になる
    * deep link, app index が必要になってくる

* Physical Web
    * Mobile とWeb、どう繋ぐか
        * 「続きはWeb で」で次に繋げる方法は現状2つしかない、ブラウザでテキストを打ち込むか、QR コード。QR コードはフィッシングサイトに誘導されるリスクある
    * IoT で、デバイス同士がURIビーコン で通信することを提案している

* service worker
    * inteligent なproxy 
    * app をインストールすることなくサービスを提供する

* 雑感
    * web components, polymer, Chrome dev editor, Physical Web, service worker など、知らなかったけど面白そう、便利そう。でもいつキャッチアップできるんだろう。。

# 10:15 ユーザーを魅了するネイティブアプリ経済圏の広がり 〜 モバイル、ウェアラブル、リビングルーム
* 松内 良介, Developer Advocate, Google Japan, アジアチームのコンサルとかやってる人

* テーマ
    * ネイティブアプリの世界がどうなってるか
    * ユーザーの不満、期待
    * 求められるアプリの品質

* スライド(たぶんほとんど同じもの): http://news.mynavi.jp/articles/2015/02/25/google/
    * ユーザーのレビューで多いものをピックアップして紹介してくれている。
    * ただ、重い、とかアプリである意味がない、とか、まぁ言ってみれば当たり前の内容

* 没入する体験、TV とか
    * watch は没入してはいけない体験

* 高い評価と収益性
    * 2-2.9 —( 9X )-> 3-3.9 —( 4X )-> 4-5
    * http://news.mynavi.jp/photo/articles/2015/02/25/google/images/002l.jpg
    * 評価4 以上を目指しましょう

* ユーザーはアプリらしい動きを求めている
    * オフラインで動く
    * バックグラウンドで勝手に同期してくれる

* 中断感が少ない遷移 (マテリアルデザインの中の1つの概念)

* 劣化コピーの悲劇
    * Web 体験
    * ↓ 劣化コピ―
    * 他 platform
    * ↓ 劣化コピー
    * Android

* Android Quality Guideline、ユーザーの苦情が詰まってる
    * http://developer.android.com/distribute/essentials/quality/core.html

* 雑感
    * カメラパシャパシャがうるさくて集中できなかった
    * 発表の後、運営の方が自粛を促してくれていて素晴らしかった

# 11:00 Google Cloud Platform で知る Google クラウドの「Google らしさ」

* 佐藤 一憲, Developer Advocate, Google Japan, Docker Meetup とかやってる

* Google 開発プロダクトの進化
    * BigTable => 後継 の Spanner/F1
    * GFS => 後継のColossus

* Google index サイズ、100 PB

* Big Query
    * REGEXP_MATCH, LIKE 検索が100億行のテーブルで5秒で終わる

* Google App Engine
    * コンテナ、1台40ms で起動する

* Live migration で、MySQL replication しながらでもコンテナの移動が可能
    * 検証してみたときにも何の影響も無かった
        * これとかかな？ http://qiita.com/kazunori279/items/c35cbc24c5b93df3ee6b

* 雑感
    * AWS はたまに物理サーバのメンテナンスで引っ越ししないといけないとかある(今もあるよね？) けど、Live Migration でよしなにやってくれるのであればそれはすごいなぁ

# 13:00 マテリアルデザインの概要

* 松内 良介, Developer Advocate, Google Japan

* tangible Surfaces: 手触り感
    * 手触り: z-index を意識する、プラットフォーム(Android 側) でサポートする(API)
    * リップル効果: 触った実感をフィードバックとして表現してあげる
        * 触った要素がせり上がるとか
    * CardView
        * シャドウとかを提供してくれてる
        * コンテンツによって行数とかレイアウトを変えやすいので汎用的

* whiteframe 素材: http://www.google.com/design/spec/resources/layout-templates.html#

* フォント (A Bold, Print-Like Aesthetic, 印刷物を参考にしたUI)
    * フォントに濃淡をつけるだけで論理階層が作れる。ムダな枠線はいらなくなる

* Grid, Keyline
    * ユーザーに線を見せなくても、線を表現することができる
    * 階層を直接書かなくても、階層を表現することができる

* Primary Color とAccent Color をうまく使う
    * Primary Color が白or黒 なのは少数派
    * Primary Color は開発の初期に決めておいたほうがよい、後になるとデザインの整合性が狂う

* Immersive Contextual Imagery
    * 没入感のある表現

* Meaningful Motion
    * 連続性のある遷移、アニメーション

* アニメーションの速度を直線的でなく曲線的に変える
    * 活き活きした動き
    * http://www.google.com/design/spec/animation/authentic-motion.html#

* Web では、Polymer を利用することで、アプリと同じUI を提供できる

# Android Wear でのアプリ開発手法

* 山口 能迪, Developer Advocate, Google Japan


* そもそものコンセプト
    * 通常の生活の中に占めるスマホの利用時間を少なくしたい
        * ムダな通知の確認とか、人が集まっているのにみんなデバイスを見ている状態、とかいうのを無くしたい

* UI
    * 小さいのでスマホとは別
    * コンテキスト(見せるコンテンツ) とアクション(ボタンなどのインタフェース)に集中
    * 歩きながらでもそのアプリが使えないようであれば(それほど一瞬で認識可能、シンプルでないのであれば) 、UI を再考したほうがよい

* 開発
    * Android Studio
    * Android Wear 実機 (歩きながら検証とかは必要)
    * 3つのスコープを考える
        * 通知
        * マイクロアプリ
        * ウォッチフェイス
            * なんでも描画できるスクリーンに、自由に時計を表現 (パックマンで時計を表現したり、とか)
            * 例: santa tracker: http://www.smarterwatching.com/googles-santa-tracker-gets-santa-themed-watch-faces/


* 通知
    * L0: スマホアプリから通知を出すだけ
    * L1: 通知のリッチに。写真を大きく出したりとか
    * L2: バックグラウンドでデータ取得して通知、など

# 実践 Google BigQuery

* 本多 一行, Quipper. Ltd

* テーマ
    * BigQuery, 速い以外のメリットは？

* 「我々はサーバーを管理したいのではない、データを分析したいのだ」
    * BQ はフルマネージド
    * Google Apps Script, Goole AppEngine, Google Cloud Logging, Google Analytics Premium との連携

* 特徴
    * 小さく始められて、遅くならない
    * 1000行のクエリとかでも1秒くらいかかるけど、100億行に増えても5秒で済む

* JSON 突っ込んでおけばスキーマレスで解析できる
* Streaming INsert は1万行/秒だが、申請すれば10万行まで可能

# Deep Linking と App Indexingを使って検索結果からアプリへ

* Jarek Wilkiewicz, Developer Advocate, Google

* 動画
    * https://www.suzukikenichi.com/blog/app-indexing-and-nasu-iri-natto-tororo-soba/

* App Index API, 検索結果(サジェスチョン) にアプリのコンテンツが表示できる
    * Android のCookpad アプリの例

* 実装手順
    * deep link support
       * android のmanifest.xml に追加
    * implement AppIndexAPI
       * Activity を受け取ったら、API 呼び出し
    * Google Developer Console
       * verify website
    * もしhttp スキームをサポートしていなかったら、追加作業
        * web 側にscheme を書いておく
        * sitemap にも書いておく
    * Web master tool で確認できる


* Q. app index される条件があるか？
    * クローラーが認識できていないとうまく表示されない

* Q. クックパッドが出てたけど、どうやればいいの？
    * App Index API に対応してれば出る
    * 対応アプリが増えてきたら、表示されるものは多くなる
    * 表示順は、検索と同じアルゴリズムが適用される(はず)

* Q. http とhttps がある場合は？
    * 両方実装する必要がある

# 復習

http://googledevjp.blogspot.jp/
@googledevjp

* セッションの内容を確認するクイズがあって面白かった