Jetpack Compose学习,使用Compose物料清单BOM,

BOM(BillofMaterial)在Android开发中用于管理Compose库的版本,确保库之间的兼容性。它不会自动添加Compose库到应用,但能帮助开发者避免版本冲突,通过引入BOM,开发者无需为每个Compose库手动指定版本,简化依赖管理。推荐使用BOM来协调Compose库的最新稳定版本。
摘要由CSDN通过智能技术生成

介绍

BOM为Bill of Material的缩写

原本是制造业中的一个概念,比如组装一个手机,BoM包括屏幕、手机壳、芯片、主板、电池等,按照既定的物料清单采购好配件,工厂进行组装生产

对于我们开发者来说, 有什么作用的?

举个例子,像compose的一系列依赖,版本众多,更新且又频繁,且又相互有所依赖,对于我们开发来说,理清这些层层次次关系足以头大,然后还有个致命问题,我们几个库使用不同版本,可能还会导致编译直接报错,出现依赖版本等冲突问题

鉴于上述原因,Android官方就是提供了一个BOM的概念,也就是今天的正文。

BoM 是否会自动将所有 Compose 库添加到我的应用中?

不会。要在您的应用中实际添加和使用 Compose 库,您必须在模块(应用级)Gradle 文件(通常是 app/build.gradle)中将每个库声明为单独的依赖项行。

使用 BoM 可确保应用中的任何 Compose 库版本兼容,但 BoM 实际上并不会将这些 Compose 库添加到您的应用中。

为什么建议使用 BoM 管理 Compose 库版本?

今后,Compose 库将单独进行版本控制,这意味着版本号将开始按照自己的节奏递增。每个库的最新稳定版本已经过测试,并保证能够很好地协同工作。不过,找到每个库的最新稳定版本可能比较困难,而 BoM 会帮助您自动使用这些最新版本

使用

使用的话也很简单,如下面例子:

dependencies {

    def composeBom = platform('androidx.compose:compose-bom:2022.12.00')
    implementation composeBom
    androidTestImplementation composeBom
    
    implementation 'androidx.compose.ui:ui'
    implementation 'androidx.activity:activity-compose'
    // Material Design 3
    implementation 'androidx.compose.material3:material3'
}

需要注意的是,我们引入之后,后续的compose相关的库,都不需要写版本号了,由BOM默认指定版本

当然,如果你想指定版本,也是可以的,会优先以你指定的版本为准

库组版本 (2022.10.00)版本 (2022.11.00)版本 (2022.12.00)版本 (2023.01.00)
androidx.compose.animation:animation1.3.01.3.11.3.21.3.3
androidx.compose.animation:animation-core1.3.01.3.11.3.21.3.3
androidx.compose.animation:animation-graphics1.3.01.3.11.3.21.3.3
androidx.compose.foundation:foundation1.3.01.3.11.3.11.3.1
androidx.compose.foundation:foundation-layout1.3.01.3.11.3.11.3.1
androidx.compose.material:material1.3.01.3.11.3.11.3.1
androidx.compose.material:material-icons-core1.3.01.3.11.3.11.3.1
androidx.compose.material:material-icons-extended1.3.01.3.11.3.11.3.1
androidx.compose.material:material-ripple1.3.01.3.11.3.11.3.1
androidx.compose.material3:material31.0.01.0.11.0.11.0.1
androidx.compose.material3:material3-window-size-class1.0.01.0.11.0.11.0.1
androidx.compose.runtime:runtime1.3.01.3.11.3.21.3.3
androidx.compose.runtime:runtime-livedata1.3.01.3.11.3.21.3.3
androidx.compose.runtime:runtime-rxjava21.3.01.3.11.3.21.3.3
androidx.compose.runtime:runtime-rxjava31.3.01.3.11.3.21.3.3
androidx.compose.runtime:runtime-saveable1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-geometry1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-graphics1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-test1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-test-junit41.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-test-manifest1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-text1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-text-google-fonts1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-tooling1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-tooling-data1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-tooling-preview1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-unit1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-util1.3.01.3.11.3.21.3.3
androidx.compose.ui:ui-viewbinding1.3.01.3.11.3.21.3.3

最新的版本信息可以通过官方的链接进行查看BoM 到库的版本映射 | Android Developers

除此之外,还需要注意与kotiln的版本对应关系,**BOM的各版本兼容的最低Kotlin版本可是有所不同的!**详情见下文
compose版本与Kotlin的兼容性

尾声

开发是需要一定的基础的,我是08年开始进入Android这行的,在这期间经历了Android的鼎盛时期,和所谓的Android”凉了“。中间当然也有着,不可说的心酸,看着身边朋友,同事一个个转前端,换行业,其实当时我的心也有过犹豫,但是我还是坚持下来了,这次的疫情就是一个好的机会,大浪淘沙,优胜劣汰。再等等,说不定下一个黄金浪潮就被你等到了。

这是我在这行工作10几年积累的一些资料,如果还想继续在这行业走下去的,或者现在打算跳槽,可以直接扫描下面二维码领取我愿意把资料免费分享给大家。

Android学习PDF+架构视频+面试文档+源码笔记

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值