Skip to content

3.4.0

Latest

Choose a tag to compare

@D10NGYANG D10NGYANG released this 10 Oct 07:08

3.4.0:Compose 升级与 Android 工具链迁移

发布日期:2026-10-10。

本版本升级 Compose 配套依赖与构建工具,适配新版 Sheet 状态 API,并补充多平台和 Android 真机回归。公开组件函数、Builder 参数及 Maven 坐标保持兼容,但 Android 消费方需要升级构建环境;这不是只替换库版本号即可完成的补丁更新。

依赖与构建基线

项目 3.3.5 3.4.0
Compose Multiplatform 1.11.1 1.12.1
JetBrains Material3 1.11.0-alpha07 1.12.0-alpha03
JetBrains / AndroidX Lifecycle 2.10.0 2.11.0
JetBrains Navigation3 1.1.1 1.1.2
Android Compose BOM(示例) 2026.06.00 2026.09.00
Compose Hot Reload 1.1.1 1.2.0
DLAppUtil(Android 示例) 2.7.0 2.7.1
Kotlin / Compose compiler / serialization 插件 2.3.21 2.4.21
AGP 8.11.2 9.1.1
Gradle 8.14.3 9.8.1
Android compileSdk 36 37

Android minSdk 26、示例 targetSdk 34、库 JVM toolchain 11保持不变。表中工具版本是本项目构建和验收基线,不代表每个非 Android 消费方都必须使用 AGP。

Gradle 9.8.1包含仓库解析及daemon/worker通信的安全修复,Wrapper改用官方发行地址并固定SHA-256。DLAppUtil2.7.1清除Activity销毁后的launcher映射残留。Compose1.12.1包含文本选择、iOS无障碍和Web输入等修复。

从 3.3.5 升级

  1. 先更新构建环境。 本版Android依赖要求compileSdk至少37、AGP至少9.1.0;建议采用本表已验证版本。Kotlin相关编译插件使用相同版本。无法迁移Android工具链的项目应继续使用3.3.5。

  2. KMP Android库采用新插件。 将com.android.library替换为com.android.kotlin.multiplatform.library,Android配置移入kotlin.android,按需开启androidResources和withHostTest。不要在使用AGP内置Kotlin的应用模块继续应用org.jetbrains.kotlin.android。

  3. KMP与Android应用插件分开。 如果一个模块同时使用KMP和com.android.application,将Android入口、Manifest与应用资源移至独立应用模块,保留原applicationId。iOS/Desktop/Web不需要因此重新拆分。

  4. 更新组件依赖。 仓库仍为README中配置的GitHub Maven仓库:

    implementation("com.github.D10NGYANG:DLJetpackComposeUtil:3.4.0")
  5. 检查解析结果并回归。 不要把AndroidX Compose BOM当作JetBrains KMP坐标的版本管理器,也不要把Material3独立alpha版本机械替换为Compose主版本。重点验证弹层、输入、返回、Insets及Activity重建后的结果回调。

Android单变体发布继续使用DLJetpackComposeUtil-android坐标,KMP根模块继续提供Android、iOS Arm64、iOS Simulator Arm64、JVM、JS及WasmJs变体。

本仓库适配

  • library和composeApp采用Android KMP library插件;composeAndroidApp承载原跨平台Demo的Android启动和打包,应用ID仍为com.d10ng.compose.demo。
  • 原androidApp主题Demo保持独立。构建跨平台Demo Android包改用:composeAndroidApp:assembleDebug,库Android单元测试改用:DLJetpackComposeUtil:testAndroidHostTest。
  • Sheet从弃用的rememberModalBottomSheetState迁移到rememberBottomSheetState,仅启用Hidden/Expanded,保留禁止半展开、强制关闭策略及等待退出动画完成后移除的行为。调用方无须改写现有Builder。
  • 新增Android仪器回归测试,覆盖旧Activity引用清理、重建后选图结果与图片预览、真实选择器取消和强制Sheet。

验证

  • Android两个Demo打包、JVM/JS/Wasm/iOS编译、iOS模拟器整包构建与启动、Dokka及发布元数据检查通过。
  • JVM、Android Host、iOS Simulator各5项单元测试,以及Android12真机4项仪器测试通过,共19次测试执行。
  • Web覆盖23个组件页及首页,11组截图无明显视觉回退;静态截图多数逐像素一致,差异主要位于加载动画。
  • Android12真机验证了输入/IME、弹窗校验、返回键、侧滑返回、Sheet拖动/遮罩关闭及连续开关;测试图片在连续两次Activity重建后可解码、绘制并点击关闭。
  • 3.4.0发布构建通过167个任务;7个Maven模块的168份制品校验和及28份仓库元数据校验和一致。独立Android/JVM消费配置可解析发布制品,Web生产压缩包的7组交互检查通过。

详细证据与命令见验收报告。

已知边界

  • Material3仍为alpha版本。
  • Gradle9.8.1高于Kotlin2.4.21官方列出的完整测试上限9.7.0,本项目已实测通过,不将其表述为官方完整支持组合。
  • Web保留一条Compose Resources访问旧Wasm内存接口的非致命弃用日志,交互未受影响。
  • Android12设备无法验证Android13+预测性返回动画和取消。成功选图使用受控测试图片结果,真实系统选择器的打开/取消另有实测;未手动选择个人图库照片。
  • iOS完成启动与策略测试,未穷尽全部原生手势/键盘场景;本次不是完整传递依赖漏洞扫描。

完整变更

3.3.5...3.4.0