一个基于 Android Jetpack Compose 的音乐偏好与个人档案编辑应用。支持头像设置、基础信息填写、音乐类型与情感偏好选择,并提供本地持久化与 JSON 导入导出能力。
适合学习与实践现代 Android(Kotlin + Compose + MVVM)开发范式。
- 👤 个人档案
- 用户名、性别、生日等基础信息
- 头像设置:相机拍摄或本地图片选择
- 🎼 音乐偏好
- 多类型选择:民谣、ACG、说唱、流行、爵士、古典、电子等
- 情感强度调节:个性化音乐情感偏好
- 💾 数据与存储
- 本地数据库:Room 持久化存储
- JSON 导入导出:便捷备份/迁移(含剪贴板集成)
- 🖱️ 交互与体验
- Material Design 3 风格
- 页面切换动画、直观反馈、响应式布局
- 🔄 使用流程
- 欢迎页(检测本地数据)
- 编辑档案
- 查看主页信息
- 语言与框架:Kotlin、Jetpack Compose、Navigation Compose
- 架构与状态:MVVM、单 Activity、ViewModel、StateFlow + Compose State
- 数据层:Room(SQLite)、Moshi / Kotlinx Serialization、Type Converters
- 媒体与权限:CameraX / Camera2、Coil、Accompanist Permissions
- 异步与生命周期:Kotlin Coroutines、Lifecycle-aware Components
- 最低 Android 版本:API 30+(Android 11+)
- 编译/目标 SDK:建议使用最新稳定版本
- 开发工具:Android Studio(建议使用最新稳定版)
- Kotlin 版本:1.9.0+(或与项目 Gradle 配置一致)
项目使用 Version Catalog 管理核心依赖,常用包括:
- Jetpack Compose BOM
- Room
- Navigation Compose
- CameraX / Camera2
- Coil
- Kotlinx Serialization / Moshi
- Kotlin Coroutines
依赖版本以 gradle/libs.versions.toml(或项目实际版本清单)为准。
目录与命名可能因版本调整略有差异,下列为典型组织方式。
app/
└─ src/main/java/…/
├─ MainActivity.kt # 单 Activity 入口
├─ navigation/ # Navigation 图与路由
├─ model/ # 数据模型(UserProfile 等)
├─ data/ # 数据层(Room、DAO、Converters、Json 工具)
├─ ui/
│ ├─ page/ # 主页、欢迎页等
│ ├─ edit/ # 编辑页面(头像、偏好、基础信息)
│ └─ theme/ # 主题与样式
└─ viewmodel/ # ViewModel 与状态管理
- 用户数据默认保存在本地(Room)
- 支持 JSON 导入/导出用于备份与迁移
- 请谨慎处理导出的 JSON,避免泄露敏感信息
以现代 Android 技术栈构建,专注优雅的编辑体验与良好的架构实践。🎵