Repolode
igorwojda

igorwojda/android-showcase

一个用 Kotlin 编写的 Android 参考应用,展示 Clean Architecture、模块化功能设计与 Gradle 约定插件的实践。

Star
6,807
Fork
901
未关闭 Issue
7
最近提交
24小时前

这是什么?

Android Showcase 是一个使用 Jetpack Compose 构建的示例 Android 应用,通过 Last.fm API 展示专辑信息,支持搜索、专辑详情,并借助 Room 做本地缓存。它的主要目的是演示生产级 Android 代码库的组织方式,而不是作为成品消费类应用。收藏和个人资料页面目前仍在开发中。

项目将应用拆分为多个功能模块(专辑、个人资料、收藏),加上共享的基础模块和库模块。每个功能模块都遵循 presentation、domain、data 三层的 Clean Architecture 结构,并结合 MVVM 与基于 Kotlin Flow 的 MVI 风格单一 UI 状态。构建逻辑封装在约定插件中,依赖版本通过 Gradle Version Catalog 统一管理。

质量工具链也是项目的一部分,包括 Konsist 架构测试、Detekt、Ktlint、Spotless、Android Lint,以及 GitHub Actions CI 流水线。依赖注入使用 Koin,网络与图片加载分别使用 Retrofit 和 Coil,测试则基于 JUnit、Mockk 和 Kluent。

核心功能

  • 01基于 Last.fm API 的专辑列表(支持搜索)与专辑详情页
  • 02功能模块采用三层 Clean Architecture,结合 MVVM 与 MVI 风格的状态管理
  • 03通过 Gradle 约定插件和版本目录统一构建配置与依赖
  • 04集成 Konsist、Detekt、Ktlint、Spotless 和 Android Lint 等质量检查
  • 05使用 Room 做本地缓存,Koin 做依赖注入,界面基于 Compose

适用场景

  • 学习如何用 Clean Architecture 组织多模块 Android 应用
  • 参考其 Gradle 约定插件和版本目录,搭建新的 Android 项目
  • 查看使用 Konsist 编写架构测试及静态分析配置的示例
  • 了解 Jetpack Compose、Flow 与 Koin 在类应用项目中如何协作

使用前须知

  • 收藏和个人资料功能仍在开发中。
  • Espresso UI 测试仍在开发中。

收录于专题

标签

常见问题

android-showcase 是什么?
一个用 Kotlin 编写的 Android 参考应用,展示 Clean Architecture、模块化功能设计与 Gradle 约定插件的实践。 Android Showcase 是一个使用 Jetpack Compose 构建的示例 Android 应用,通过 Last.fm API 展示专辑信息,支持搜索、专辑详情,并借助 Room 做本地缓存。它的主要目的是演示生产级 Android 代码库的组织方式,而不是作为成品消费类应用。收藏和个人资料页面目前仍在开发中。
android-showcase 可以免费使用吗?用的什么许可证?
android-showcase 以 MIT 许可证开源。用于商业产品前,请先确认许可证条款。
android-showcase 还在维护吗?
活跃维护中。android-showcase 最近一次提交是在 2026年11月6日。
android-showcase 适合用来做什么?
学习如何用 Clean Architecture 组织多模块 Android 应用 参考其 Gradle 约定插件和版本目录,搭建新的 Android 项目 查看使用 Konsist 编写架构测试及静态分析配置的示例 了解 Jetpack Compose、Flow 与 Koin 在类应用项目中如何协作
在哪里获取 android-showcase?
源代码和安装说明在 GitHub 上:https://github.com/igorwojda/android-showcase

概要由 AI 根据项目 README 生成;GitHub 数据每日更新。

相关项目