Tech Blog

グローバルな家族アプリFammを運営するTimers inc (タイマーズ) の公式Tech Blogです。弊社のエンジニアリングを支える記事を随時公開。エンジニア絶賛採用中!→ https://timers-inc.com/engineering

時間がない人のためのGoogle I/O 2021レポート #android #firebase #google #io21jp #io21

f:id:tsutoutakehara:20210521101151j:plain

こんにちは。AndroidエンジニアのTsutouです。緊急事態でマイブームのサウナに毎日入れずしんどい思いをしています。

Google I/O 2021が開催されました!

events.google.com

もちろん今回はこんなご時世なので、無料参加・全てリモートです。

非同期でのインプットが多かったですが、リモートカンファレンスは自分のペースで1つ1つを追っていけるのでこれもまたいいですね。

ガッツリ参加してきたので、忙しい人向けにレポートしたいと思います!

Google Keynote・Developer keynote

www.youtube.com

www.youtube.com

メインの基調講演です。忙しい人は16分ほどの短縮版なども出ているのでそちらでインプットが良いかと思います!

Material Youはじめ、乳がんや皮膚がんの発見、スターウォーズさながらの会議Project Starlineだったり驚きの連続でした。この辺は巷のニュースなどでも話題なので割愛しようと思います。

過去を消せるPhotos、星になるAI、ドープな新色、ホログラム会議。Google I/O 2021発表まとめ #GoogleIO | ギズモード・ジャパン

Google I/O 2021 Keynote: Android 12注目の新機能まとめ | TechBooster

What's new in Android | Keynote

www.youtube.com

主にAndroid 12 Betaの発表とその最新情報についてです。

特徴は新デザインMaterial Youによる、ユーザーインターフェースの大規模変更で、その他にもプライバシーやセキュリティ面を更に強化したとのことです。

  • @Deprecateアノテーションが非推奨
  • ⭕️ @Deprecateアノテーションがドキュメント生成のバグで非推奨になっちゃってたけど、非推奨ではないということのようです。

    • 初見で真逆に解釈してしまいました 😓 ムズイ
  • UI

  • Launch Animations

    • OS標準スプラッシュの追加(少し前に話題になりました)
    • 起動アニメーションのカスタマイズは可能
    • 現在使っているものは引き続き使用可能
  • Notification

    • 簡潔さを求め、全てのテンプレートを再設計
    • 出来合いのテンプレートを使う形になり、フルカスタムのRemoteViewは非推奨に
    • 通知からアプリを起動したときの、処理待ちの数秒blankな画面が表示されてしまうトランポリンを制御するため、ActivityをContentsIntentからしか起動できなくなる
  • Toast

    • 文字数/同時出現制限がなされる
  • Other

    • Picture in Pictureの改善
      • アニメーションを待たずにコントロールできるように
      • 動画以外のコンテンツでもサイズ変更可能に
    • Render Effect APIでコンテンツにぼかしなどのエフェクト効果を入れられる
    • SparkeなRipple/オーバースクロール時のEdgeエフェクト
    • AVIF(AV1ビデオコーデックの単一フレームバージョン)画像形式のサポート
    • 動画の自動トランスコード
      • xmlで定義するだけでOK
    • Privacy 👉 What’s new in Android privacy | Session

Top 12 tips to get ready for Android 12 | Session

www.youtube.com

Android12対応へのTips, 注意事項です。これから対応控えてる身としては、かなり有益でした。

  • App Compatibility Changes
    • 開発者メニューからOSの変更ごとにON/OFFしてテストできる
  • フォアグラウンドサービスのバックグラウンド起動制限
    • Expedited Jobs with WorkManager APIsで代替できる
  • マイクカメラアクセスのユーザー切り替え
    • 権限をベストプラクティスで設定できていれば問題ないが確認が必要
  • アプリの休止状態
    • 権限の取り消し・キャッシュの消去によってストレージの開放・ジョブとプッシュメッセージの停止
    • アプリが長らく未使用だとOSに休止状態にされるので通知なども届かなくなるので注意
  • Bluetoothの使用許可
    • 使用するアプリは対応が必要
  • MACアドレスへの制限強化
    • getHardWareAddressがnullで返却されるようになる
  • IntentFilterのあるコンポーネントにはexported属性を明示的に宣言しなければならない
  • フルカスタム通知を利用しているアプリは標準レイアウトに変更されるので、挙動を確認した方が良い
  • アプリリンクが検証されるので、チェックした方が良い
  • WebViewのセキュリティ向上で動作変更があったのでテスト推奨
  • オーバースクロールにストレッチ動作が加わるので動作検証推奨

What’s new in Android development tools | Session

www.youtube.com

  • Live Database Inspector
  • TensorFlow ModelをProjectに直接インポートできるように
  • ネイティブC++メモリプロファイラ
  • new Gradle Plugin API
  • Android Studioのバージョン管理を年に基づいたバージョニングに(コードネーム: Arctic Fox)
  • ライブリテラル
    • Previewのホットリロード的な
  • モーションエディターのアップデート
  • Layout Validation
    • 各端末の画面や画面回転でどうなるかを表示してくれる
    • Wear OS/Android TVもIDEエミュレータのサポートをUpdate
  • Arctic Fox
    • Test Retension
      • テストでコケた場所をキャプチャ
    • Work Manager Inspector
    • Refactor -> Migrate Taransitive R class

What’s new in Jetpack

www.youtube.com

Jetpackシリーズが成熟してきて、それらをJetpack Composeに統合していく流れを感じます。

f:id:tsutoutakehara:20210521024141p:plain

既存のもののアップデートも多かったのでここでは割愛。 ↓個人的に気になったもの

What's new in Jetpack Compose | Session

www.youtube.com

Jetapack Composeの基本、今までのおさらいという感じ? 今年はとにかくこれが激推しでした。早くstableになるといいですね。

  • 宣言型UIツールキット
  • StateをUIに組み込む
  • 記述量や可読性だけでなく、Testが容易に
  • 既存のUIと共存可能

State of Kotlin on Android | Session

www.youtube.com

  • Kotlinを採用したアプリを使ったユーザーは、10パーセントクラッシュが減った
  • gradleファイルをkotlinで書けるように
  • KSP(Kotlin Symbol Processing)
    • KAPTに比べて2倍高速
  • KTXの成長・広がり
  • StateFlow/SharedFlow StateFlow と SharedFlow  |  Android デベロッパー  |  Android Developers
    • DataBindingサポート、DataBinding目的でLiveDataを利用していた人は完全に移行できる
    • LiveDataは変わらず使える
  • CouroutinesDebugger
  • Android Extensionの廃止/ViewBIndingの推奨
    • Percelizeはパッケージが変わるのみ

Refreshing widgets | Session

www.youtube.com

ウィジェットが刷新されるよう。 iOSからも出て話題になったので、再燃するかもしれないですね。

  • ウィジェットとはアプリの機能を捕捉するもの
  • ウィジェット設置アプリはエンゲージメントが飛躍的に向上する
  • コントロールのUI/デザイン/APIの更新がなされた
  • Useful/Discoverable/Beautifulの三本柱
  • アシスタント連携
  • Jetpack Composeもサポート

Effective background tasks on Android | Session

www.youtube.com

  • ForegroundService
    • backgroundから開始したらダメ(ユースケースが適切でないので、制限される)
    • 代替えはExpedited Job
  • UIから起動するもの -> ナビや音楽はForegroundServiceが適切
  • 他はWorkManager推奨
    • すぐ終わるやつは優先ジョブ
    • それ以外は定期ジョブ
  • PushNotification
    • FCMが推奨

What's new in Android Media | Session

www.youtube.com

  • Video Quality
    • 通常撮影や編集 -> アプリ -> デバイス -> バックエンドの間でエンコードやデコードを繰り返し行うので、品質が低下してしまう。
    • キャプチャとアップロードの両方で高めのビットレートを使ってエンコードする
    • AVIF - JPEGの1/3のサイズで同等の品質
    • 動画はHEVCがおすすめ
  • Performance Class
    • OSレベルに基づき、デバイスのパフォーマンスをコードで区分けできる
  • ExoPlayer
    • PalyList APIs
    • StyledPlayerView
    • StyledPlayerControlView
    • Transformer API
  • Real-time Audio

What's new in Android Machine Learning | Session

www.youtube.com

TensorFlow Lite for Androidはすごく気になりました 👀

  • OnDevide ML
    • オンデバイスでMLを実行できることは価値が高まり続けている
      • Meetの背景などもオンデバイス実行されている
  • TensorFlow Lite for Android
    • PlayStoreに接続されたデバイス全てにプリインされる
    • アプリにバンドルする必要がないのでアプリサイズを増やさずにMLを実行できる
  • パフォーマンスの最適化
  • Android Neural Network APIについて

What’s new in Android privacy | Session

www.youtube.com

  • 安全なエコシステムの構築がミッション

  • Tarnsparency

    • アプリが何をやっているのかの透明性の向上
    • マイクとカメラの予期しないアクセスはユーザーがコントロールでき、許諾を得ないと破棄される
  • Control
    • データ使用量からアプリのデータアクセス履歴が追えるように
    • クリップボードからの読み取り通知
    • 場所/マイク/カメラのアクセス許可に今回のみを追加
    • ゲストモードの改善
  • DataMinimization
    • 昨年リリースの権限の自動削除に基づき、長く使われてないアプリを強制的に終了させる
    • MANAGE_EXTERNAL_STORAGE permissionは消さないといけない、BANされる(例外はあり)
    • QUERY_ALL_PACKAGES permission は、使用要件を満たしていない限りBANされる
  • Private Computing Core
    • 機密データの操作が可能になり、ユーザーが機密情報の取り扱いを知ることができる
    • OSのプライベート領域に独立した機密性の高い情報を処理するAPIを提供

おまけ

リモートでもお祭り気分を少し味わえるのはなんだか素敵な世界ですね 😌

バーチャルでI/O会場を回れるシステムがあったり (釣りとかゲームもできました)

www.youtube.com

Firebaseの公式ソング?がセッション中に流れてきたり

www.youtube.com

(社内に共有したら賛否両論でしたが、自分は好きです🎧)

まとめ

まだ見れてないものもあるので、随時追加していけたらと思います。 何か補足や間違っている箇所ありましたらフィードバックいただけると嬉しいです!

PR

子育て家族アプリFammを運営するTimers inc.では、現在エンジニアを積極採用中!
急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください!
採用HP: http://timers-inc.com/engineerings

Timersでは各職種を積極採用中!

急成長スタートアップで、最高のものづくりをしよう。

募集の詳細をみる