2022年1月におけるAndroid開発状況

Photo by Moritz Knöringer on Unsplash

今年もAndroid開発状況を個人的な観点からまとめたいと思います。
去年はこちら

Kotlin/Coroutines

KotlinとCoroutinesに関しては特に言うことはないかなぁっていうくらい当たり前なものになってきています。

現在コンパイラを書き換えていますが(K2 Compier)、今年完成するかどうかが気になるところです。

KSPに関しては、Stableリリースされましたが対応ライブラリがまだ多くない状況です。有名どころだとRoomMoshiかなって感じですね。引き続き期待して待ちたいなと思っています。

Jetpack Compose

Composeは去年正式にリリースされ、それ以降はずっと話題の中心ですね。徐々に導入し始めたところもあると思います。

WidgetについてもComposeで作れるJetpack Glanceがリリースされています。

ただ、まだ荒削りな感じがあったり、無いComponentがあったりして、苦労する部分もまだまだありますね。

まだまだ過渡期な状況は続くと思いますが、今後主流になるのは間違いないと思います。少しずつでもキャッチアップしておく必要があると思います。

セキュリティ/プライバシー

Android OS自体ですが、バージョンアップするたびに、セキュリティやプライバシーに関する変更が入ってきていますし、対応が必要になるものもあります。

またGoogle Playでもデータセーフティセクションが導入されます。今年の2月からユーザーに見えるようになり、4月からはデータセーフティセクションの承認がされないとリリースができなくなります。

次のアップデートでも何かしらあるかなと思うので、しっかりと対応していきましょう。

大画面対応

去年のGoogle I/OAndroid Dev Summitでは大画面対応に関するセッションもあり、力を入れてるような印象を受けます。

ぼく自信もしっかりと対応してるとは言えないので、今後やっていきたいと思っています。

まずは、良いタブレット端末が発売されることを願っています。

Material Design

去年、Material Design 3が発表され、Material Youという新しいものが出てきています。Material Design 3では色々変更が多いですが、現時点ではライブラリもまだalphaだったりします。

ぼくの観測範囲だと、そもそもMaterial Designの実装についてそこまで理解されてないような感じもしています。例えばThemeの属性を使わず、Viewに直接colorリソースを使っているのをよく見かけます。これはComposeも同様です。

Material YouやDark Theme対応のためにも実装をしっかりやっていきましょう。

Jetpack

去年はCompose中心という感じでしたが、おそらく今年もそんな感じになりそうだなと思います。

https://developer.android.com/jetpack/androidx/versions

いくつか気になったCompose以外のアップデートを書いておきます。

Lifecycle

Flowを扱うためのAPIとして、 repeatOnLifecycle が追加されました。UIレイヤーで安全にFlowをcollectできます。詳しくは以下の記事を読んでみてください。

WorkManager

バックグランド関連の処理は基本的にWorkManagerを使っていくことが推奨されるようになりました。Android 12で導入されたExpedited Jobにも対応されています。

また、Android Studioによるデバッグ機能も便利になってきています。

https://developer.android.com/studio/inspect/task

Media 3

まだalphaですが、ExoPlayerが内包されたMedia 3がリリースされています。まだ詳しくは見ていないのですが、今後メディア再生のライブラリはMedia 3を基本使っていくような感じなりそうです。

Room

Roomは前述しましたがKSP対応が入っています。またAuto Migrationも導入されています。

個人的にRoomがKMM対応をするのかどうかが気になっています。

設計

2021年末に設計ガイドが更新され、かなり細かい解説がされています。

個人的にはこれまでモヤモヤしてたものがクリアになり実装にかなり役に立つ内容になってると思います。色んな人にオススメできるかなと思います。

すべてを従う必要はないとは思いますが、まずはこれを元にチーム内で議論をして考えていくと良いと思います。

他にも、もしかしたらコミュニティ主導でComposeの新しい設計が提案されたりするかもです。

マルチプラットフォーム

なにかデータがあるとかではなく、個人的に感じてることなので、実態は違うかもです。

ぼくは全然詳しくないですが、日本でのFlutter人気は高まり続けてるように感じています。Flutterを始めた方もどんどん増えてるような気がします。引き続き人気は続くと思われます。

Kotlin Multiplatform Mobile(KMM)に関しましては、今年の春にようやくBetaになる予定です。こちらはジワジワと導入してるところが増えてきてる気配です。

まとめ

今年もAndroidではComposeが中心になり、導入事例も増えてくると思います。とはいえ、既存プロジェクトはViewシステムもまだまだ主流な状況が続くと思います。

バックグラウンド処理などのUI以外の部分に関しては、引き続き様々な改善がされていくと思います。また、OSアップデートの影響も受けることもあるので公式ドキュメントをしっかり読んで対応することが引き続き大事になってきます。

今年も色々アップデートあると思いますが、しっかりと公式の情報を見て対応していきましょう。

Programmer / Gamer / Google Developers Expert for Android, Kotlin / @STAR_ZERO

Programmer / Gamer / Google Developers Expert for Android, Kotlin / @STAR_ZERO