【勉強会メモ】I/O Extended 2019 Osaka by GDG Kyoto
- 日時:2019/05/18(土) 13:30 〜 18:00
- 場所:近畿大学
毎年恒例のGoogle I/O開催後のコミュニティによる報告会です。
Google I/O自体と、各コミュニティ活動の紹介、会場の様子などの紹介もありましたがこのブログは技術メモをアウトプットすることが目的ですので割愛させてください。
ステッカーとスプーンを頂きました。
Assistantや検索関連のトピックについて
田中洋一郎さん
For Assistant Users...
Google Assistant
- 35 months
- 8⇒30 languages
- 14⇒80countries
- 今までは話しかけると音が全部サーバに送られていた
- 音声認識のデータが100GB必要だった
- ⇒0.5GBになった
- ⇒スマホ端末のアプリに入るようになった
- ユーザーが今まで行ったことを加味して応答
- アラームを止めるときに「OK Google」不要
カーナビ
Google Home Hub
- ⇒Nest Hubに名前変わった(理由は不明)
Duplex on the web
- Web操作をAssistantに言葉で指示して操作できる
- RPAっぽい動作を言葉で指示
- SEO⇒Duplexも考慮が必要
- Search ConsoleでDulplexが来ても良いかという設定ができるようになる
Nest Hub Max
- カメラつき
- カメラに対してジェスチャで操作
- 日本で発売
For action developers....
- Content Owner:Markup, Template, Mini-apps
- Android app dev:App Actions
- Hardware: Smart Home
- Innovator: Conversation Actions, Interactive Canvas
FAQ content
- Google検索結果のWebやHubの表示にHowToを埋める
動画の場合
- Google Spreadsheetに埋める
Mini-apps
- キーノートでは言われていないが個別のセッションで発表
- 検索結果にWebページを組み込める
- JSなどインタラクティブな動作も可能
- 検索結果の画面に翻訳結果が埋め込まれているがそれと同じようなことができる
- アーリーアダプタープログラム
App Actions
- Assisnantにジョギングするというとジョギング用のアプリが起動
- action.xmlに設定して呼び出されたときのアプリを指定
Smart Home
- 家電などの連携強化⇒デバイスの種類が増えた
https://developers.google.com/actions/smarthome/reference/rpc/?hl=ja
Interactive Canvas
- スマートホームの画面を使ったアプリが作れる
- まずはゲーム
- ゲーム以外はリジェクトされる
TPU Pods、AutoML、TensorFlowの新機能、機械学習における公平性について
ほとんど Cloud Nextで発表済み
Cloud TPU Pods
- TPU
- Google製のMLに特化したチップ
- v2とv3
- bfloat16という型を使う
- float32よりも表現できる幅が少ない
- 通常のfloat16だとオーバーフローになる
- 指数部をfloat32にそろえて端数部をへらす
- https://cloud.google.com/tpu/docs/bfloat16?hl=ja
- IOが発生しない
- 時間あたりのコストは高いが処理が早く完了するのでその分安くなる
TPU Pods
- Public Betaになった
- TPUクラスタ
- RestNet-50の訓練を7.9分で完了
- コストも38%安く済む
AutoML
- データを用意すれば誰でも簡単にMLを扱える
- NAS
- AutoML Tables
- テーブルの内容を使ってあるカラムの値を予測する
- 評価が見れる
- 予測実行時間もわかる
Cutting Edge of TensorFlow
MLの公平性
Google AI Principles
プロダクトデザインは全ての人のニーズに合わせて決められるわけではない
- データの公平性
- メトリクスをどう切るか
- モデルのつくり方
事例
- 多様性のあるデータを集める
- 苦手な部分のサンプルを集める
- データのグループ間でデータが違わないように誤差を設計
- 表示のデザインで解決させる(アミーゴとアミーガなど男女両方を提示する)
- Data Cards / Model Cards
- Fairness Indicator
- 精度と一緒に差別性が表示される
Android+ML
Android関係の発表
Android Platform
- Storage
- Security
- Dark theme
- Bubbles
- UI Tools
- Debug Tools
- Camera X
- Jetpack Compose
Google 開発者サービス
- In-app Update
- アプリ内で細かいアップデートのチェックをしなくても良い
- Internal App Sharing
- 社内向けアプリの配布
Women Technmakers in I/O 2019
Rie Kanetakaさん
Tech界の女性交流のための Women Techmakersプログラムの催しも行われた
Flutterについてちょっとしたこと
96と97で紹介
- Flutter 1.5
- モバイルからマルチプラットフォームのフレームワークへ
- Dart2.3
- UI-as-a-code
- コードとしてのUIを実現する言語へ
- Announcing Dart 2.3: Optimized for building user interfaces
- Flutter for Web
- dart:uiライブラリをDOMとCanvasをターゲットとするように再実装
- Flutter for web - Flutter
- Flutter Dark Theme対応
Developer Quest
Dart:Non Nullable Type
- int? にするとNon Nullable Typeになる
Android Q対応
furusinさん
www.slideshare.net
- Gesturel Navigation
- Dark Theme
- SYSTEM_ALERT_WINDOW deprecated
- android.perference deprecated
- など
Gesturel Navigationについて
画面遷移などのジェスチャー Navigation Bar
なぜ生まれたか?
Navigation Barはめーかーによってデザインが異なるためアプリ開発は難しくなってきている そのためベースを統一したかった
Gestureは2種類
- 画面左右からスワイプで戻る
- 画面下部からスワイプでアプリ切り替え
- 必須
- 指を離したらonPause⇒onStopが呼ばれる
将来的には2種類のVav Mode
- 3-button
- Full Nav
UIをedge-to-edgeにする
- Status Barの後ろにも描画推奨
- Navigation Barの後ろも描画(強く推奨)
古いOSバージョンはNavigation Barを半透明に
- ScrollViewとかは一番したにNavigationBarの分の余白を追加
- 3Button Navigation barの場合はボタンの位置を上に
Gestureと競合するものをいい感じにする
- 画面の端にドラックできるもの
- View.setSystemGestureExclusionRectsを奪う
- OnLayoutまたはonDrawで呼ぶ
Dark Theme
- アプリをより暗い環境でも使いやすくするため
- バッテリーを守る
- 目の保養
2種類の対応方法
- Force Dark
- Dark Modeのときに自動的にダークモードを適用する
- Custom Dark
- ダークモードのときに何色にするかを指定
*-night
リソースを作ることができる
ほか
- 画像もダークテーマ対応が必要
- アプリではテーマを選べるようにすべき
補足
- アプリ起動時にDark ThemeのON/OFFを切り替えるとアプリが再起動される
ライフサイクルの考慮が必要
Gestural Navigation
- アプリは画面全体に表示
- 左右はあける
- DrawerLayoutはAndroidXでいい感じにしてくれる
- どうしても左右にものを起きたい場合はsetSystemGesture~を使う
- Dark Theme
- Force Darkで意外となんとかなる
- アプリでテーマを選べるようにすべき
- 画像もダークテーマ対応がいつよう
- 対応しないという選択肢は無い