基于 Jetpack Compose 构建的现代化动植物科普社交应用
「生灵集」Android 客户端是一款专注于动植物科普和自然探索的社交应用,采用全新的 Jetpack Compose UI 框架开发,提供流畅、美观的用户体验。应用融合了社交分享、知识学习和互动问答等功能,让用户在探索自然奥秘的同时,也能与志同道合的自然爱好者交流互动。
应用采用 MVVM (Model-View-ViewModel) 架构模式,结合 Jetpack 组件库,实现了清晰的关注点分离:
app/
├── ui/ # 视图层 (Compose UI)
│ ├── common/ # 通用 UI 组件
│ ├── home/ # 首页相关界面
│ ├── search/ # 搜索相关界面
│ ├── publish/ # 发布内容界面
│ └── mine/ # 个人中心界面
├── data/ # 数据层
│ ├── model/ # 数据模型
│ ├── repository/ # 数据仓库
│ └── api/ # API 接口定义
├── network/ # 网络层
│ └── RetrofitClient.kt # Retrofit 网络客户端
└── utils/ # 工具类
- UI 框架:Jetpack Compose
- 状态管理:ViewModel + LiveData + Compose State
- 网络请求:Retrofit2 + OkHttp3
- 图片加载:Coil 3.0 + Glide 4.15
- 视频播放:Media3 ExoPlayer 1.5.0
- 异步处理:Kotlin Coroutines
- 相机功能:CameraX 1.5.0-alpha03
- 状态栏沉浸:ImmersionBar 3.2.2
- 瀑布流布局:使用
LazyVerticalStaggeredGrid实现高效的瀑布流内容展示 - 自定义视图:包含多种自定义 Compose 组件,如动画加载指示器、多状态按钮等
- 动画效果:丰富的过渡动画和交互反馈,提升用户体验
- 主题定制:支持浅色/深色主题,以及动态颜色系统
- 下拉刷新:集成 Material 3 的
PullToRefreshContainer组件 - 滑动冲突处理:优化嵌套滚动体验
- 吸顶效果:实现滚动时的内容吸顶效果
- 手势识别:支持复杂的触摸手势操作
- 动植物科普:丰富的动植物知识内容展示
- 互动问答:趣味性的自然知识问答和测验
- 物种图鉴:分类展示各类动植物信息
- 内容发布:支持图文、视频等多媒体内容发布
- 互动系统:评论、点赞、收藏等社交互动功能
- 关注机制:用户关注与粉丝系统
- 个人主页:展示用户发布的内容和收藏
![]() |
![]() |
![]() |
![]() |
![]() |
![]() |
- Android Studio Hedgehog | 2023.1.1 或更高版本
- JDK 11 或更高版本
- Android SDK 35
- Gradle 8.4 或更高版本
- 克隆仓库
git clone https://github.com/poboll/shenglingji-android.git-
在 Android Studio 中打开项目
-
同步 Gradle 文件
-
构建并运行应用
./gradlew build应用默认连接到本地开发服务器:
// RetrofitClient.kt
private const val BASE_URL_EMULATOR = "http://10.0.2.2:3000/api/"
private const val BASE_URL_DEVICE = "http://192.168.1.100:3000/api/"可以根据实际环境修改 BASE_URL_DEVICE 地址。
- 组合优先:充分利用 Compose 的组合模式,构建可重用的 UI 组件
- 单向数据流:采用现代化的状态管理方式,确保 UI 状态的一致性
- 声明式 UI:使用声明式方法构建复杂界面,减少样板代码
- 懒加载:使用
LazyColumn和LazyVerticalStaggeredGrid实现高效列表 - 图片优化:结合 Coil 的内存缓存和磁盘缓存策略
- 视图复用:优化 Compose 重组范围,减少不必要的重绘
- 模块化设计:功能模块清晰分离,便于维护和扩展
- 一致的编码风格:遵循 Kotlin 官方编码规范
- 注释完善:关键代码和复杂逻辑配有详细注释
欢迎参与项目开发,提交 Pull Request 或提出 Issue!
- Fork 本仓库
- 创建你的特性分支 (
git checkout -b feature/amazing-feature) - 提交你的更改 (
git commit -m 'feat: add some amazing feature') - 推送到分支 (
git push origin feature/amazing-feature) - 开启一个 Pull Request
本项目采用 MIT 许可证 - 详情请参阅 LICENSE 文件
使用 Jetpack Compose 构建的现代化 Android 应用





