Mosaic 0.15.0发布:动画支持与布局增强
Mosaic是一个基于Kotlin的终端UI框架,它借鉴了Jetpack Compose的声明式UI编程模型,使开发者能够使用类似的API在终端中构建丰富的用户界面。与传统的终端UI开发方式相比,Mosaic提供了更现代化、更声明式的开发体验。
全新动画支持库
本次0.15.0版本最引人注目的新特性是新增了mosaic-animation库,它为Mosaic应用提供了丰富的动画功能。这个库的设计灵感来源于Android的androidx.compose.animation-core,为终端UI带来了流畅的动画体验。
mosaic-animation库包含以下核心功能:
- 基础动画支持:包括补间动画、弹簧动画等
- 状态驱动的动画:当UI状态变化时自动触发动画
- 动画曲线控制:支持自定义缓动函数
- 组合动画:多个动画可以组合在一起同步或顺序执行
开发者现在可以轻松实现终端应用中元素的平滑过渡效果,比如列表项的展开/折叠、进度条的动态变化等,大大提升了终端应用的用户体验。
布局系统增强
0.15.0版本对Mosaic的布局系统进行了重要增强,新增了IntrinsicSize及相关修饰符:
Modifier.width/height:设置组件的宽度或高度Modifier.requiredWidth/requiredHeight:强制设置组件的宽度或高度IntrinsicSize:允许组件根据其内容计算固有尺寸
这些新特性使得布局系统更加灵活,开发者可以更精确地控制UI元素的尺寸,特别是在需要根据内容动态调整大小的场景下。
测试支持与布局标识
新版本引入了mosaic-testing库,专门用于测试Mosaic组件。这个库提供了以下能力:
- 确定性渲染:确保测试环境下UI渲染结果一致
- 组件状态验证:可以断言组件的各种状态
- 交互测试:模拟用户输入并验证UI响应
此外,新增的Mosaic.layoutId功能允许开发者为布局元素分配唯一标识符,这在复杂布局中特别有用,可以方便地在父组件中识别和操作特定的子组件。
自定义修饰符支持
Modifier.composed的引入是一个重要的API增强,它允许开发者创建自定义的可重用修饰符,并在其中访问Compose功能。这意味着:
- 可以封装复杂的修饰逻辑为可重用组件
- 可以在修饰符中访问状态和其他Compose特性
- 提高了代码的模块化和可维护性
性能优化与问题修复
在性能方面,0.15.0版本移除了20FPS的渲染帧率限制,现在渲染会尽可能快地进行(但仍只在必要时渲染)。这一变化减少了事件处理时的视觉延迟,使UI响应更加即时。
修复了自定义Modifier在多父类型(如同时继承LayoutModifier、DrawModifier等)情况下的处理问题,提高了框架的稳定性和可靠性。
总结
Mosaic 0.15.0版本通过引入动画支持、增强布局系统、改进测试能力和提供更灵活的API,显著提升了终端UI开发的体验和能力。这些改进使得开发者能够构建更加动态、响应迅速且易于维护的终端应用程序,进一步巩固了Mosaic作为现代化终端UI框架的地位。
GLM-5智谱 AI 正式发布 GLM-5,旨在应对复杂系统工程和长时域智能体任务。Jinja00
GLM-5-w4a8GLM-5-w4a8基于混合专家架构,专为复杂系统工程与长周期智能体任务设计。支持单/多节点部署,适配Atlas 800T A3,采用w4a8量化技术,结合vLLM推理优化,高效平衡性能与精度,助力智能应用开发Jinja00
jiuwenclawJiuwenClaw 是一款基于openJiuwen开发的智能AI Agent,它能够将大语言模型的强大能力,通过你日常使用的各类通讯应用,直接延伸至你的指尖。Python0201- QQwen3.5-397B-A17BQwen3.5 实现了重大飞跃,整合了多模态学习、架构效率、强化学习规模以及全球可访问性等方面的突破性进展,旨在为开发者和企业赋予前所未有的能力与效率。Jinja00
AtomGit城市坐标计划AtomGit 城市坐标计划开启!让开源有坐标,让城市有星火。致力于与城市合伙人共同构建并长期运营一个健康、活跃的本地开发者生态。01
awesome-zig一个关于 Zig 优秀库及资源的协作列表。Makefile00