一个 Android 工具库,封装 300 多个工具类与 API 调用,按功能拆分为多个 Dev 系列模块。
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 数据每日更新。
相关项目
谷歌提供的 TODO 应用示例,通过多个分支对比 Android 架构模式、工具与测试方法。
一款完全使用 Kotlin 和 Jetpack Compose 构建的 Android 参考应用,用于跟进 Android 开发动态。
一个基于 Kotlin 的 Android 主动降噪引擎,用 FFT 检测低频嗡鸣并播放反相声波进行抵消。
开源 Android 音乐识别应用,调用 AudD、ACRCloud 和 Shazam 识别周围播放的歌曲。
一个基于 .NET 9 的分步示例项目,演示健身房系统如何从单体逐步演进为模块化单体、微服务并应用战术 DDD。