首页
/ Circuit 0.29.0 版本发布:Kotlin 2.2.0 升级与功能增强

Circuit 0.29.0 版本发布:Kotlin 2.2.0 升级与功能增强

2025-06-28 07:17:42作者:尤辰城Agatha

项目简介

Circuit 是 Slack 开源的一款现代化的 Android 和 Kotlin 多平台 UI 框架,它采用声明式编程模型,专注于构建高效、可维护的用户界面。该框架结合了 Jetpack Compose 的优势,并提供了额外的工具和组件来简化复杂 UI 的开发流程。

核心更新内容

Kotlin 和 KSP 版本升级

本次 0.29.0 版本最重要的更新是将 Kotlin 升级到了 2.2.0 版本,同时 KSP(Kotlin Symbol Processing)也同步升级到了 2.2.0-2.0.2。这一升级带来了:

  1. 更快的编译速度
  2. 改进的编译器性能
  3. 更稳定的符号处理
  4. 对 Kotlin 最新语言特性的支持

Metro 代码生成增强

新版本为 Metro 模块添加了对 @AssistedFactory 注解的支持。这一改进使得:

  • 依赖注入更加灵活
  • 工厂模式的实现更加简洁
  • 减少了样板代码的编写
  • 提高了代码的可测试性

动画与过渡效果改进

AnimatedOverlay 组件新增了可寻址过渡支持,这意味着:

  1. 开发者可以精确控制动画的进度
  2. 支持动画的暂停、继续和反向播放
  3. 提供了更流畅的用户体验
  4. 增强了动画与用户交互的协调性

同时,FullScreenOverlay 增加了预测性返回支持,这是 Android 平台上的一项重要改进:

  • 提供了更符合用户预期的返回操作体验
  • 支持手势操作的视觉反馈
  • 增强了应用的整体流畅度
  • 符合 Android 最新的设计规范

开发环境支持

本次更新将编译目标提升到了 Android SDK 36,这意味着:

  1. 支持最新的 Android 平台特性
  2. 更好的性能优化
  3. 更完善的安全机制
  4. 兼容最新的设备功能

技术细节解析

预测性返回的实现

预测性返回是 Android 13 引入的重要特性,Circuit 通过 FullScreenOverlay 实现了这一功能。其核心原理是:

  1. 响应系统返回手势事件
  2. 根据手势进度实时更新 UI
  3. 提供平滑的过渡动画
  4. 正确处理手势取消和完成的情况

可寻址过渡的技术实现

AnimatedOverlay 的可寻址过渡功能基于 Compose 动画 API 构建,主要特点包括:

  1. 使用 Animatable 作为基础动画原语
  2. 支持从任意进度开始动画
  3. 提供精确的进度控制接口
  4. 与 Compose 状态系统深度集成

升级建议

对于现有项目升级到 0.29.0 版本,建议开发者:

  1. 首先升级 Kotlin 和 AGP 版本
  2. 检查现有 @AssistedInject 使用情况,考虑迁移到 @AssistedFactory
  3. 评估现有动画实现,利用新的可寻址过渡特性进行优化
  4. 测试预测性返回在各种场景下的表现
  5. 更新 CI 环境中的 Android SDK 版本

总结

Circuit 0.29.0 版本通过核心依赖升级和功能增强,进一步提升了框架的现代化程度和开发体验。特别是对最新 Android 特性的支持,使得基于 Circuit 开发的应用能够提供更符合平台规范、更流畅的用户体验。这些改进体现了 Slack 团队对开发者体验和终端用户体验的双重关注,也展示了 Circuit 框架持续演进的活力。

登录后查看全文
热门项目推荐

项目优选

收起
kernelkernel
deepin linux kernel
C
22
6
docsdocs
OpenHarmony documentation | OpenHarmony开发者文档
Dockerfile
165
2.05 K
nop-entropynop-entropy
Nop Platform 2.0是基于可逆计算理论实现的采用面向语言编程范式的新一代低代码开发平台,包含基于全新原理从零开始研发的GraphQL引擎、ORM引擎、工作流引擎、报表引擎、规则引擎、批处理引引擎等完整设计。nop-entropy是它的后端部分,采用java语言实现,可选择集成Spring框架或者Quarkus框架。中小企业可以免费商用
Java
8
0
leetcodeleetcode
🔥LeetCode solutions in any programming language | 多种编程语言实现 LeetCode、《剑指 Offer(第 2 版)》、《程序员面试金典(第 6 版)》题解
Java
60
16
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
952
561
apintoapinto
基于golang开发的网关。具有各种插件,可以自行扩展,即插即用。此外,它可以快速帮助企业管理API服务,提高API服务的稳定性和安全性。
Go
22
0
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
1.01 K
396
HarmonyOS-ExamplesHarmonyOS-Examples
本仓将收集和展示仓颉鸿蒙应用示例代码,欢迎大家投稿,在仓颉鸿蒙社区展现你的妙趣设计!
Cangjie
407
387
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
199
279
giteagitea
喝着茶写代码!最易用的自托管一站式代码托管平台,包含Git托管,代码审查,团队协作,软件包和CI/CD。
Go
17
0