1.官方应用架构指南
1.1架构的原则
应用架构定义了应用的各个部分之间的界限以及每个部分应承担的职责。谷歌建议按照以下原则设计应用架构。
分离关注点
通过数据模型驱动界面
单一数据源
单向数据流
1.2谷歌推荐的应用架构
每个应用应至少有两个层:
界面层 - 在屏幕上显示应用数据。
数据层 - 包含应用的业务逻辑并公开应用数据。
可以额外添加一个名为“网域层”的架构层,以简化和重复使用界面层与数据层之间的交互。
总结下来,我们的应用架构应该有三层:界面层、网域层、数据层。
其中网域层可选,即无论你的应用中有没有网域层,与你的应用架构是 MVVM 还是 MVI 无关。
1.2.1界面层架构设计指导
1.2.1.1界面层在架构中的作用
界面的作用是在屏幕上显示应用数据,并充当主要的用户互动点。
从数据层获取是业务数据,有时候需要界面层将业务数据转换成 UI 数据供界面元素显示。
1.2.1.2 界面层的组成
界面层由以下两部分组成:
界面元素:在屏幕上呈现数据的界面元素可以使用 View 或 Jetpack Compose 函数实现。
状态容器:用于存储数据、向界面提供数据以及处理逻辑的状态容器(如 ViewModel 类)。
1.2.1.3界面层的架构设计遵循的原则
这里以一个常见的列表页面为案例进行讲解,这个列表页面有以下交互:
打开页面时,网络数据回来之前展示一个加载中 view。