基于 Kotlin + Jetpack Compose 的 Android 完整电商开源项目分享

12,844 阅读9分钟

基于 Kotlin + Jetpack Compose 的完整电商开源项目分享

🛍️ 一个完全开源免费且功能完善的 Android 电商项目(持续更新维护 最近更新于 2026 年 2 月 4 日)

作为一名 Android 开发爱好者,我在学习 Jetpack Compose 的过程中发现其生态仍有完善空间,因此开发了「青商城」项目。该项目是一个功能完整的电商应用,专为国内开发环境设计,核心电商业务流程已全面完成并可正常使用。项目旨在为社区提供实用的 Compose 代码参考,帮助开发者快速掌握现代 Android 开发技术,同时也能对我所学的知识进行巩固和分享。

🌟 项目亮点

  • 100% Kotlin 开发:全面拥抱现代语言特性
  • Jetpack Compose UI:声明式 UI 框架,开发效率显著提升
  • 模块化架构:参考 Google 官方 Now in Android 最佳实践
  • 完整电商功能:涵盖用户认证、商品展示、购物车、支付、订单等
  • 现代化技术栈:Hilt、Coroutines、Flow、Room 等主流技术
  • 深色模式支持:完整支持浅色/深色/多色主题动态切换,跟随系统自动适配
  • 国际化支持:支持中英文语言切换,便于全球化推广
  • 开源学习:注释完善,并提供完整的接口文档和代码参考,适合学习现代 Android 开发

整体架构参考了 Google 官方的 Now in Android 项目,采用当前主流技术栈实现。项目核心电商功能已全面完成,包括:

  • 完整的用户认证体系
  • 商品展示与搜索分类系统
  • 购物车管理与订单支付流程
  • 订单管理与物流跟踪
  • 收货地址管理与用户足迹
  • 在线客服与反馈系统
  • 基础营销功能

整体电商业务流程完整可用,仅用户资料设置等少数辅助功能待完善(具体状态可查看项目中的功能模块目录)。

这个项目凝聚了我半年多业余时间的全部心血,从代码实现到 UI 设计再到动画效果,都力求打造流畅生动的用户体验。希望能为开发者提供有价值的参考,同时我也提供了完整的接口文档,期待大家的建议与反馈,共同学习进步。

如果项目对您有帮助,请给个 Star 支持 ⭐ 这对我来说很重要,能给我带来长期更新维护的动力!

📱 项目预览

💡 说明:由于功能模块较多,截图不下,这里仅展示部分界面,可下载体验完整功能。

青商城动画演示1 青商城动画演示2 青商城动画演示3 青商城动画演示4 青商城动画演示5
青商城动画演示6 青商城动画演示7 青商城动画演示8 青商城动画演示9 青商城动画演示10

☀️ 浅色模式

青商城应用浅色模式预览1 青商城应用浅色模式预览2 青商城应用浅色模式预览3 青商城应用浅色模式预览4 青商城应用浅色模式预览5

🌙 深色模式

青商城应用深色模式预览1 青商城应用深色模式预览2 青商城应用深色模式预览3 青商城应用深色模式预览4 青商城应用深色模式预览5

🌈 主题

青商城应用主题预览

🌐 国际化

青商城应用国际化预览

📍 项目地址

Demo 下载

🌟 提示:客服聊天和意见反馈功能均为真实可用的,大家给我的留言我每一条都会去看,也会回复,所以不要说我是人机了....

  • Release 版本(推荐 4MB)点击下载体验

    • 为日常使用和体验优化的稳定版本,具有最佳性能和体积。
  • Debug 版本(开发者 19MB)点击下载体验

    • 注意:Debug 版本的包名带有 .debug 后缀,与 Release 版本不同,可以共存安装。
    • 内置工具:集成了 LeakCanary(内存泄漏检测)和 Chucker(网络请求监控)等调试工具。
    • 性能与体积:由于开启了调试功能且未进行代码压缩,此版本性能低于 Release 版本,且 APK 体积更大。
    • 快捷访问:长按桌面图标可快速访问 Leaks(内存泄漏)和 Open Chucker(网络监控)。为确保能接收到 Chucker 的实时网络请求通知,建议开启应用的通知权限。
  • 支持系统:Android 6.0 及以上

  • 更新说明:预览版本会不定时更新,可能不会完全同步最新的代码变更

相关文档

  • 青商城 API 接口文档在线查看

    • 接口文档会随着项目开发进度同步更新,主要包含各接口的请求参数和返回数据示例
  • 脚手架文档在线查看

    • 很多同学希望在青商城的基础上二次开发或基于相同技术栈快速启动业务,我额外准备了一个精简的单模块 Jetpack Compose 空脚手架「AndroidProject-Compose」,并配套了详细文档方便学习。
    • 它只保留基础能力与示例路由,拉仓库即可运行并按需填充业务逻辑,也便于学习架构拆分与模块化落地;青商城的大部分基础能力与文档说明在此同样适用,便于快速上手项目。

🛠️ 技术选型

项目采用了当前 Android 开发的主流技术栈:

核心技术

类别技术选型版本号说明
编程语言Kotlin2.2.21100% Kotlin 开发
UI 框架Jetpack Compose2025.12.01声明式 UI 框架
架构模式MVVM + Clean Architecture-MVVM + Clean 架构
依赖注入Hilt2.57.2基于 Dagger 的依赖注入框架
异步处理Coroutines + Flow1.9.0协程 + Flow 响应式编程

功能模块

类别技术选型版本号说明
导航Navigation Compose2.9.6Compose 导航组件
数据序列化Kotlinx Serialization1.9.0JSON 序列化处理
网络请求Retrofit + OkHttp3.0.0 + 5.3.2HTTP 客户端
图片加载Coil Compose2.7.0图片加载与缓存
动画效果Lottie Compose6.7.1After Effects 动画
权限管理XXPermissions28.0动态权限申请

数据存储

类别技术选型版本号说明
数据库Room2.8.4SQLite 数据库
本地存储MMKV2.3.0高性能键值存储

架构设计

项目采用模块化架构,参考 Google 官方的 Now in Android 最佳实践:

├── app/                   # 应用入口模块
├── build-logic/          # 构建逻辑
├── core/                 # 核心模块
│   ├── common/           # 通用工具和扩展
│   ├── data/             # 数据层
│   ├── database/         # 数据库
│   ├── datastore/        # 数据存储
│   ├── designsystem/     # 设计系统
│   ├── model/            # 数据模型
│   ├── network/          # 网络层
│   ├── result/           # 结果处理
│   ├── ui/               # UI组件
│   └── util/             # 工具类
├── feature/              # 功能模块
│   ├── auth/             # 认证模块
│   ├── common/           # 公共模块
│   ├── cs/               # 客服模块
│   ├── feedback/         # 反馈模块
│   ├── goods/            # 商品模块
│   ├── launch/           # 启动模块
│   ├── main/             # 主模块
│   ├── market/           # 营销模块
│   ├── order/            # 订单模块
│   └── user/             # 用户模块
└── navigation/           # 导航模块

模块化的优势:

  • 🔧 职责分离:降低模块间耦合,提高代码可维护性
  • 👥 并行开发:支持团队协作,提升开发效率
  • 增量编译:显著提升构建速度,优化开发体验
  • 🧪 便于测试:模块化设计便于单元测试和功能验证

功能模块目录

注:文档更新可能略滞后于代码开发进度,最新状态请查看项目中的 README.md 文件。

状态说明:

  • 已完成 - 功能页面已完整实现并可以正常使用
  • 待完善 - 功能页面基本实现,但还需要进一步优化和完善
  • 待优化 - 功能页面已实现,但需要性能优化或体验优化
  • 仅页面 - 只完成了页面UI,功能逻辑尚未实现
  • 待开发 - 功能页面尚未开发,陆续实现中
  • 主模块 (main)

    • 首页 (home) 已完成
    • 分类 (category) 已完成
    • 购物车 (cart) 已完成
    • 我的 (me) 已完成
  • 认证模块 (auth)

    • 登录主页 (login) 已完成
    • 账号密码登录 (account-login) 已完成
    • 注册页面 (register) 已完成
    • 找回密码 (reset-password) 仅页面
    • 短信登录 (sms-login) 已完成
  • 用户体系模块 (user)

    • 个人中心 (profile) 仅页面
    • 收货地址列表 (address-list) 已完成
    • 收货地址详情 (address-detail) 已完成
    • 用户足迹 (footprint) 已完成
  • 订单模块 (order)

    • 订单列表 (list) 已完成
    • 确认订单 (confirm) 已完成
    • 订单详情 (detail) 已完成
    • 订单支付 (pay) 已完成
    • 退款申请 (refund) 已完成
    • 订单评价 (comment) 已完成
    • 订单物流 (logistics) 已完成
  • 商品模块 (goods)

    • 商品搜索 (search) 已完成
    • 商品详情 (detail) 已完成
    • 商品评价 (comment) 已完成
    • 商品分类页面 (category) 已完成
  • 营销模块 (market)

    • 优惠券管理 (coupon) 已完成
  • 客服模块 (cs)

    • 客服聊天 (chat) 待完善
  • 反馈模块 (feedback)

    • 反馈列表 (list) 已完成
    • 提交反馈 (submit) 已完成
  • 通用模块 (common)

    • 关于我们 (about) 仅页面
    • WebView 页面 (web) 已完成
    • 应用设置 (settings) 仅页面
    • 用户协议 (user-agreement) 已完成
    • 隐私政策 (privacy-policy) 已完成
    • 贡献者列表 (contributors) 已完成
  • 启动流程模块 (launch)

    • 启动页 (splash) 已完成
    • 引导页 (guide) 已完成

🚀 开发计划

这是一个纯粹由个人热情驱动的开源项目。作为一名全职开发者,我只能在工作之余的时间来维护它,每一行代码都凝聚着我下班后和周末的心血。尽管时间有限,我仍然希望通过这个项目创建一个完整的电商学习案例,它更适合作为学习参考而非商业应用,因为某些方面还未达到商业级水准。我的目标是为其他开发者提供一个学习现代 Android 开发技术的实践平台。

由于时间和精力的限制,项目的更新节奏可能不会很快,但我会坚持长期投入,一步一步地完善每个功能模块。如果你有兴趣参与贡献,无论是代码、设计还是文档方面,都将非常欢迎!

📱 Android 版本(当前)

  • 技术栈: Kotlin + Jetpack Compose + MVVM
  • 架构特点: 模块化设计 + Clean Architecture

🌟 鸿蒙版本(开发中)

🤝 参与贡献

欢迎所有对 Android 开发感兴趣的朋友参与项目贡献!

  • 🐛 Bug 反馈:发现问题请提交 Issue
  • 💡 功能建议:有好的想法欢迎讨论
  • 🔧 代码贡献:提交 Pull Request 改进项目
  • 📖 文档完善:帮助改进项目文档

如果这个项目对你有帮助,请不要忘记给个 ⭐ Star 支持一下!这对我来说意义重大,也是我持续更新的动力源泉。

让我们一起在 Android 开发的道路上不断学习、共同进步!