こんにちは。AndroidエンジニアのTsutouです。緊急事態でマイブームのサウナに毎日入れずしんどい思いをしています。
Google I/O 2021が開催されました!
もちろん今回はこんなご時世なので、無料参加・全てリモートです。
非同期でのインプットが多かったですが、リモートカンファレンスは自分のペースで1つ1つを追っていけるのでこれもまたいいですね。
ガッツリ参加してきたので、忙しい人向けにレポートしたいと思います!
Google Keynote・Developer keynote
メインの基調講演です。忙しい人は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
主にAndroid 12 Betaの発表とその最新情報についてです。
特徴は新デザインMaterial Youによる、ユーザーインターフェースの大規模変更で、その他にもプライバシーやセキュリティ面を更に強化したとのことです。
- ❌
@Deprecateアノテーションが非推奨 ⭕️ @Deprecateアノテーションがドキュメント生成のバグで非推奨になっちゃってたけど、非推奨ではないということのようです。
- 初見で真逆に解釈してしまいました 😓 ムズイ
UI
Color Palette
- デバイスのカラーパターンを調整する
- Pixelでは壁紙に応じて色を調整
- それ以外にも2800の色選択が可能になる
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
- Picture in Pictureの改善
Top 12 tips to get ready for Android 12 | Session
Android12対応へのTips, 注意事項です。これから対応控えてる身としては、かなり有益でした。
- App Compatibility Changes
- 開発者メニューからOSの変更ごとにON/OFFしてテストできる
- フォアグラウンドサービスのバックグラウンド起動制限
- Expedited Jobs with WorkManager APIsで代替できる
- マイクカメラアクセスのユーザー切り替え
- 権限をベストプラクティスで設定できていれば問題ないが確認が必要
- アプリの休止状態
- 権限の取り消し・キャッシュの消去によってストレージの開放・ジョブとプッシュメッセージの停止
- アプリが長らく未使用だとOSに休止状態にされるので通知なども届かなくなるので注意
- Bluetoothの使用許可
- 使用するアプリは対応が必要
- MACアドレスへの制限強化
- getHardWareAddressが
null
で返却されるようになる
- getHardWareAddressが
- IntentFilterのあるコンポーネントにはexported属性を明示的に宣言しなければならない
- コンパイルエラーになる
- フルカスタム通知を利用しているアプリは標準レイアウトに変更されるので、挙動を確認した方が良い
- アプリリンクが検証されるので、チェックした方が良い
- WebViewのセキュリティ向上で動作変更があったのでテスト推奨
- オーバースクロールにストレッチ動作が加わるので動作検証推奨
What’s new in Android development tools | Session
- Live Database Inspector
- TensorFlow ModelをProjectに直接インポートできるように
- ネイティブC++メモリプロファイラ
- new Gradle Plugin API
- Android Studioのバージョン管理を年に基づいたバージョニングに(コードネーム: Arctic Fox)
- ライブリテラル
- Previewのホットリロード的な
- モーションエディターのアップデート
- Layout Validation
- Arctic Fox
- Test Retension
- テストでコケた場所をキャプチャ
- Work Manager Inspector
- Refactor -> Migrate Taransitive R class
- Test Retension
What’s new in Jetpack
Jetpackシリーズが成熟してきて、それらをJetpack Composeに統合していく流れを感じます。
既存のもののアップデートも多かったのでここでは割愛。 ↓個人的に気になったもの
What's new in Jetpack Compose | Session
Jetapack Composeの基本、今までのおさらいという感じ? 今年はとにかくこれが激推しでした。早くstableになるといいですね。
- 宣言型UIツールキット
- StateをUIに組み込む
- 記述量や可読性だけでなく、Testが容易に
- 既存のUIと共存可能
State of Kotlin on Android | Session
- 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
ウィジェットが刷新されるよう。 iOSからも出て話題になったので、再燃するかもしれないですね。
- ウィジェットとはアプリの機能を捕捉するもの
- ウィジェット設置アプリはエンゲージメントが飛躍的に向上する
- コントロールのUI/デザイン/APIの更新がなされた
- Useful/Discoverable/Beautifulの三本柱
- アシスタント連携
- Jetpack Composeもサポート
Effective background tasks on Android | Session
- ForegroundService
- backgroundから開始したらダメ(ユースケースが適切でないので、制限される)
- 代替えはExpedited Job
- UIから起動するもの -> ナビや音楽はForegroundServiceが適切
- 他はWorkManager推奨
- すぐ終わるやつは優先ジョブ
- それ以外は定期ジョブ
- PushNotification
- FCMが推奨
What's new in Android Media | Session
- Video Quality
- Performance Class
- OSレベルに基づき、デバイスのパフォーマンスをコードで区分けできる
- ExoPlayer
- PalyList APIs
- StyledPlayerView
- StyledPlayerControlView
- Transformer API
- Real-time Audio
What's new in Android Machine Learning | Session
TensorFlow Lite for Androidはすごく気になりました 👀
- OnDevide ML
- TensorFlow Lite for Android
- PlayStoreに接続されたデバイス全てにプリインされる
- アプリにバンドルする必要がないのでアプリサイズを増やさずにMLを実行できる
- パフォーマンスの最適化
- Android Neural Network APIについて
What’s new in Android privacy | Session
安全なエコシステムの構築がミッション
Tarnsparency
- アプリが何をやっているのかの透明性の向上
- マイクとカメラの予期しないアクセスはユーザーがコントロールでき、許諾を得ないと破棄される
- Control
- データ使用量からアプリのデータアクセス履歴が追えるように
- クリップボードからの読み取り通知
- 場所/マイク/カメラのアクセス許可に今回のみを追加
- ゲストモードの改善
- DataMinimization
- 昨年リリースの権限の自動削除に基づき、長く使われてないアプリを強制的に終了させる
- MANAGE_EXTERNAL_STORAGE permissionは消さないといけない、BANされる(例外はあり)
- QUERY_ALL_PACKAGES permission は、使用要件を満たしていない限りBANされる
- Private Computing Core
- 機密データの操作が可能になり、ユーザーが機密情報の取り扱いを知ることができる
- OSのプライベート領域に独立した機密性の高い情報を処理するAPIを提供
おまけ
リモートでもお祭り気分を少し味わえるのはなんだか素敵な世界ですね 😌
バーチャルでI/O会場を回れるシステムがあったり (釣りとかゲームもできました)
Firebaseの公式ソング?がセッション中に流れてきたり
(社内に共有したら賛否両論でしたが、自分は好きです🎧)
まとめ
まだ見れてないものもあるので、随時追加していけたらと思います。 何か補足や間違っている箇所ありましたらフィードバックいただけると嬉しいです!
PR
子育て家族アプリFammを運営するTimers inc.では、現在エンジニアを積極採用中!
急成長中のサービスの技術の話を少しでも聞いてみたい方、スタートアップで働きたい方など、是非お気軽にご連絡ください!
採用HP: http://timers-inc.com/engineerings