Gunosy Tech Blog

Gunosy Tech Blogは株式会社Gunosyのエンジニアが知見を共有する技術ブログです。

Google I/O 2015 に参加してきました

こんにちは。Android アプリ開発担当の黒川です。もう半月以上経ってしまいましたが、先月末に行われた Google I/O 2015 に参加してきた報告をします。来年以降、Google I/O に参加する方の参考になれば幸いです。

Google I/O について

Google I/O は Google が主催している年に1度の開発者向けカンファレンスです。(Google I/O 2015 の公式サイト

例年、新しいサービスや製品が発表されるため、世界中から注目されています。また、参加者にはお土産としてガジェットなどが配布されることもあり、希望者がとても多く、抽選が行われているほどです。

今年は、運良く参加が可能となり、Gunosy からは、私1人が参加しました。初めての Google I/O 参加だったので、非常に楽しみでした。ライブストリーミングやビデオなどは見ていたのですが、実際に行ってみると、現地のお祭り感が味わえて感慨深かったです。

www.youtube.com

準備

Google I/O に参加したことがない方向けに、簡単に準備について記しておきます。

まず、参加が可能になると申し込みを行うことができます。今年は、Eventbrite 上で申し込みを行う形式でした。ここで参加費を支払い、参加を申し込みます。

次に、スケジュールですが、第1日目の前日に着くようにしましょう。去年も今年も前日からチェックインが行われており、特に今年は先着順に初日のキーノートのシートが埋まることが明記されていました。キーノートを会場で見たい方は前日の午後にはチェックインできるようにしておくと良いと思います。帰りは、I/O 終了日の翌日に帰る方が多いようです。今年は2日目の夜に Nightcap という名のパーティーが開催されており、それらのイベントに参加したい方は2日目の夜も空けておきましょう。

宿ですが、自分はサンフランシスコの土地勘が全然ないことと、同僚から治安について脅されていたので、Union Square の近くのMarines’ Memorial Clubに宿泊しました。ただ、ここは周囲の環境は良かったのですが、会場から徒歩で15分ほど離れており、坂の上に位置していたため、往復がだいぶしんどかったです。素直に会場近くのホテルを取った方が良かったかもしれません。

また、現地では Google I/O に合わせて、様々なイベントが開催されます。だいたい前日(今年は 5/27)の昼や夜に開催されるので、事前にチェックして、興味あるものは申し込んでおくと良いでしょう。参考までに Aygul Zagidullina さんという方がまとめてくれたI/O期間中のSFベイエリアのイベントを見てみるのも良いかもしれません。これは今年の分ですが、どんなイベントがあるか参考になると思います。

当日必要なものは、通常の海外旅行と変わりませんが、サンフランシスコに行く場合は、SMS が可能な SIM を挿したスマートフォンを持って行くと Uber などのサービスが使えて便利かもしれません。私は日本のアマゾンで AT&T の GoPro SIM カードを買い、現地でアクティベーションを行い、SIM フリーの Nexus 5 で使っていましたが、非常に快適でした。値段もモバイルルータを借りるよりは安かったです。ここで書くと長くなるので、詳細が知りたい方はご連絡ください。

サンフランシスコ国際空港に到着したのは 5/26、I/O が始まる前々日の夕方でした。その日は宿にチェックインしてから知人と夕食を取って終わり。思ったよりも寒く、念のためと持ってきたコートに助けられました。

前日(5/27)

チェックイン

さて、Google I/O はチェックインが前日の朝9時から行われます。私は朝7時から会場の Moscone Center に向かいました。

こんな感じで、すでに100名弱の人が並んでいます。待つこと2時間、ようやく会場内に入ってチェックインします。顔写真付きの参加証やリストバンドを貰うのでなくさないようにしましょう。また、ショップがあるので、Google のTシャツやパーカーを買いたい方は寄ってみましょう。

このチェックインの順番でキーノートセッションの部屋に入れるかどうかが決まり、これは参加証の色で分かるようになっていました。今回は青色の参加証の人がキーノート会場に入れることになっています。とはいえ、かなり席数に余裕があるらしく、この日の夕方にチェックインした方も青色の参加証を手に入れていたそうです。もちろん来年はどうなるか分かりませんが、少なくとも私のように2時間前に並ぶ必要はないと思います。

チェックイン後

さて、チェックインが終わった後は、夜まで知人たちと一緒にお昼を食べたり、知り合いのオフィスを訪ねたりしていました。市内を移動するときは、Uber もしくは路面電車が便利だと思います。

天気が良ければ、ベイブリッジを散歩するのも良いかもしれません。フェリービルディングというフードマーケットが入っている有名な建物もあります。私はベイブリッジの袂のそばの Water Bar というお店でお昼を食べました。メインのお魚が新鮮でおいしかったです。

夜は、Google I/O Mobile Mixerというイベントと Twitter 主催のFabric I/O Partyに参加してきました。どちらも、軽食とアルコールが出るだけで、あとは知人やその場で知り合った人と話す形式です。以前 Droidcon Montreal で知り合った Android エンジニアと再会できたのが嬉しい驚きでした。

注意点として、イベントによっては夜遅くになるため、治安の悪い地域は注意した方が良いでしょう。私は Fabric Party が開催されているクラブへ移動する途中で Market Street から 6th Street に入ったのですが、まだ日が落ちていないにも関わらず、雰囲気がガラリと変わって怖かったです。

Google マップ

Twitter 主催のクラブイベント。音楽がうるさいので、あまり会話ができないですが、Fabric の中の人と色々と話せました。

1日目 (5/28)

Google I/O 1日目の最初のセッションは、キーノートセッションです。前日のチェックイン時にもらった参加証が青色の人は、このセッションの席が保証されているので、ゆっくり行っても大丈夫。のはずなんですが、実際には、会場が開く2時間前でも、すでに行列でした。今回は、Google からコーヒーやドーナツ、フルーツが朝ご飯として配られたので、前日のように空腹に悩む必要もありません。

ちなみに、宙を舞っているのはビーチボールです。Big Android BBQというイベントの宣伝で列の前で配布されたようですが、みんな暇なのでビーチボールで遊んでいました。

さて、午前9時頃になると列が動き、開場です。建物内に入りエスカレーターで3階を目指します。早く会場に入ると前の方に座れる可能性は高くなりますが、会場自体が横に広いこと、最前列は関係者やプレス席であることから、そんなに前でも後ろでも変わらないという印象です。

会場は、180度スクリーンで、なかなかの迫力です。キーノートセッションは9時半からなのですが、それまでは、このスクリーンでピンポンゲームの対戦が催されていました。

キーノートセッション

午前9時半から、キーノートセッションが始まります。

www.youtube.com

内容については既にご存知の方も多いので繰り返しませんが、自分が Android アプリ開発者として印象に残った点は以下でした。

Android M

言わずとしれた、Lollipop に続く Android OS のメージャーバージョンです。現在は Developer Preview ですが、今秋に最終リリースになるようです。

アプリ開発者は、Program Overview Android Developers に目を通しておきましょう。特に Behavior Changes Android Developers には、どこが変わったのか簡潔にまとめられています。

App Permissions

機能利用時にパーミッション許可を求めるようになりました。開発者としては、インストールやアップデートがスムースになるメリットが大きいでしょう。一方、古いアプリを M で動かした場合は以前と同様の挙動になるとのことですが、上記の文書には、targetSdkVersion が M でないとしても、新しいパーミッションモデルでテストすべきと述べられているので、既存のアプリも要注意かもしれません。

App Links

アプリ選択ダイアログを出さずに特定のアプリを開くことができます。App Indexing と組み合わせる形になるでしょうか。

Power & Charging

Doze については、アプリによっては注意が必要でしょう。ネットワーク通信や Wake lock などは無効になるそうなので、たとえば、定期的にデータを受け取る機構をアラームなどで実装している場合は影響を受ける可能性があります。また、USB Type C も正式対応になりました。複数の端末間で給電/充電ができるのがうれしいです。

Now on Tap

旦那さんと Viber でやりとりしている内容をそのままメモにするデモが印象的でした。こちらも Google Now のように API が提供されてサードパーティアプリが対応できるようになるのでしょうか。Google Now を日頃愛用している身としては、非常に楽しみです。

Cloud Test Lab, Google Cloud Messaging

複数端末でのテストが自動的に行えるようになりました。こちらは、どれくらいのテストが可能か気になりますが、複数端末でテストが行えるのは非常に魅力的です。また Google Cloud Messaging が強化されました。こちらは節を改めますが、いままで使いにくかったところが強化され、iOS もサポートされました。

ファミリー向けコンテンツ

Play Store でファミリー向けのコンテンツのみをリストできるようになるそうです。ちょっと前からコンテンツ・レーティングが導入され、実はアプリの審査を行っていることを発表したことと併せて考えると、Google としては、家族が安心して Android を使えるように仕組みを整えているようです。

アプリ開発者としては、不用意なリジェクトなどを避けるためにも、コンテンツ・レーティングをきちんと行うことが求められるのではないかと思います。

全体

Android アプリ開発者の観点からまとめたので、Brillo や Weave、Cardboard も省略してしまいましたが、こちらもユーザーとしては気になるところです。全体の印象としては、様々な技術を結びつけて、IoT や発展途上国、教育など、いままでの主要ユーザー以外の層に対象を広げようとしている意図が感じられるキーノートでした。なお、会場の外に出るときに新しい Cardboard をお土産としてもらえました。また、メールで翌日の朝に Nexus 9 が貰える旨の通知が来ていました。

1日目午後のセッション

お弁当を食べた後は午後のセッションです。私は、What’s new in AndroidというセッションとWhat’s new in Android Development Toolsというセッションを聴きました。

What’s new in Androidは Android M の新機能についてのセッションですが、やはり注目すべきは Data Binding (12:55) と Android Design Support Library (15:50) でしょうか。

www.youtube.com

What’s new in Android Development Toolsは Android Studio の新機能についてのセッションでした。こちらの注目も Data Binding、それに NDK Support でしょう。特に NDK Support は、かなり拍手が大きかったことからも待望されていたことが分かりました。

www.youtube.com

その後は、いくつか Sandbox Talks と呼ばれる、下記のようなオープンな部屋で行われる発表を聴きました。あまり席数もなく、周囲も騒がしいことから、本当に聴きたい場合は1つ前のトークから席を確保しにいかないと厳しいようでした。

ちなみに、Sandbox Talks は録画されていませんが、同等なものが100 Days of Google Devという YouTube チャンネルで公開されているそうです。気になるものについては見てみることをおすすめします。

After Hours

Google I/O 1日目が終わると、近所のYerba Buena Gardensという公園で野外パーティが行われます。だいぶ寒いので、来年行かれる方は羽織れるものを持って行った方が良いでしょう。また、自分は南から入ろうとしたのですが会場に辿り着けず、結局ぐるっと3/4周する羽目になりました。Moscone Center から向かうときは西からぐるっと北側に回り込んだ方が良いでしょう。

Google マップ

公園内に食べ物や飲み物の屋台が出ていて、あちこちで飲み食いできます。また公園の真ん中には(例によって)ステージが設けられ DJ が音楽を流していました。夜20時あたりには、ライトセーバーのおもちゃがどこかで配られ始めたようで、公園内の芝生でちゃんばらごっこが始まっていました。

2日目 (5/29)

1日目を終えて、ちょっと失敗したと反省することがありました。というのも、聞いたセッションは録画されているので、現地で聞く必要性は薄いですし、スケジュールを詰めてしまったせいでスピーカーに話を聞くこともできなかったためです。

ということで2日目は作戦を変えて以下のようにしました。

  1. セッション(1時間のトーク)は、録画されるので頑張ってまで見ない
  2. Sandbox Talks は混むので、見たいものを限る
  3. せっかくなので展示物に触れたり、話を聞く
  4. Office Hours もしくは Sandbox Talks の後にスピーカーに話を聞く

そこで、以下のようなスケジュールにしました。言ったそばから主張を曲げているのですが、まずは内容がすごく面白そうな ATAP と Speechless のセッションは聞くことにしました(Speechless は録画されていなかったようです)。また、GCM 3.0 と Data Binding は興味があったので、それらの Sandbox Talk は早めに並んで前の方で聞くことにしました。どちらも、セッション後に質問できるように時間に余裕を取っています。そして残りの時間は3階の展示物を触る時間にしました。

結果的に、この計画は悪くなかったと思います。ATAP と Speechless は現地で是非とも見られて良いものでしたし、Sandbox Talk の後に質問もできました。また3階では直前の ATAP で発表された展示に触ったり Project Tango を試すこともできました。

A little badass. Beautiful. Tech and human. Work and love. ATAP.

恥ずかしながら、それまでGoogle’s Advanced Technology and Projects (ATAP)という組織のことを知りませんでした。どうやら元々は Motorola 内のチームだったのが、Motorola の Lenovo への売却時に Google に残ったようです。

自分は Project Ara に興味があったので見に行ったのですが、セッションが始まる前からスクリーンには海賊の髑髏マーク、会場には重低音の音楽がかかっており、明らかに他のセッションとは異質でした。

www.youtube.com

内容は非常に面白いもので、もしまだご存知ない方はぜひ上記の動画を見てみてください。特に Project Soli と Project Jacquard は、非常に印象的でした。この I/O で一番のセッションだったと思います。

このセッションの後は、3階で実際に Soli や Jacquard に触れることができました。近くにいた Google のメンバーに話を聞いたところ、Soli は、機械学習で精度を高めることができたこと、またキャリブレーションも必要ないことを教えてくれました。トーク中に行われた日付合わせを行うデモはないかと尋ねたところ、まだ周りの環境ノイズの影響を受けやすく、あのデモが動くほどではないとのことでした。まだ技術的課題はあるようです。

また、近くにはProject Tangoのデモがあり、そちらも体験できました。去年発表されてから、あまり話を聞かなくなっていましたが、スマートフォン型端末の発売も始まるようなので、盛り上がってほしいです。

Google Cloud Messaging new APIs deep dive

自分が現在開発に携っているアプリでは GCM を利用しているのですが、Registration ID の切り替わるタイミングなどいくつか困っていることがありました。今回は 3.0 でそのあたりが改善できるのか知りたくて Sandbox Talk を聞きに行きました。

GCM 3.0 では、これまでのような Registration ID (トークン)だけではなく Instance ID というものを利用するようです。相変わらず Instance ID もトークンも定期的にリフレッシュされるのですが、その際にリスナーサービスの onTokenRefresh() メソッドが呼ばれるとのことでした。

Building Apps Faster with Android Data Binding

みんな大好き Data Binding です。事前にドキュメントは読んでいたのですが、具体的にレイアウトファイルからどのようにコードを生成するか、どのあたりを工夫したかという話を聞けたのは良かったです。ちなみに、一番気になっていた「なぜ依存ライブラリに Kotlin があるのか」をトーク後に質問してみましたが、答えは「便利だったから。公式に Kotlin をサポートするつもりはない。」とのことで、特に Kotlin を使った深い理由はないそうです。

Speechless at I/O

2日目最終セッションは Speechless です。知らなかったのですが、どうやらコメディーショーの形式に Speechless というものがあるようで(speechlesslive.com)、それを何人かの Googler でやるという、おふざけ色の強いセッションでした。

Speechless というのは簡単に言えば、ランダムに選ばれたトピックについて、あらかじめ内容を知らされていないスライドパッケージが渡され、その場で話を適当に作る、というショーのようです。スライド自体は画像1枚のみで構成されているのですが、かなりふざけた画像が並んでおり、話そうとした内容とその画像のギャップが笑いを誘う、という趣向のようでした。たとえば「ロードキルを解決するために、私たちはまず選りすぐりの Googler を集めてディスカッションしました。」と言ってスライドをめくると、オフィスのクッションで跳ねて遊ぶ男性の写真が表示される、といった具合です。

スピーカーは現れるスライドに合わせて即興で話を作るのですが、たいていはグダグダになってしまいます。そのバカバカしさが面白いのでしょう。正直、TV か何かのローカルなネタもあり、3割程度しか分かりませんでした。このセッションでは5人の Googler が順番に発表して、最終的に審査員が優勝を決めるのですが、優勝者は Chet Haase でした。

感想

2日間の Google I/O を経験して感じたのは、これは年に1度のお祭なのだな、ということです。正直、キーノートや主要なセッションについてはリモートでも見れますし、WiFi 環境が整備されている日本の方が早く新機能を試せるでしょう。Code Lab や展示物を触れるのは良い機会ですし、海外の技術者と交流できる機会でもありますが、一方で人が多く、あまりゆっくり話せる機会もありませんでした。もし海外の Android アプリ開発者と交流したいなら、Android の開発者カンファレンスで発表する方が近道でしょう。

むしろ、I/O の醍醐味は、あの興奮と熱気を感じることかもしれません。会期の前後にはサンフランシスコに世界から技術者が集まりますし、様々なイベントが開催されます。そういった、お祭感を味わえたのが良い機会だったと思います。

さいごに

最後になりましたが、7/8にWhat’s New in Android (I/O 2015)という Android 関連の新しいトピックについて話す LT 勉強会を開催予定です。残念ながらオーディエンス枠はいっぱいになってしまったのですが、LT 枠は空いてあります。ご興味のある方は、ぜひお申し込みください。

また、Gunosy では Android エンジニアを募集しております。ご興味をお持ちの方はぜひご連絡ください。