43.5k star Android架构最佳实践项目

43.5k star Android架构最佳实践项目

简介

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

  • UI / Material Design 示例。该应用程序的界面被故意保持简单,以便专注于架构。请查看Compose示例。

https://github.com/android/compose-samples

  • 完整的Jetpack示例,涵盖所有库。请查看Android Sunflower或高级GitHub浏览器示例。

https://github.com/googlesamples/android-sunflower
https://github.com/googlesamples/android-architecture-components/tree/master/GithubBrowserSample

  • 具有网络访问、用户身份验证等功能的真实生产应用程序。请查看Now in Android应用程序。

https://github.com/android/nowinandroid

项目地址

https://github.com/android/architecture-samples