【Android】Version Catalog + JetpackCompose UI + BOM

Compose の BOM。

【Android】Version Catalog + JetpackCompose UI + BOM
👉 Google's Maven Repository hatena-bookmark

公開されているので使ってみます。

少し公式ドキュメントで調べておきます。

BOM の使用は義務ですか?

いいえ。個々の依存関係バージョンを手動で追加することもできます。しかし、すべての最新の安定版を同時に使用することが容易になるので、BOM を使用することをおすすめします。

Compose Compiler ライブラリが BOM に含まれていないのはなぜですか?

Compose Kotlin コンパイラ拡張機能(androidx.compose.compiler)は、Compose ライブラリのバージョンでなく、Kotlin コンパイラ プラグインのバージョンにリンクされており、Compose の他の部分とは異なる頻度でリリースされます。したがって、お使いの Kotlin バージョンと互換性のあるバージョンを使用してください。

👉 Using the Bill of Materials  |  Jetpack Compose  |  Android Developers hatena-bookmark

公式サンプルコードを少し変更したものを準備しておきます。


# libs.versions.toml

[libraries]
compose-ui-bom = { module = "androidx.compose:compose-bom", version = "2023.01.00" }


// build.gradle

dependencies {
  implementation platform(libs.compose.ui.bom)
}

👉 BOM to library version mapping  |  Jetpack Compose  |  Android Developers hatena-bookmark

 

■ 実装

実装としては、以下でいけました。


# libs.versions.toml

[libraries]

compose-ui-bom = { module = "androidx.compose:compose-bom", version = "2023.01.00"}
compose-material = { module = "androidx.compose.material:material" }
compose-material-icons = { module = "androidx.compose.material:material-icons-extended" }
compose-ui = { module = "androidx.compose.ui:ui" }
compose-ui-tooling-preview = { module = "androidx.compose.ui:ui-tooling-preview" }


// build.gradle

dependencies {

  // compose-ui
  implementation platform(libs.compose.ui.bom)
  implementation libs.compose.material
  implementation libs.compose.material.icons
  implementation libs.compose.ui
  implementation libs.compose.ui.tooling.preview

}

 

■ まとめ

BOM を使っていなかったのですが、エラーが出始めたので、使うことにしました。

「整合性の適正化」と「グループ化」の機能を持っている「BOM」は、Kotlin, Firebase などでも公開されています。

便利に利用するべきでしょう。

しかし、AndroidStudio のコレ。

JetpackCompose UI で BOM

「null」 の表示。

どうにかなりませんかね。

👉 今はまだ必要な Android ライブラリ の Bill of Materials(BOM) のURLs hatena-bookmark


プログラミング でも UI でも 等幅フォント「Martian Mono」はいい感じ。

Martian Monoは、Martian Grotesk(myfonts.com)の等幅バージョンで、Groteskのすべての利点を継承しつつ、コード用とデザイン用に制作されたフォントです。

ライセンスはSIL Open Font License 1.1で、商用プロジェクトでも無料で使用できます。

👉 プログラミング用フォントとUIデザインのどちらにも使える! 美しさと読みやすさを兼ね備えたフォント「Martian Mono」 | コリス hatena-bookmark

良さげなので、IDEA/AndroidStudio に適用してみましたが、エディター内コードのテキスト、IDE の UI のテキスト、両方共にすごくいいです!

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

きれいでくっきりと分かりやすいフォントです。

私の場合はあまり目が良くないので、すべてのテキストサイズは 14 に統一しています。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

プログラミング でも UI でも フォント「Martian Mono」はいい感じ。

多少、目が悪くても、光の当たり方が悪くても、すごく見やすくて分かりやすいです。

おすすめです。

ちなみに、上の画像は、最も標準的な Std Rg otf を入れたものです。

👉 evilmartians/mono: Free and open-source monospaced font from Evil Martians hatena-bookmark


【Android Studio】Google vs JetBrains - build 時 に利用する JDK の選択

外野から、さらっと見ていると、


- IDEA Intellij は JetBraains 製。
- Android Studio は Google 製。
- Android Studio は IDEA Intellij を利用してできている。

と認識しています。

それぞれ公式で以下の内容。


ん?

一般的、標準的な Android アプリ開発の IDE といえば Android Studio だと思うのですが、開発したソースコードの build に利用する JDK は、「Android Studio にバンドルされている JDK」でいいんですよね?

Android Studio 設定画面からは、どちらでも選択はできます。

今現在、私のパソコンにインストールされてる JDK は、Android Studio バンドル版を含めて OpenJDK 11.0.15 と 11.0.18 と 19.0.1 の3つ。

Android Studio 設定画面もそれは認識しています。

【Android Studio】Google vs JetBrains - build 時 に利用する JDK の選択
19 系はないとして、やはり embedded JDK 11.0.15 が妥当ですよね。

少し、混乱してました。

特に理由がなければこれで良し、とな。

👉 Android Studio Electric Eel | 2022.1.1 の JDK11 設定 hatena-bookmark
👉 【macOS】Android Studio 埋め込み JDK の Home のパスを取得する hatena-bookmark
👉 AndroidStudio 利用する Java (JDK) の選択・設定の方法 hatena-bookmark
👉 macOS (Intel) + Homebrew の JDK の現状を確認する hatena-bookmark
👉 【Android Studio】Settings - Build Tools - Gradle JDK の選択肢がゴミだらけで意味不明の場合 hatena-bookmark