こんにちは。
デバイスソリューションユニット開発グループの崔です。
弊社でLIFULL HOME’SのAndroidアプリの開発を担当しています。
ついにGoogle I/O 2018の最終日ですね。
今日はいくつかのセッションの内容とせっかくなのでGoogle I/O全体の様子などをご紹介しようと思います。
まずは出発から!
(前回の記事はこちらから)
朝から災難だった・・・
ホテルを出てからWiFiの通信が悪く、なかなかUberを捕まえることができませんでした。ここで既に昨日より10分ほど遅れてしまいました。
なんとか駅まではたどり着きましたが、今日はなぜかシャトルバスもすぐに出発せず…。
現在時刻朝の7時40分。この時点で焦ってきました。
ようやく8時に会場に到着すると、あら、人がいない!
やはり最終日だからでしょうか。
結構空いています。
昨日までの朝食は争奪戦でしたが、今日は余裕ですね。
結局時間的に昨日と変わりはありませんでした。
セッションについて
今回は以下3つのセッションに参加しました。 各セッションのポイントについて話をしていきます。
- Android Jetpack: manage UI navigation with Navigation Controller
- TensorFlow Lite for mobile developers
- Add Firebase to your cross-platform React Native or Flutter app
Android Jetpack: manage UI navigation with Navigation Controller
Navigation
ビジュアルツール / XMLによるナビゲーショングラフの定義
- 利用可能なナビゲーションアクション
- 引数
- アニメーション
- Up動作
- Deep links
単一のnavigate()を呼び出してランタイムライブラリーが自動的に処理してくれます。
... もうFragmentTransactionは入りません!!
Navigation Editor
- 矢印で画面遷移が簡単にできるようになる
- xmlで紐づけ、画面遷移が簡単にできる
ActivityやFragment両方使えます。 凄いところは設定も画面上で見えるようになっています。 あとは、xmlとコードを書くだけです。
Deep Linking
Deep Linkには以下のように2つの種類が存在します。
■Explicit Deep Links
- Notifications
- App Shortcuts
- App Widgets
- Actions Actions
- Slices
Explicit Deep LinksはNavDeepLinkBuilderを使用してIDによるナビゲーショングラフの特定の目的地へのディープリンクします。
■Implicit Deep Links
- Web URLs
- Custom Scheme URIs
Implicit Deep Linksはナビゲーショングラフで「deepLink」を使用します。 1つまたは複数のURIを関連付けます。
<deepLink app:url=“http://www.google.com/.*” /> <deepLink app:url=“http://www.iana.org/domains/{myarg}” /> <deepLink app:url=“http://www.example.com/.*/{id}” android:autoVerify=“true” /> <deepLink app:url=“android-app://androidx.example/detail/{id}” />
Navigationは上記の二つを簡単に処理してくれますので、使いやすくなったと思います。
最後に「navigation.1.0.0-alpha01」は今すぐ利用可能とのことです。
TensorFlow Lite for mobile developers
Tensorflow Liteとはモバイルデバイスや組み込みデバイス用のライブラリーとツールを学習する軽量フレームワークのことです。
利用可能なプラットフォーム
- Android、iOS、Linuxで利用可能
ML Kit
- TensorFlow Liteをサポートする
サポートモデル
- MoblieNet、InceptionV3、ResNet50、SqueezeNet、DenseNet、InceptionV4、SmartReplyなど
- MobileNetの量子化バージョン
TensorFlow Liteの使い方
- モデルを入手
- 変換
- 操作(ops)を作成(必要なら)
- アプリを作成(クライアントAPIを使用)
コンバージョン戦略
- フリーズしたグラフや保存されたModelを使用し、サポートされていない演算子を避ける
- 不足している機能のカスタム演算子を作成する
TensorFlow Liteロードマップ
- その他の操作
- 改善されたツール、ドキュメント、より使いやすく
- On-deviceトレーニング
いつTensorFlow Liteを使うのか
- TensorFlow Liteはデバイス上でMLモデルを実行するための標準ソリューションになる
- 現在TensorFlow LiteはTensorFlowオペレーションのサブセットをサポートしている
最近TensorFlow Liteにはちょうど興味があるので、Androidの方でいじってみようと思っています。
色々サポートされるようになって今後楽しみですね!
Add Firebase to your cross-platform React Native or Flutter app
今回のセッションはFlutterにどうやってFirebaseを追加するかと、なぜFlutterにFirebaseを追加したかの理由に関するセッションです。
FlutterにFirebaseを導入した理由
45.6%のクレームが発生
- アプリが強制終了
- 機能エラー
- ネットワーク問題
- リソースが重い
- 応答しないアプリ
これらを改善するために
ユーザーの行動を分析する
FirebaseのGoogle Analytics機能を利用
待ち時間を測定する
FirebaseのPerformance機能を利用
クラッシュをキャッチする
FirebaseのCrashlytics機能を利用
この3つのFirebaseの機能を利用し、問題を解決したようです。
実験
Cloud Messaging
Firebase Cloud Messasingを追加するとアプリに対して通知が動作します。
iOS及びAndroidでFlutterの設定が完了すると全てのユーザーに通知を送ることができます。
Remote Config
Remote Configを使うとユーザー体験をカスタマイズできます。
なお、アプリを新しくダウンロードしなくてもユーザーのアプリの動作やUIの変更が可能になります。
応用
- Remote ConfigのA/Bテストが可能
- Cloud MessagingのA/Bテストが可能
FlutterにFirebaseを導入した理由と同じように弊社のLIFULL HOME’SのAndroidアプリには既に上記に紹介されたFirebaseの機能を導入して日々改善など行なっています!
会場全体の様子
会場の雰囲気
会場は常に、熱く盛り上がっています!
会場の野外スペースではサングラスや日焼け止めが必須ですが、参加者はバッジを受け取る際に無料で配布されます。
もちろん前回もお話ししましたが、日陰に入ると冬か!ってくらい寒くなりますので上着も常に持っていた方がいいと思います。
But first, water
日向に出ると日差しが強いので、いつでも水分補給ができるようにお水があちこちに置いてあります。
さらに移動式のウォータークーラーをよく見かけます。この暑さの中、人が直接運搬してくれるのはとても有難かったですね。
ランチ
ランチはこういう感じ!のランチBoxがもらえます。
正確ではありませんが、11時から14時の間にランチBoxを配っていた気がします。
三日間ずっとこのようなランチが無料で提供されます。
メイン一つとリンゴ、スナックがいつも用意されています。
飲み物は基本コーラやスプライトですね。
Shoreline Amphitheatre
Shoreline AmphitheatreというのはGoogle本社近くの野外イベント会場です。
GoogleのCEO、Sundar Pichai氏がKeynoteに登場する場所です。
この写真は今日のランチを食べるスペースを探している時に撮りました。
ちなみに昨日のコンサートもここで行われました。
セッション
セッションとは、Google社員による最新技術の発表会です。
セッションの内容はAndroid・AI・Web・Cloudなどの最新技術のTIPSや、使い方などが披露されます。
もちろんセッションの内容は全てYoutubeに公開されます。
なお、参加者が多いため興味あるセッションは事前にWebやGoogle I/Oアプリ(Android、iOS)を利用して予約しておきましょう
。
予約者優先で会場内に入らせてくれます。
Googlerとの意思疎通
Google I/Oの参加メリットとしてはOffice HoursやSandBox、Codelabsで直接Googlerと話せることだと思います。
もちろん英語で会話しますが、私は英語が全然できません!!
(猛勉強中です(汗))
でもちょっとしたカタコトの英語や身振り手振り、キーボードタイピングなどでも丁寧に理解するまで対応してくれるのです!!
SandBox
SandBoxはドーム形のテントで、ジャンルやサービスごとに分かれています。
この中でジャンルごとにGooglerと直接コミュニケーションができるOffice Hoursが用意されています。
Codelabs
CodelabsはGoogle I/Oで発表される最新技術を学べ、かつ体験もできる場所です。
Codelabsは一般公開もされているのですが、ここでのメリットとしては開発環境と端末が全て最新であることと、分からないことはすぐにGooglerに質問ができます。
外観は以下のような感じです。
もしノートパソコンを忘れてしまったりしても、デスクトップが用意されているので、ご安心ください。
ちなみに私はノートパソコンの充電器を忘れてしまいましたがお陰様で問題なく体験できました!
ドロイド君
会場の中を移動していると様々なドロイド君のオブジェが設置されているので、探しに行くのも一つの楽しみかもしれません。
これで全部でしょうか。
一応発見したドロイド君は全部撮ってみました。
Snacks
どこを歩いていてもスナックブースが設置されていて、これも全て無料で提供されています。
WAYMOとAndroid Auto
地球を200回以上回ったという無人自動車WAYMOとAndroid Auto搭載車が展示されています。
車は動きませんが、Android Auto搭載車は運転席に乗ってAndroid Autoを試すことができます。
Community Lounge
コミュニティーラウンジでは先日アジア地域のMeet Upがあって各国のアジア人と交流ができたり、全体集合写真も撮りました。
ラウンジにはビリヤードとピンポン、テーブル・フットボールが用意されています。
MEDICAL
時差ボケであまり眠れなかったり、暑寒かったせいか今日体調を崩してしまったので、ちょうど寄ってみました。
細かく診断された後、CETAFENという薬を処方してもらいました。
調べてみると鎮痛剤ですね。
弊社のサポート
Google I/Oの参加費負担
弊社ではGoogle I/Oに参加するためにホテル、飛行機代、交通費、チケット代など殆どの費用を負担してくれます。
もちろん最新技術の配信や共有、Google I/Oで取得した技術を業務でどう生かすかというのもありますが、業務だけではなく個人のスキルアップのほかにAndroidエンジニアなら誰もが行きたい!誰よりも早く最先端技術に触れてみたいと思うはずです。
(自分だけでしたらすみません(笑))
Google I/0 2018終了
感想
本日でGoogle I/O 2018が終了しました。
Googleが開催する最大規模の技術イベントだけあって、終始刺激を与えてもらえる雰囲気でした。
参加者のために食べ物や音楽、パーティーやコンサートなど様々な娯楽も提供されました。
始めは緊張していましたが、リラックスできるこの雰囲気のお陰で非常に楽しめました。
今回、多くのセッションとSandBox、Office Hour、Codelabsで新しい技術を最先端で触れたり、Googleと世界各地から集まったITディベロッパー達に直接出会えたりとAndroidエンジニアとしてとても有意義な時間を過ごせたのが一番大きな収穫でした。
社外向け報告会の告知
2017年5月23日(水)に弊社 株式会社LIFULL 半蔵門オフィスにてGoogle I/Oの報告会を行いますので、是非足を運んでみてください!
以下connpassのページよりお申し込みください。
LIFULL.apk #2 - Re: Google I/O 2018
LT枠も大募集中です。
しかも今回は何と!特別ゲストスピーカーとしてGoogleの【Le Viet Gia Khanh氏】をお招きし、Firebaseアップデートについてお話頂きます!!
皆様のご参加を心よりお持ちしております!
終わりに
Google I/O 2018に参加するチャンスをくれた弊社には感謝しています。
発表された技術を生かして弊社のサービスにどう導入して行くか今後楽しみです。
ではでは、Google I/Oの参加記は以上となります。
拙い日本語でしたが、最後まで読んでくださった皆様、ありがとうございました!!