Compose 教学项目

Compose 教学项目

本文档汇总 MyFirstCompose 项目涉及的所有学习参考资料。

Gitee 仓库项目地址: 点击查看


官方文档

资料 链接
Jetpack Compose 官方文档 https://developer.android.com/develop/compose
Compose API 参考 https://developer.android.com/reference/kotlin/androidx.compose
Navigation Compose https://developer.android.com/develop/compose/navigation
Material3 设计指南 https://developer.android.com/develop/ui/views/components/material3

项目依赖版本

toml 复制代码
# gradle/libs.versions.toml
[versions]
agp = "8.11.2"
kotlin = "2.0.21"
composeBom = "2024.09.00"
lifecycleRuntimeKtx = "2.10.0"
activityCompose = "1.13.0"
lifecycleViewmodelCompose = "2.10.0"
navigationCompose = "2.7.7"
retrofit = "2.9.0"
coil = "2.6.0"
coroutines = "1.7.3"

核心依赖:

  • androidx.compose.bom:compose-bom:2024.09.00 --- Compose 版本统一管理
  • androidx.navigation:navigation-compose:2.7.7 --- 导航
  • com.squareup.retrofit2:retrofit:2.9.0 --- 网络请求
  • io.coil-kt:coil-compose:2.6.0 --- 图片加载

架构设计参考

主题 说明
MVVM 架构 ViewModel 管理 UI 状态,Composable 只负责渲染
sealed UiState Loading/Success/Error 三状态统一处理
Repository 模式 数据来源统一管理,网络/本地/缓存分层
单向数据流 用户操作 → ViewModel → UI 重组
StateFlow + collectAsState 响应式状态观察

关键技术点

1. Composable 函数

  • @Composable 标记 UI 构建函数
  • Modifier 配置布局/样式/交互
  • @Preview 支持 Android Studio 实时预览

2. ViewModel

  • viewModel() 委托创建,自动关联生命周期
  • viewModelScope.launch 开启协程
  • MutableStateFlow 内部写,StateFlow 对外暴露
  • NavHost + composable 注册页面
  • navigate() 跳转,popBackStack() 返回
  • arguments 声明路由参数

4. 网络与数据

  • suspend 挂起函数用于协程
  • RetrofitManager 单例管理 Retrofit
  • ArticleRepository 同时负责网络获取与内存缓存

项目文件索引

复制代码
app/src/main/java/com/example/myfirstcompose/
├── MainActivity.kt                    # 入口
├── navigation/
│   ├── AppNavGraph.kt                 # 导航图
│   └── AppRoutes.kt                  # 路由常量
├── data/
│   ├── api/
│   │   ├── ApiService.kt             # Retrofit 接口
│   │   └── RetrofitManager.kt       # Retrofit 单例
│   ├── model/
│   │   ├── ArticleBean.kt           # 商品数据模型
│   │   ├── ProductListResponse.kt   # API 响应
│   │   └── ProfileUser.kt           # 用户数据模型
│   └── repository/
│       ├── ArticleRepository.kt     # 文章仓库(网络+缓存)
│       └── ProfileRepository.kt     # 用户仓库(本地)
├── ui/
│   ├── component/
│   │   ├── ArticleItem.kt           # 列表项卡片
│   │   ├── ArticleImage.kt          # 图片组件
│   │   ├── BannerView.kt            # 轮播图
│   │   └── ProfileAvatar.kt         # 头像组件
│   ├── page/
│   │   ├── home/                    # 首页模块
│   │   ├── profile/                # 个人中心模块
│   │   └── detail/                 # 详情页模块
│   └── theme/                       # Material3 主题

延伸学习资源

资源 链接
Google Codelabs - Compose 基础 https://developer.android.com/codelabs/jetpack-compose-basics
Compose 中的动画 https://developer.android.com/develop/ui/compose/animation/introduction?hl=zh-cn
官方 Navigation 样例 https://developer.android.com/develop/ui/compose/navigation
Retrofit 官方文档 https://square.github.io/retrofit/
Coil 图片加载 https://coil-kt.github.io/coil/compose/

学习路径建议

第一阶段:环境搭建 + Compose 基础

第一章:项目概述与环境搭建
第二章:Compose入门---声明式UI编程

第二阶段:架构与状态管理

第三章:MVVM架构与ViewModel
第七章:状态管理实战与架构总结

第三阶段:导航与数据层

第四章:NavigationCompose页面导航
第五章:数据层---网络请求与Repository

第四阶段:UI 组件与实战

第六章:UI组件与Material3主题

相关推荐
晓梦林1 小时前
ximai靶场学习笔记
android·笔记·学习
十六年开源服务商6 小时前
2026服务器配置优化与WordPress运维实战指南
android·运维·服务器
音视频牛哥7 小时前
大牛直播SDK(SmartMediaKit)Android平台Unity3D RTSP/RTMP播放器集成实践
android·unity3d·rtsp播放器·rtmp播放器·unity3d rtmp播放器·安卓unity rtsp播放器·安卓unity rtmp播放器
w1wi7 小时前
安卓抓包完全指南(一):从入门到 SSL Pinning 绕过
android·网络协议·ssl
aqi009 小时前
一文理清 HarmonyOS 6.0.2 涵盖的十个升级点
android·华为·harmonyos·鸿蒙·harmony
赏金术士10 小时前
Jetpack Compose 状态提升(State Hoisting)完全指南
android·kotlin·compose
BoomHe11 小时前
git Rebase 为任意一笔提交补上 Change-Id
android·git·android studio
TDengine (老段)11 小时前
TDengine 超级表/子表/普通表 — 设计理念与内部表示
android·大数据·数据库·物联网·时序数据库·tdengine·涛思数据