architecture-samples
是一款通过待办事项(To-Do)业务为出发点,使用Android架构组件实现的一款示例应用,让你快速、简单、方便地将Android架构组件引入到项目中去。这个项目中的应用程序旨在简单到足够快速理解,但又复杂到能展示困难的设计决策和测试场景。
这些示例展示了在开发Android应用程序时使用不同架构方法的实现方式。每个示例都是为了帮助开发人员更好地理解如何构建可扩展的应用程序。
一个分支示例使用了Jetpack Compose来构建用户界面。它采用了单Activity架构,并使用了Navigation Compose来进行界面间的导航。在这个分支中,应用程序的界面由Compose屏幕和每个屏幕对应的ViewModel组成。通过使用Flow和协程,可以实现响应式的用户界面和异步操作。
数据层包括一个仓库和两个数据源。一个数据源使用Room作为本地数据源,另一个是伪造的远程数据源。这样设计的目的是为了方便开发和测试,有助于在不同环境下进行开发和调试。
此外,还提供了两种产品风格:mock和prod。这意味着您可以根据需要选择不同的产品风格来进行开发和测试。
为了确保应用程序的质量,项目还提供了多种测试。包括单元测试、集成测试和端到端测试。其中,共享测试可以在模拟器或设备上运行。这些测试的目的是检查应用程序在各种情况下的行为是否符合预期。
最后,为了方便依赖管理,项目使用了Hilt进行依赖注入。这可以提高代码的可维护性和可扩展性。
总之,Android Architecture Samples提供了多个实例,展示了不同的架构方法。通过学习这些示例,开发人员可以更好地理解如何构建可扩展的Android应用程序,并选择适合自己项目需求的架构方式。
该项目在不同的存储库分支中托管了每个示例应用程序。想了解更多信息,请查看每个分支中的README.md文件。
稳定Kotlin示例分支如下:
示例 | 描述 |
---|---|
main | 这个分支是主分支。 |
service-locator | 一个简单的设置,使用服务定位器代替Hilt。 |
livedata | 使用LiveData作为数据流解决方案,而非StateFlow。 |
usecases | 添加了一个新的领域层,使用UseCases处理业务逻辑(尚未使用Compose)。 |
views | 使用Views而非Jetpack Compose来渲染UI元素。 |
views-hilt | 同时使用Views和Hilt。 |
以下是不同类型的示例应用程序以及推荐的替代选项:
https://github.com/android/architecture-templates
https://github.com/android/compose-samples
https://github.com/googlesamples/android-sunflower
https://github.com/googlesamples/android-architecture-components/tree/master/GithubBrowserSample
https://github.com/android/nowinandroid
https://github.com/android/architecture-samples