码农知识堂 - 1000bd
  •   Python
  •   PHP
  •   JS/TS
  •   JAVA
  •   C/C++
  •   C#
  •   GO
  •   Kotlin
  •   Swift
  • Jetpack Compose学习(10)——使用Compose物料清单BOM,更好管理依赖版本


    本文为作者原创,允许转载,不过请在文章开头明显处注明链接和出处!!! 谢谢配合~
    作者:stars-one
    链接:https://www.cnblogs.com/stars-one/p/17126615.html

    本篇大约有4093个字,阅读预计需要5.12分钟


    合集 - Android Jetpack Compose(11)
    1.Jetpack Compose学习(1)——从登录页开始入门2021-08-112.Jetpack Compose学习(2)——文本(Text)的使用2021-08-223.Jetpack Compose学习(3)——图标(Icon) 按钮(Button) 输入框(TextField) 的使用 2021-09-084.Jetpack Compose学习(4)——Image(图片)使用及Coil图片异步加载库使用2021-09-155.Jetpack Compose学习(5)——从登录页美化开始学习布局组件使用2021-09-256.Jetpack Compose学习(6)——关于Modifier的妙用2021-10-037.Jetpack Compose学习(7)——MD样式架构组件Scaffold及导航底部菜单2021-10-048.Jetpack Compose学习(8)——State及remeber2022-07-309.Jetpack Compose学习(9)——Compose中的列表控件(LazyRow和LazyColumn)2022-08-11
    10.Jetpack Compose学习(10)——使用Compose物料清单BOM,更好管理依赖版本02-16
    11.Jetpack Compose学习(11)——Navigation页面导航的使用02-25
    收起

    原文地址:Jetpack Compose学习(10)——使用Compose物料清单BOM,更好管理依赖版本 - Stars-One的杂货小窝

    本期讲解下关于Android推出的BOM来简化我们添加compose依赖过于繁杂的问题

    本系列以往文章请查看此分类链接Jetpack compose学习

    介绍

    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:animation 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.animation:animation-core 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.animation:animation-graphics 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.foundation:foundation 1.3.0 1.3.1 1.3.1 1.3.1
    androidx.compose.foundation:foundation-layout 1.3.0 1.3.1 1.3.1 1.3.1
    androidx.compose.material:material 1.3.0 1.3.1 1.3.1 1.3.1
    androidx.compose.material:material-icons-core 1.3.0 1.3.1 1.3.1 1.3.1
    androidx.compose.material:material-icons-extended 1.3.0 1.3.1 1.3.1 1.3.1
    androidx.compose.material:material-ripple 1.3.0 1.3.1 1.3.1 1.3.1
    androidx.compose.material3:material3 1.0.0 1.0.1 1.0.1 1.0.1
    androidx.compose.material3:material3-window-size-class 1.0.0 1.0.1 1.0.1 1.0.1
    androidx.compose.runtime:runtime 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.runtime:runtime-livedata 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.runtime:runtime-rxjava2 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.runtime:runtime-rxjava3 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.runtime:runtime-saveable 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-geometry 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-graphics 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-test 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-test-junit4 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-test-manifest 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-text 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-text-google-fonts 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-tooling 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-tooling-data 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-tooling-preview 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-unit 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-util 1.3.0 1.3.1 1.3.2 1.3.3
    androidx.compose.ui:ui-viewbinding 1.3.0 1.3.1 1.3.2 1.3.3

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

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

    参考

    • Android Compose BoM 物料清单_抓饼先生的博客-CSDN博客
    • 快速入门  |  Jetpack Compose  |  Android Developers
    • compose版本与Kotlin的兼容性
    • BoM 到库的版本映射 |  Android Developers
  • 相关阅读:
    Scalable Time Series Compound Infrastructure(sigmod2020)
    提权方法:利用环境变量路径劫持提权
    报错 : UNRESOLVED DEPENDENCY:ORG.SPRINGFRAMEWORK:SPRING-WEBMVC-5.2.0.RELEASE
    Spring Boot 整合 分布式搜索引擎 Elastic Search 实现 数据聚合
    SpringCloudAlibaba系列微服务搭建笔记二-RestTemplate+Ribbon
    416. 分割等和子集
    Ubuntu安装SVN服务并结合内网穿透实现公网访问本地存储文件
    verilog实现I2C控制器 (小梅哥思路)----详细解析
    7.动态SQL
    Blazor前后端框架Known-V1.2.13
  • 原文地址:https://www.cnblogs.com/stars-one/p/17126615.html
  • 最新文章
  • 攻防演习之三天拿下官网站群
    数据安全治理学习——前期安全规划和安全管理体系建设
    企业安全 | 企业内一次钓鱼演练准备过程
    内网渗透测试 | Kerberos协议及其部分攻击手法
    0day的产生 | 不懂代码的"代码审计"
    安装scrcpy-client模块av模块异常,环境问题解决方案
    leetcode hot100【LeetCode 279. 完全平方数】java实现
    OpenWrt下安装Mosquitto
    AnatoMask论文汇总
    【AI日记】24.11.01 LangChain、openai api和github copilot
  • 热门文章
  • 十款代码表白小特效 一个比一个浪漫 赶紧收藏起来吧!!!
    奉劝各位学弟学妹们,该打造你的技术影响力了!
    五年了,我在 CSDN 的两个一百万。
    Java俄罗斯方块,老程序员花了一个周末,连接中学年代!
    面试官都震惊,你这网络基础可以啊!
    你真的会用百度吗?我不信 — 那些不为人知的搜索引擎语法
    心情不好的时候,用 Python 画棵樱花树送给自己吧
    通宵一晚做出来的一款类似CS的第一人称射击游戏Demo!原来做游戏也不是很难,连憨憨学妹都学会了!
    13 万字 C 语言从入门到精通保姆级教程2021 年版
    10行代码集2000张美女图,Python爬虫120例,再上征途
Copyright © 2022 侵权请联系2656653265@qq.com    京ICP备2022015340号-1
正则表达式工具 cron表达式工具 密码生成工具

京公网安备 11010502049817号