# AndroidComposeDemo **Repository Path**: jebysun/android-compose-demo ## Basic Information - **Project Name**: AndroidComposeDemo - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: dev - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-08-11 - **Last Updated**: 2026-09-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Android Compose Demo 这是一个基于 Jetpack Compose 的 Android 示例项目,展示了现代 Android 开发的最佳实践。 ## 功能特点 - **Jetpack Compose UI**: 使用声明式 UI 框架构建界面 - **MVVM 架构**: 清晰的职责分离,ViewModel 负责业务逻辑 - **状态管理**: 使用 StateFlow 实现响应式状态管理 - **网络请求**: 基于 Retrofit + OkHttp 的网络层封装 - **Material 3 主题**: 支持浅色/深色模式及动态颜色(Android 12+) - **协程支持**: 异步操作基于 Kotlin 协程实现 ## 项目结构 ``` app/src/main/java/com/jebysun/composedemo/ ├── MainActivity.kt # 主界面 ├── MainViewModel.kt # 主界面 ViewModel ├── entity/ │ ├── DemoEntity.kt # 应用版本实体 │ └── GoodsEntity.kt # 商品实体 ├── list/ │ ├── GoodsListActivity.kt # 商品列表页面 │ └── GoodsListViewModel.kt# 商品列表 ViewModel ├── network/ │ ├── ApiResponse.kt # 统一响应封装 │ ├── ApiService.kt # API 接口定义 │ └── NetworkClient.kt # 网络客户端配置 └── ui/theme/ ├── Color.kt # 颜色定义 ├── Theme.kt # 主题配置 └── Type.kt # 字体排版 ``` ## 核心技术栈 | 技术 | 说明 | |------|------| | Kotlin | 开发语言 | | Jetpack Compose | 声明式 UI 框架 | | Retrofit | HTTP 客户端 | | OkHttp | 网络请求库 | | Kotlinx Serialization | JSON 序列化 | | Coroutines | 异步编程 | | ViewModel | UI 状态管理 | | StateFlow | 响应式状态流 | ## 快速开始 ### 环境要求 - Android Studio Hedgehog (2023.1.1) 或更高版本 - JDK 17 或更高版本 - Android SDK 21+ ### 构建项目 ```bash # 克隆项目 git clone https://gitee.com/jebysun/android-compose-demo.git # 使用 Android Studio 打开 # 或者使用命令行构建 ./gradlew assembleDebug ``` ## 核心功能演示 ### 1. 状态管理示例 ```kotlin // MainViewModel.kt - 封装 UI 状态 sealed class MainUiState { object Loading : MainUiState() data class Success(val data: DemoEntity) : MainUiState() data class Error(val message: String) : MainUiState() } ``` ### 2. Compose 界面组件 ```kotlin @Composable fun GreetingState(uiState: MainUiState, modifier: Modifier = Modifier) { when (uiState) { is MainUiState.Loading -> Loading() is MainUiState.Success -> Greeting(uiState.data.versionName) is MainUiState.Error -> ErrorMessage(uiState.message) } } ``` ### 3. 网络请求 ```kotlin // 定义 API 接口 interface ApiService { @GET("/cd-jhyb/assets/raw/master/wms/app_version.json") suspend fun getVersion(): Response } ``` ## 版本信息 当前项目使用 Gradle 9.5.x 版本管理,构建配置位于 `build.gradle.kts` 文件中。 ## 许可证 本项目仅供学习参考使用。