项目介绍:Android Showcase 2.0
应用范围
Android Showcase 2.0是一个展示音乐专辑信息的简单应用程序。这些数据是通过Last.fm音乐平台API动态提取的。应用程序中包括几个屏幕,分别展示多种功能模块:
- 专辑列表页:显示音乐专辑的列表。
- 专辑详情页:提供所选专辑的详细信息。
- 个人资料页:目前为空,正在开发中。
- 收藏页:目前为空,正在开发中。
技术栈
项目中使用了很多Android生态系统中稳定且流行的库和工具,主要使用的是Kotlin语言:
- Kotlin和其库:使用Kotlin协程处理后台操作,Kotlin Flow用于跨应用程序层的数据流,Kotlin Symbol Processing提供编译器插件支持。
- 网络:使用Retrofit进行网络请求。
- Jetpack组件:采用Compose作为现代化的原生用户界面工具包,Navigation进行应用内的导航,Lifecycle进行生命周期管理,ViewModel管理UI相关数据,Room用于离线缓存数据存储。
- 依赖注入:Koin用于依赖注入。
- 图片加载和动画:Coil和Lottie分别用于图片加载和动画展示。
架构设计
Android Showcase 2.0致力于使用模块化、可扩展、可维护和可测试的架构设计。其中Clean Architecture(干净架构)应用于每个模块,分为呈现层、领域层和数据层:
- 呈现层:负责界面展示,结合MVVM和MVI模式。
- 领域层:应用程序的核心层,负责业务逻辑,与其他层独立。
- 数据层:封装应用数据,负责与网络和本地存储进行数据交互。
依赖管理
项目采用Gradle的版本目录进行第三方依赖的集中化管理,所有依赖都在一个中心位置进行定义和引用,提升了代码管理的便利性。
日志调试
项目通过日志提供调试支持,可以通过关键词(如onCreate
创建的活动和片段、Action
进行的UI更新、Http
网络请求和响应等)来筛选日志,以更好地理解应用流程。
持续集成(CI)和拉取请求验证
项目使用GitHub Actions进行CI,有一系列工作流专用于每次PR的检查,如单元测试、UI测试、代码格式检查等,确保代码质量。
设计决策
为了更好地理解设计决策及其权衡,可以查看项目中相关的文章和资料,例如Clean Architecture的多种定义方式等。
已知问题
项目开发过程中,发现并列举了一些问题。例如,Material You动态色彩无法正确应用于Fragment,以及某些IDE默认格式化规则与ktlint冲突等等。
贡献和授权
欢迎对该项目进行维护和更新,以符合最新的行业标准。同时,项目基于MIT许可证开放,允许用户自由使用、复制和分发。
通过Android Showcase 2.0项目,开发者可以学习和借鉴现代Android开发技术和最佳实践,从而开发出结构良好、可维护的安卓应用程序。