🔥

Jetpack Composeのバージョニングについて

2023/02/23に公開

概要

最近関わっているAndroidプロジェクトのJetpack Composeのバージョンが古く、バージョンを上げました。この際バージョニングについて少し調べたので備忘録としてまとめておきます。

TL;DR

  • KotlinとCompose Compilerのバージョンは必ず対応したものを使用しなければならない
  • Compose Compiler以外のComposeライブラリのバージョンは一致させる必要はない

Jetpack Composeのバージョニング

Jetpack Composeはandroidx.compose.compilerandroidx.compose.animationなど7つのMaven Group IDを組み合わせたものです。
各グループにはそれぞれ目的に応じた機能が含まれており、これらは独立しています。
例えばandroidx.compose.compilerandroidx.compose.animationのバージョンが一致している必要はありません。

ではなぜ独立するようになったのでしょうか。理由は大きく2つです。

  1. 各ライブラリのバージョンが暗黙的に結合されていた
  2. Kotlinのバージョンが上げづらくなっていた

各ライブラリのバージョンが暗黙的に結合されていた

以前はandroidx.compose.compilerのバージョンを上げる際、そのほかのComposeライブラリのバージョンも引き上げることが必要なケースがありました。
これによりバージョンを上げるハードルが高くなってしまっていましたが、依存関係を切り離すことで各ライブラリの段階的なアップグレードが容易になりました。
またライブラリ間の上方互換性と下位互換性もサポートしています。例えばCompose Compilerのみ1.2.0に上げるが、その他のComposeライブラリは1.1.0のままにすることができたり、逆にその他のComposeライブラリを1.3.0にしたりすることもできます。

Kotlinのバージョンが上げづらくなっていた

以前はKotlinの最新バージョンを使おうとすると、Compose Compilerのバージョンも上げる必要があり、さらにその他のComposeライブラリのバージョンも上げる必要がありました。しかしComposeライブラリのバージョニングを切り離すことにより、Koltinのバージョンを上げてもCompose Compiler以外のバージョンは上げる必要はありません。これによりCompose Compilerのバージョンのみを上げることで、Kotlinの最新版をすぐに使用しやすくなりました。

参考URL

GitHubで編集を提案

Discussion