こんにちは、Androidチームの @tomoaki_imaiです!今回はシリコンバレーにて5/18 – 5/20の3日間開催された、Google I/O 2016についてレポートします。またGoogle I/Oにて発表された内容から、モバイル系エンジニアがすぐ試すべき注目技術についてもまとめましたので、御覧ください。
目次
Google I/Oとは
Google I/OはGoogleが主催する、一番大きな技術カンファレンスです。Googleがその年にリリースする最新技術の発表があり、とても注目度が高いイベントです。また、期間中にはセッションやブース展示を通じてGoogleのエンジニアと直接交流し、様々な情報交換が出来ます。
近年はサンフランシスコで開催されていたこのカンファレンスですが、今年はGoogle本社があるマウンテンビューにて開催されました。それに伴って例年よりも参加者が多く、今年は7000人以上が来場したそうです。
Google I/Oの構成
Google I/Oがどのような構成のカンファレンスなのかを現地の写真を交えつつ説明したいと思います。Google I/Oは (1)キーノート(2)セッション(3)展示ブース(4)CodeLab(5)After Hourの5つで構成されています。
(1)キーノート
Googleが推進したい技術についてCEOであるサンダーピチャイ氏や各チームのリーダーが発表を行うセッションです。大きなアナウンスメントはここで行われます。
今年のキーノートでは、新技術のアナウンスメントとして、
- よりスマートな検索支援を行う Google Assistant
- スマートホームプロダクト Google Home
- 新しいコミュニケーションツール Allo(AI支援機能を持つチャットアプリ)、Duo(プレビュー付きビデオ電話)
- モバイル向けVRプラットフォーム Daydream
がありました。また、開発者向けの発表としては
- Android N 続報
- 腕時計型OS Android wear 2.0
- Anroid開発環境 Android Studio 2.2
- クラウドデータベースのFirebaseが分析、ノーテフィケーション、テスト機能を追加。分析等一部の機能は無制限で無料に
- ネイティブアプリをユーザーがインストールしなくても同等の機能が使えるAndroid Instant Apps
といったものがありました。
キーノートについては、動画がYouTubeにあがっています。ですが、これは2時間あって大変長いため、Engadgetが公開している12分の動画がさっと概要を押さえるにあたっておすすめです。
(2)セッション
3日間の開催期間中のメインを占めるのがGoogle社員によるセッションです。カウントしてみたところ、3日間で合計232セッションがありました。セッション内容はAndroidの開発TipsやWeb技術の最新動向など多岐に渡ります。
今年のセッションで頻繁に目にした印象があったのは、Firebaseでした(カウントしたところ28セッションがありました)。Firebaseは大幅な刷新があり、モバイルアプリ開発における多くの重要な機能を網羅したサービスとなったことから、Googleとしても認知度を上げたいのかもしれません。
なお、これらのセッション内容はYouTubeのGoogle Developerチャンネルで公開済または公開予定です。
ところで、今年は参加者が多いためかセッションに長蛇の行列が必ず出来ました。それは困ったものだったのですが、一方で列に並んだエンジニアと待ち時間で仲良くなる機会があり、それは良かったのかなと思います。
40分前には並ばないとセッションに入れませんでした
7000人以上の参加者でセッションが平均7つで座席が仮に300位として2100人分。そりゃ毎回あぶれる人出るわね。Googleの機械学習を持ってしても予測できないのかって言ってたら後ろのインド人が教師データがないからなぁとボヤいてた。 #io16jp
— Tomoaki Imai (@tomoaki_imai) 2016年5月19日
(3)展示ブース
セッション以外にも各分野の展示ブースがあり、Googleエンジニアによるデモや解説を聞くことができます。自分はセッション入れなかった時には色々なブースを回って日頃抱えていた技術的な課題を相談したり、導入方法等について話を聞いたりしました。
個人的に面白かったのは、Android Experimentと呼ばれるブースです。Androidを使った実験的な技術を展示していて、こういう新しいことにも積極的に取り組み展示しているのが面白いなと思いました。
Androidで撮った写真を加工・プロットして描画する実験
(4)CodeLab
CodeLabは最新の技術をTutorial形式で学ぶことができる場所です。CodeLab自体は公開されているのですが、ここで行うメリットとして、
- 最新の開発環境、端末が揃っている
- 疑問点があればGoogleのエンジニアに直接相談できる
といったことが挙げられます。ちなみに、Google I/Oで発表されたConstraintLayoutという新しいレイアウトについて、当日チュートリアルが公開されていました。それを実際に動かしてみた内容を元に書いた技術記事を公開しています。
(5)After Hour
カンファレンスの1日目と2日目の夜は、パーティーが開催されました。
今年はコンサート会場での開催ということもあり、1日目の夜は著名なミュージシャンやDJを呼んで盛大なコンサートがありました。参加者は皆リラックスしたムードで交流を楽しんでいました。
コンサート会場でのライブは大盛り上がり
2日目の夜はそこかしこでライブ演奏がありました
(ちょっと脱線)期間中の滞在先/移動
滞在先
期間中、私はAirbnbで探したマウンテンビュー駅近くのシェアハウスに滞在しました。6人部屋のドミトリですが、一泊$40で付近の平均が$150前後と考えると格安でした。
また、このシェアハウスはスタートアップのコワーキングスペースも兼ねていて、くっちゃくちゃの格好したエンジニアたちがリビングで夜通しプログラミングしている様子はシリコンバレーっぽいなーと思いました。
一般的にはホテルを取るケースが多いかと思いますが、こういったところでの出会いも良いのでおすすめです。
泊まってるシェアハウス。スタートアップのシェアオフィスも兼ねてる。リバティ邸みたい。 pic.twitter.com/kHPDMjkaSb
— Tomoaki Imai (@tomoaki_imai) 2016年5月18日
変な照明のリビング
移動
会場から宿の移動はGoogleの提供する無料シャトルバスかUber/Lyftを利用しました。UberとLyftはGoogleと提携し、期間中は$10offになるクーポンが発行されて、実質無料で移動ができました。
個人的には相乗りがおすすめです。値段も割安になるだけでなく、以下のように印象的な出会いや出来事がたまにたまに発生するからです。
Lyft の運ちゃんが50歳で5人子供がいて、データサイエンティストで、今スタンフォードで博士課程取得中で、8月からはグーグルでインターンするらしい。なんというアメイジングなキャリア。
— Tomoaki Imai (@tomoaki_imai) 2016年5月17日
帰り道uber poolしたら相乗りした人がgoogleのAndroidチームの人で今日office hourで聞けなかった質問を乗車中に出来た、解決の糸口みえて最高! #io16jp
— Tomoaki Imai (@tomoaki_imai) 2016年5月19日
せっかくシリコンバレーに来たのであればぜひ利用してもらいたいシステムです。
モバイル系エンジニアが今すぐ試すべき注目技術
今回の発表でモバイル系エンジニア(特にAndroidエンジニア)が目を通して試しておいた方がよいと感じた技術について紹介します。
Firebase(Android, iOS, web)
まずは今回大きく取り上げられたFirebase。従来のクラウド型データベース機能に、分析、認証、自動テスト、通知機能、ABテストが追加されました。
特に分析機能については、Googleのエンジニアに話を聞いた所によると、GA(Google Analytics)よりもモバイルに特化していて、かつアクセス数の制限がないという点でGAに置き換わるサービスとなるようです。
個人的には認証機能のFirebase Auth+UIに注目しています。
- Google+、Facebookなどの6つの主要なアカウントでのサインアップ機能が数行のコードで実装できる
- サインアップスクリーンUIをAndroid,iOS, web向けに提供。オープンソースでカスタマイズできる
ということで、複雑だった認証の仕組みを各プラットフォームで共通化・簡素化できることが期待できます。詳細はこのセッションの動画の最後にて説明があります。
画像圧縮(Android, iOS)
画像表示は多くのアプリでパフォーマンスに影響を与える要素となります。
画像の扱いに関する指針がセッションで公開されていました。Androidに関して言えば可能であればvectorDrawableを使うこと、使えないのであればWebP, α値を省いたpngを利用すること、ということが示されました。
一枚でわかる画像圧縮の設計指針
それを実現するために、Android StudioではMaterial IconをVectorで生成する機能やvectorDrawbleのSupport Libraryが追加されました。 動画で詳細を御覧ください。
Android Tools (Android)
Android Studio 2.2では開発を効率化できる多数の機能が追加されています。主要なものを上げると、
- Apk Analyzer
Apk内部のリソースファイルやdex内のメソッドを参照できる機能 - ConstraintLayoutを使ったGUIベースのレイアウトデザイン
- Espresso Test recording
レコードした結果を自動でEspressoで動くコードが生成できる機能 - さらに改善されたInstant Run
Instant RunにはHot(コード変更)、Warm (リソース変更)、Cold (継承関係変更)の3種類があります。New AAPTではR.javaの再生成をなるべくしないようになり、Hot(数秒での反映)での反映がしやすくなった
などがありました。ライブデモがあるので、この動画は必見です。
まとめ
このような大きなカンファレンスに参加したのは初めてだったのですが、以下の点で大変有意義な3日間でした。
世界各国のエンジニアと交流できる
カンファレンス中は色々な国のエンジニアと話す機会がありました。お祭りのような雰囲気だから普通のmeetupよりも話しやすい印象でした。どういうセッションが良かったとか、あの技術はどうなのか?とか、ここでしかできない交流がありました。
最新の技術に真剣に向き合える
実際のところ、今回のカンファレンスの内容は動画で公開される予定です。しかし、集中してセッションを聞いて、実際に動かしてみて、時には疑問点を質問して、内容を消化するといったことは現地にいるからこそ出来るものだと強く感じました。 特に今回のカンファレンスにおいて、私はある課題についてより優れた解決方法を見つける目的を持っていて、それに関してよい知見が得られたことが大きな収穫だった と感じています。
カンファレンス中の4日間、業務の対応をしてくれたチームに感謝しつつ、ここで得た知見をサービスに活かして行く所存です。なお、メルカリではエンジニアを募集中です。新しい技術を使って世界と勝負したい方、連絡待ってます!