写点什么

Jetpack Compose 架构分层

用户头像
Changing Lin
关注
发布于: 47 分钟前
Jetpack Compose 架构分层

Jetpack Compose 不是一个单体式项目;它由一些模块构建而成,这些模块组合在一起,构成了一个完整的堆栈。通过了解组成 Jetpack Compose 的不同模块,您可以:

  • 使用适当的抽象级别来构建应用或库

  • 了解何时可以“降级”到较低级别,以获取更多的控制权或更高的自定义程度

  • 尽可能减少依赖项


1.层

Jetpack Compose 的主要层包括:Material->Foundation->UI->Runtime


  • 运行时

此模块提供了 Compose 运行时的基本组件,例如 remember、mutableStateOf、@Composable 注解和 SideEffect。如果您只需要 Compose 的树管理功能,而不需要其界面,则可以考虑直接基于此层进行构建。

  • 界面

界面层由多个模块(ui-text、ui-graphics 和 ui-tooling 等)组成。这些模块实现了界面工具包的基本组件,例如 LayoutNode、Modifier、输入处理程序、自定义布局和绘图。如果您只需要用到界面工具包的基本概念,则可以考虑基于此层进行构建。

  • 基础

此模块为 Compose 界面提供了与系统无关的构建块,例如 Row 和 Column、LazyColumn、特定手势的识别等。您可以考虑基于基础层构建自己的设计系统。

  • Material

此模块为 Compose 界面提供了 Material Design 系统的实现,同时提供了一个主题系统、样式化组件、指示器和图标。在您的应用中使用 Material Design 时,不妨基于此层进行构建。


2.设计原则

Jetpack Compose 的一个指导准则是提供可以组合在一起的重点突出的小块功能片段,而不是几个单体式组件。

  • 控制

更高级别的组件往往能完成更多操作,但会限制您有多少直接控制权。如果您需要更多控制权,可以通过“降级”使用较低级别的组件。

  • 自定义

通过将较小的构建块组合成更高级别的组件,按需自定义组件的难度要小的多。

  • 选择合适的抽象化级别

Compose 构建可重复使用的分层组件的理念意味着您不应该始终以构建较低级别的构建块为目标。许多较高级别的组件不仅能够提供更多功能,而且通常还会实施支持无障碍功能等最佳做法。

一般来讲,最好基于能提供您所需功能的最高级别的组件进行构建,以便从其包含的最佳做法中受益。

发布于: 47 分钟前阅读数: 5
用户头像

Changing Lin

关注

获得机遇的手段远超于固有常规之上~ 2020.04.29 加入

我能做的,就是调整好自己的精神状态,以最佳的面貌去面对那些未曾经历过得事情,对生活充满热情和希望。

评论

发布
暂无评论
Jetpack Compose 架构分层