Google IO 2018に行ってきました

まとめ

AIとJetpackとConstraintLayout

前提条件

会場で起こったことをつらつらと書いていきます。技術的な話は一切ありません。苦手な人は戻るボタンで戻って下さい。

前日

SFにはGoogle IO前日に到着しました。 飛行機内がガラガラだったため、平らな場所で足を伸ばしてのんびり出来ました。

f:id:shiraji:20180507163758j:plain:w300

1時間ほど寝れたのが良かったのか時差ボケはなかったです。筋肉のおかげかもしれません。筋トレしてないですけど。

着いてすぐにSFで仕事があり、SFO->SFにBARTで行きました。 先方と会議をしてから、CaltrainでSF->Mountain Viewへ移動。 このまま会場でBadge Pickupしたかったのですが、スーツケースが飛行機で壊れされちゃったので、

f:id:shiraji:20180509232348j:plain:w300

一旦AirBnBの宿泊先に行きました。プール付きでした。

f:id:shiraji:20180509232225j:plain:w300

一日目(Keynote)

セッションの予約はこのセッションだけは聞かないと帰れない!というKotlinの2セッションだけ前日までにしていて、あとはKeynoteを確認してから予約しようと考えていました。 前から聞いていたけど、KeynoteはAI一色。何をするにもAIが入っていた気がします。他にはJetpack周りが大きいかな?という印象でした。 自分の現在のタスクがAndroid開発から離れ、R&D的な仕事をしているため、知識を広げることに重きを置き、聞くセッションを決めました。 それと一回はコミュニティのMeetupに行きたかったので、二日目のOSS Community Meetupに行くこととしました。

一日目(セッション)

と、Keynoteでは考えておきながら、いくつか会場を間違えて入ってしまったので、結果的にAndroid中心に聞きました。

The future of apps on Android and Google Play: modular, instant, and dynamic

印象的だったのが、間違って入ったセッションの一つのThe future of apps on Android and Google Playで Dynamic Featureです。ざっくり概要としてはDynamic Featureの話の前提としてアプリサイズは小さく抑えたいよね。 ほぼ使わない機能は使う人にだけ渡せば良いよね?という流れから出来たであろう機能です。 実際、アプリを開発していて、この機能90%以上のユーザ使わないな。って機能結構あるので、非常に良いなーという印象でした。 code pushみたいな名前なので、戸惑う可能性があると思いますが、apkをGoogle Play内で分割しているという印象なので、Dynamic featureだけを更新するとかは出来ないようです。

Modern Android development: Android Jetpack, Kotlin, and more

他のセッション聴いていてもそうなんですが、今後Android開発ではJetpackが台風の目になるのは確実だなという印象を受けました。 ただ若干勇み足な感じもしていますが。。。詳しいことはすごい人に任せます。

一日目(セッション後)

アメリカで働いている同僚と落ち合いました。そこにいた色んな人とお話が出来ました。 そこまでほぼ一人で行動していたので、楽しかったです。日本の初めてお会いする方ともお話が出来ました。 マジックショーがあったので、それを見て、AirBnBの方へ戻りました。

そこから日本のチームと仕事してたのですが、なぜか3時までやってました。

http://livedoor.blogimg.jp/jigokuno_misawa/imgs/4/0/403d15ec.gif

惚れさせ155 「実質」

二日目(セッション前)

朝8時前にAirBnBを出たのですが、Lyftの車が全然来なかったです。値段が跳ね上がってました。初めてシェアして乗りました。 道路も混んでおり、降りた時点で8:30過ぎてました。 一緒に乗車していたロシアの方と降りた後話が盛り上がり、入り口でものすごい並んだので、二人でデバイスピックアップにいきました。 Android Thingsはパズルやらないとあげないーとかわいく拒否されたので、前日終わらせていた彼にヒントもらいパズル解くことにしました。 会場入り出来たのが結局9時前だったので、朝ごはん食べつつ、掲示されているブースを色々回りました。

二日目(セッション)

  • What's new in Android Things
  • [Meetup] Open Source community
  • Build real consumer devices with Android Things
  • TensorFlow for JavaScript
  • Web Components and the Polymer Project: Polymer 3.0 and beyond
  • Android Jetpack: what’s new in Android Support Library
  • ML Kit: Machine Learning SDK for mobile developers
  • Integrating your content with the Google Assistant using AMP and markup
  • The power of Headless Chrome and browser automation
  • Machine learning models + IoT data = a smarter world

この日はトピックがうまくバラけました。

Open Source Community

初日に参加を決めたOpen Source CommunityではGooglerのOSSの人たちと話せるということで、GoogleOSSにも関わりたいなーと思っていたので、ぜひにと気合入れていきました。 そしたら、すんごいふんわりいつの間にか始まっていて、勝手に話して良いよ?と言われ、うまく輪の中に入れなかったので、一緒に輪に入れなかった人たち+後から来た人たちと話しまくってました。 結局40分ほどずっと同じ人達と話してGooglerと話さなかったwでも普段かかわらないnode.jsのコントリビューターやUS政府のプロジェクトに関わっている人たちと話せたのは良い機会でした。OSSをやりたいけど、やったことがないという人たちにアドバイスとかもしてました。 プロジェクトへの参画動機や最初のコミットどこから?などみんな同じような考えをしていたのが印象に残りました。

TensorFlow for JavaScript

特に印象に残ったセッションの一つのTensorflow for JavaScript。お昼ご飯食べつつ、片耳で聞いているかーと思い芝生から聞いていたのですが、途中から楽しくなっちゃって食べずに話ばっかり聞いてました。 tensorflowの結果をブラウザで見える化したらすごい良いレスポンスだったので、JSでtensorflow出来るようにしてみたらしいです。 ブラウザで出来るというのはすごく敷居が下がって良い。さらに過去サーバでpythonなどで生成したモデルもそこで再利用出来るのも既存の資源が無駄にならないのも良い。 高校生や大学生が利用しているとか。AIを高校生の時点で学べるなんてなんて贅沢なんだ。。。 さらにこの日サーバサイドでnode.jsが使えるようになったという発表されました。python一色だったtensorflowにJSの流れが来ているので、今後注目だなーという感じでした。

Web Components and the Polymer Project: Polymer 3.0 and beyond

Polymerの発表もすごかったです。Polymer界では有名な二人が登壇するとあって、登場しただけで拍手出てました。ニワカなので、すごさがわからなかった。 内容はもう怒涛な感じでした。前日の睡眠不足から、このあたりで眠気くるよなって思ったんですが、寝てる暇ないくらいどんどん新しい情報をinput出来ました。 Polymer3.0が使えるようになったことと今議論進んでいる内容も含めて色々話が聴けました。このセッションのメモ「情報ありすぎてウケる」で終わってました。 動画確認してみてください。本当に怒涛です。

Android Jetpack: what’s new in Android Support Library

昨日からちょくちょくJetpackのFragmentという言葉が出ていたので、あーヤバそうだなーって思い、これを聴いて、パッケージが変わるのが確定したので、issueあげておきました。 https://github.com/permissions-dispatcher/PermissionsDispatcher/issues/472

書いた後にFragmentだけじゃなくActivityもじゃね?別のsupport libのクラスもじゃね?って思ったんですが、後で考えることにします。

二日目(セッション後)

前日に続き、仕事がふってきていたので、コンサートも参加せず、AirBnBで仕事していました。自分頑張りすぎだと思う。

賞賛して下さい。

f:id:shiraji:20180509205058j:plain:w300

三日目(セッション前)

朝は結構空いていました。3日目ともなるとみんな体力なくなるのかな?

まず朝初っ端からPermissionsDispatcherの対応に関してOffice Hourに向かいました。 ただ、残念ながら、support libraryの人たちではわからないと言われ、Sandboxへ行くように言われ、 行ってみたら、わかる人がまだ来てないとのことでした。 もうこの時点で結構時間を取られていたので、セッション終わった後にまた来ると伝え、場所を離れました。 たらい回しになったのですが、みんな良い感じで接してくれたので、特に嫌な思いをしなかったのが良かったです。

最終的にこのコメントになりました。

https://github.com/permissions-dispatcher/PermissionsDispatcher/issues/472#issuecomment-388219243

三日目(セッション)

How to Kotlin - from the Lead Kotlin Language Designer

Kotlinの神が初心者向けのKotlinの説明をしてくれました。 どんどんコードが短くなっていくなーって眺めていたら、coroutineの説明が出てきて

あー最早coroutineは初心者向けの常識なのかと驚きました。

Android Jetpack: sweetening Kotlin development with Android KTX

Jakeさんのセッション。 ktxの説明よりKotlinのライブラリを作るにはどうしたら良いか?という説明の方を目的に聴きました。 ktxの方の説明、力抜いていたのですが、ライブラリの話になって、急に@ExtensionFunctionJavaコードにつけたら、Kotlinが勝手にExtension Functionと認識して呼べるようになる だからこれをつけよう!って話していて、このアノテーションを出された時点で混乱して、ググっても情報なんら出てこないし、 どういうことだ?って思ったら、この発表の1時間前にKEEPにJakeさんが上げた内容の説明だったようです。

github.com

あまりに驚いて。

What's new with ConstraintLayout and Android Studio design tools

すごい。やばい。

セッションを見てないAndroiderは最初のほうは流していいから、早めに観たほうが良いです。 三日間のセッションで一番拍手が凄かった。

三日目(セッション以外)

三日目で人も少なかったし、アグレッシブに動き周りました。

  • Android Assistant
  • Android Auto
  • Design & Accessibility
  • Codelab
  • 友達が出来た+会えた

Android Auto

Android Autoは前から楽しみにしています。 一緒に並んでいた4人と車の中で説明をしてもらいました。 車のエアコンのコントロールを声で出来たり、Google Assitantを利用して、メッセージのやり取りなどそ実践してもらいました。 大きなサイズのものなのか、タブレットサイズで、画面が非常に見やすかったです。

f:id:shiraji:20180510145040j:plain:w300f:id:shiraji:20180510145110j:plain:w300f:id:shiraji:20180510145306j:plain:w300

NY Timesなどがサポートしているようで、音でコンテンツを提供できるアプリなどは最高だなーという感じでした。

Codelab

Codelabは多くの問題があり、Googlerに聴きつつコードを書ける場所だったのですが、ChromeOS with Linuxが気になってしまい、 マシンスペック見たり、コマンド触ってみたり、全くCodelabとは関係ないことをしていました。

帰国便待っている時に@ymndさんから聴いたのですが、実機確認が直接出来ないとのことだったので、開発機としてはやっぱり厳しいのかなー?と思いつつ、curlsshなども出来たし、サーバサイドの開発などには可能性あるかもなーとぼんやり考えてます。

友達が出来た+会えた

OSSのCommunity Meetupだけではなく、偶然話しかけてくれた人と仲良くなったり出来ました。

また、普段会えない人たちともお会い出来ました。道ですれ違って挨拶だけしかしなかった人が何人かいて、時間が足りませんでした。。。突然だと「あ、あ、」ってなってしまう。。。

その中でも特に印象が残っているのが、以前Kotlin Night Koltakaでリモートで挨拶させてもらった@ravidsrkさんと偶然隣の席になり、お話出来たことです。

彼はKontributeの動画を観てKontributeし始めてくれた一人で、さらに自分の公開しているプラグインもガッツリ使ってくれているようでした。 会社の環境構築フローに自分のプラグインを数個入れてくれていて、Find Pull Requestなんてあるよ?と説明したら、めっちゃ喜んでくれました。 最近これ動かないけど、どうしたの?とか、この機能公式に取り込まれたね!とか作った本人よりプラグインのこと知っててくれて本当に嬉しかったです。

最後に

Android周りはスゴイ人たちがわかりやすく説明してくれるはずなので、新しい出会いを求めることに努めて非常に良かったなーという印象です。 このIOでAndroid関係ないTODOの優先度最高なものがいくつか出来たので、何かしら形にしたいなーと思っています。