Google I/O報告会に行ってきた(メモ)
5月24日に行われたGoogle I/O報告会に行ってきました。久しぶりの大きな勉強会&長丁場なので最後までいられるか心配してたんだけど、なかなか濃い内容だったので5時間あっという間だった。
発表者の方が言ってたように今回のGoogle I/Oでは特に大きな発表はなく(Google App Engine発表、というようなインパクトのあるものはなかったという程度に)、これまでの技術をより安定&洗練するためのテクニカルなところの成果発表といった感じでした。とはいえ、Googleの技術を使って開発等してる方にはなかなか充実したものだったんじゃないかと思います。(最近全然Google関連の技術に触れてないんだけど・・。)
印象に残ったのはサンフランシスコではGoogle Glassやその他サービスを作った技術者の人と話が出来たり、コードの不具合を見てもらったり出来たらしいってこと。なかなかそういう機会ってないと思うので羨ましいっすねー。来年こそはと思ったけど今日受けたTOEICの出来栄えがなかなかアレな感じなのでいつになることやらー。
技術的な所では、AndroidのVollayライブラリというやつで、ネットワークに接続して画像取ってきたりするのが便利になるらしい。(キャッシュとか、HttpClientどれつかうとかで悩まなくなるらしい)あとは、Google App Engineで使ってたDatastoreサービスが、外から(App Engine以外から)HTTP、JSONで使えるようになるらしい。これは、結構いいかも。EC2でフロントつくって裏はDatastoreとか。
ということで、今回のGoogle I/O報告会の資料などのリンクをメモっときます。
- DevFest Japan 2013 Google I/O 報告会のページ
- Androidの資料
- Chrome / HTML5の資料
- Google Cloud Platformの資料
- Geo and other topicsの資料
以下は自分用メモです。誤字脱字、勘違い、理解不足のため途中で諦めたような記述等多々ありますのでお気をつけください・・。
Androidセッション
Development Tool
Android Studioが発表された
IntelliJ IDAベースになった
Gradle OSSのビルドシステム
環境に応じてパッケージ名を切り替えたりできる?
Google Play
PlayやAndroid Studioからリソースを翻訳してくれるサービス
α版ベータ版の段階的リリース
ユーザ数を増やすセッションとかもあった
Google Play Services
Google Wallet
物理的なものも販売できるようになる
Location API
位置情報の取得などを頑張ってやってたことをPlay Serviceがやってくれたりする
Application Design
Structure in Android App
エレベータピッチ、フィーチャーリストの間のユースケース
UI/UX
4.2からDaydrem
ドックアプリの汎用的なもの
視覚障害者に対してどのように配慮すべきか
その他
Google TV
韓国では使われている、ビッグマーケット
Performance
1秒遅くなると
PV9.4%へる
直帰ユーザ8.3%増える
コンバージョン3.5%減る
とか
0−100ms 速い
100−300msのろま
300−1000ms
1s+メンタルコンテキストスイッチ
モバイルネットワーク
HSPA(3G)
全部おわるまでに600ms
LTEでは240ms−500ms
HTTPSだと +200ms
リダイレクトは絶対止めましょう
3Gだと600ms−3500msかかるので
バッテリー
通信の次に電池を消費する
LTEモジュールの状態遷移
通信モジュールが待っている時間が無駄
データ量に依存せずに必ず発生する
ビーコンはかなり危険(Pandraの例
測定ツールもある
BestPractice
データをプリフェッチ(大量に)
通信をOFFにする
ポーリングを避ける、プッシュする
データは一気に取ってくる、通信回数を減らす
Vollayネット接続ライブラリ
Easy Fast Network
JSON, image, text memory disk cache、デバッグ、トレース
順番が変えられない、キャッシュされない
次互換性、Apacheのライブらい(HTTCぃねt)とかの問題
これらを解決
グラフィックの最適化
フレームワークが頑張ってる
無駄な描画をしない
背景色はThemeで定義
9Patchでかぶさる部分を透明にする
他にも色々なチェックツール
クラウド関連
PlayGame Services & GCM
AppleでいうところのGame Center
初日はゲームに関するセッションが多かった
売りげベースでゲームが多かった
Cloud Save(端末を変えても続きからプレイできるとか)
Achievements(実績)
トロフィー的な
Leaderboard(ランキング)
サークル内の限定的なものとか
Multiplay
Androidだけでなく、WebやiOSでも利用可能
iOS用ライブラリや解説もある
Google+のIDでサインイン
iOS版ではライブラリのアップデート毎にリリースする感じになる
Android版ではPlaystoreでやってくれる?
Cloud Save
細かいことはできない
Multiplay
Google Serviceを介して
つながったらP2Pで
注意
小さいデータ。JSONとかよりもPBとかを使う
メッセージの暗号化
GCM XMPP
自サーバとGCMでつないだ状態になるので速い
メッセージIDなどを埋め込まないとどれがどれだかわからなくなる
XMPPの場合はマルチキャストメッセージが使えないので、その場合はHTTPSで
アプリ側から、GCMへメッセージを送信出来る
Play Serviceに統合された(下位互換性を保持)
質疑応答
Q. カードレイアウトについて
今こういうUIがいいよっていうのは、ありますか?
A. あんまりセッション見てないのでわかりませんでした
ストラクチャーアンドロイドアプリデザインのところとか
Q. Android OSやAndroid端末
A. Gallaxyがでた。Nexusと同じ位置づけ
Q. Androidの新しいバージョンの発表がなかった。
今後のAndroidのロードマップやこれを強くしていこうとしているのは、なんだと思う?
A。次に進むために周りを固めている印象。
Q. Cloud Save ゲーム以外でも使える?
A. ゲーム以外でも使えます
Q。Android Studioの本格的に利用できるのはいつころ?
A. 時期は不明。EclipseとStudioどっちつかえばいいの?
Eclipseのほうが機能がおおいので、人によってはStudioだけではだめかも
Q. Valayについて質問。動的な部分のキャッシングできおつけること。キャッシュがたまったらどう制御する?
A. キャッシュクリア出来る。キャッシュサイズも調整できる。
Q. LocationAPI。ヒューズどロケーションプロバイダが追加になったけど、今後は?
A. 今後はひゅーずどの方を使いなさいということ。2.2以降のデバイスであれば、ひゅーずどに以降してくださいということ。
Chrome HTMLとか
WebM Google製のオープンなビデオフォーマット
VP9を開発中
H.264より画質が良くてサイズが小さい
もうChromeで使える。(βで)、8/20以降、ステーブル版にくる
YoutubeですでにVP9ビデオが公開中
Web Components In Action
UIコンポーネントの基盤をWebに
カスタム要素をりようできるようになる
Ploymerフレームワーク・ライブラリ
Web Componentsをさらに便利に。
Web Componentsに対応していないブラウザでもJSで保管して使えるように
Web RTC
ブラウザかんでP2P
Chrome限定でスクリーンキャプチャをとれる
webp
モバイルからのアクセスが増えている
画像のサイズが上がってきているので問題になってくる
サイズはJpegより最大30%くらい減るけど
エンコーディング(圧縮)5−10倍遅い
デコード:1−3倍遅い
アメリカでは従量制が多いので、サイズを減らすのがいいのではないかという方向
将来ハードウェアサポートが期待できる
requestAutocomplete()
決済情報を保管してくれる
A more awesome Web, Mobile HTML , Dart
CSS
emとかの単位。そうたい的な単位が増えたよ
変数が使えるようになる
var-fontColor : red;
color: var(fontColor);
@supports、CSSがサポートされているときはこっちを、とか
@mediaはデバイスごとだけど
@support (disploya: flex) { display: flex }
postision: sticky
ぜんたいの中の一部を表示するとか。
Multimedia
WebRTCでスクリーンキャプチャ
マイクの入力が取れるようになった
Speech Api 自分が喋った内容をテキストに落としてくれるとか
Mobile HTML
Viewport, viewport units, Flexible box module, position:sticky
上記でスクリーンサイズに対応
Geolocation , Offine Events, Application Cache、Storage Apis
ユーザがどこにいるか、ネットワークが繋がっていない時とか
入力を手伝うための機能を使う
Navigation timing API
むずかしかったのでよく分からなかった
色んなハードウェアがあるけど
Androidのインテントをブラウざから
Fullscreen、ネイティブアプリっぽいのをつくれる
Dart
海外では意外と期待している人が多い
JavascriptとDartの比較
言語デザイン
大きなアプリケーションの場合
All in one
エラーを無視するか、警告を出すか
DOM操作がやりやすい
デフォルトのライブラリがjQueryっぽい
新しいWebの機能を取り込む
メソッド化スケーティング
Dartせいのプレゼンツール
メソッド名を動詞にこだわっていない
Performance, Devtools
Workspace
Devtoolsをエディタにしてしまおう
Elementsパネルで修正したスタイルやソースパネルで編集した内容が、そのままローカルに保存される。
SASSサポート
Source mapが必要
Portfowarding
リモートデバッギング、USBでつながっている端末とローカルのアプリを繋げることができる
Frame chart
Javascriptのプロファイル
どのメソッドにどれだけ時間がかかったかタイムラインで見られる
メモリ(アロケーショントラッキング)
メモリの割当てをタイムラインで見られる
Show composited layer
GPUをりようしてパフォーマンスアップ。
アニメーションに3D表現を使うと速くなるというテクニック、
それを視覚的にすることができる
上記の多くは、Chrome Canaryでないと試せない
QA
Q. Webpをモバイルで使うときどうするか
A. JavaとObjCで使う例がある
Q. Dartのサーバーサイドのセッション
A. サーバの話は出て来なかった。
Q. WebkitがブランチBlink
A.
Q. Webpについて圧縮
A. アリゴリズムについてのセッションはなかった。
Q. AndroidのChromeで加速度センサーの対応状況
A. Chromeブラウザになって使えなくなった??標準ブラウザのときは使えたっぽい。
Google Cloud Platform
Compute Engine
EC2みたいな感じ
今までは、サポートに入っているひとしか使えなかったけど、一般公開された
1分単位で課金(ここはComputeEngineが有利かな)
EC2とかは1時間単位で課金される
Debian VMを使う
Small, microインスタンスを追加。
CPUをあまりつかってない用途のものにいい
高級パケットルーティング
1つのプロジェクトの中に複数のネットワーク、サブネッワークをつくったり、BPM?
Max10TBの永続ストレージ。VMにつなげることができる
Cloud Datastore
AppEngineのDatastoreが外からも使えるようになる
JSONかPBで使えるようになった
AppEngineのDatastoreと同じ
ダウンタイムはほぼなし
Compute Engineでアプリを使って、Datastoreはこっちを使うとか
25%値下げ
AppEngine PHP
Limited preview(申し込んで許可されたひとだけが使える)
PHP5.4
Wordpressが動く
DatasotreAPIがまだ使えない
Cloud SQLは使える
Cloud DatastoreのJSON APIを使える
mbstringが入っていない(対応しているExtensionが少ない印象)
ファイルシステムに書き込めない
Cloud Storageを代わりに使う
一部関数が使えない(exec, tmpfile)
C拡張は使えない
1つのアプリで複数モジュールを管理
スケール、デプロイ、バージョン、パフォーマンスがモジュールごとに別々に管理できる
Mobile Backend Starter
Androidのアプリからサーバがわのコードを書かずにDatasotreを使える
コードがGithubに公開されているのでそれをもってきて使う
Big Query
AnalyticsとAdsenceをデータソースとして使えるようになる
(Analyticsはプレミアムアカウントだけ)
Google Apps Scriptから使えるので、スプレッドシートに大量のデータをいれて
アクセス解析するとか
Google Cloud Storage
バージョン管理ができるようになった
可用性の落ちるストレージが安く提供されるようになる
もとのデータソースをフィルタした結果を置いておくとか
ファイルを書き換えた時とかに通知するとか
gsutilコマンドを使ってcpコマンドみたいなことができる
S3のデータも同じように扱える
大きなファイルをアップロードしたいときとかに、
分割したファイルをマルチスレッドでアップロードできる
(Cloud compsiteとかと関連)
Drive API
去年I/Oからの差分
Widgets(UI系の機能)
Google Picker、Embeddable Sharing Dialogを出せる
ダウンロード先にGoogle Driveを選択できる
Apps Admin SDK
Directory API
Provisionning API系を置き換えるもの
ユーザの情報をかき集めるのが大変だった
Reports API
既存のAPIが色々Deprecatedされたので注意
Google Apps Script
Form + GAS
FormをGASで作れるようになった
Formのデザインを拡張できるようになった
Docsにもスクリプトを置けるようになった
ヘッダ、フッタ、リストアイテムとかをいじれるようになった
他人のカーソル位置とかも取れるようになる(予定
ダイアログとかも出せるようになった
サイドバー機能。ドキュメント書きながらなんかするなど。
トリガーの充実
GAS+Drive SDK
GASだけでDriveの中身をいじれるようになった
ディレクトリ以下のファイルの一覧を取得とか
フォルダやファイルの検索が簡単
QA
Q. Google StorageにあるファイルをWebに公開できる?
A. できる。権限設定も細かくできる。
Q. DriveとStorageの住み分け
A. TB単位のデータをいれるのはStorageとか
Q. アジアにデータセンターはできる?
A. とくに発表はなかった
Q. Rubyを使えるようにな情報は?
A. 情報はきいてない。
Youtubeを動画フラットフォームとして使って貰いたい
ライブ配信とかあった
デベロッパーからも使って貰いたい、
YoutubeLiveが個人でも使えるようになった
パートナーシップをむず部
チャンネル1000人以上いること
著作権違反がないこと
Live API
アプリからイベントを作成したりできるようになる
APIがv3になった
結構大きな変更
TopicksAPI
Freebaseと連携
キーワードから動画を検索とかが簡単になった
Androiアプリの中からYoutubeを動かせるようになった
いままでは、WebViewとかインテントで飛ばすとか
VP9を今年中に対応
Sign in
「G+ Sign in」ボタン
設置の仕方(Android , iOS、PC)
何が嬉しい?
Google にログインするので、、
アプリをパーソナライズ
Googleのサービスの内外で友人が登場する
Gogle Search ,Restful APIによる外部サイト連携
Goolgeの書くサービスのいち口をSign inにする?
Go
GEO
Maps関連
パーソナライズ強化
素早く表示・WebGL実装
地図そのものがインターフェース
あにめーしょんとかスムーズ
実装系の話
デザインが大きく変わった、機能はあんまりかわってない
8/14から新デザイン v=3.ex
11/14 v=3
Google maps Tracks API
車両などの追跡用API
位置の記録とGeoFenceが主な機能
どっかのエリアに入ったら通知したりできる
通常のユーザ(無償版)も利用できるように
QA
Q. Anroidでアカウントマネージャを使ってましたが、今後はSign inボタンになる?
A. Android向けの話だと、Sign inボタン使わなくても、
Google Gamesの中に認証用のAPIが入っているので、それを使えうとSign inボタンはつかわなくてもできると思う
Q. Map v3の件。カスタムのピンを作っているが、デザインはどうなる?
A. フロントとシャドウとプロパティがあるけど、シャドウは今後無視されるようになる。
Q. G+、ポストができない?Developerサイトを見るとReadonlyだったけど?(APIを使ってポストする?
A. Sign inの後に認可画面がでるので、そこでちゃんと権限をしていしていたらできる
Q. Go言語。v1.1。ロックをかけるのはプログラマの責任?言語がやってくれるようになった?
A. 管理は自分でやる。コンパイル時に検出してくれる。べーすこんでぃしょん?
Chrome Packaged Apps
Chrome app v2
ブラウザをプラットフォームとしてNativeアプリっぽいものを動かす
見た目が違う。ブラウザとは別のウィンドウで立ち上がる
定例屋のAPIをサポート、
Socket API、USB、Blouetoothをさわれたり
YoutubeからDLNAをつかってテレビにつなげる?
今回からウェブストアで公開できるようになった
ネイティブアプリみたいなものがChromeさえインストールされてたら動く。
モバイルはどうするか
Cordova + plug-in
(Fongapのオープンソース版?)