gemini-android 项目介绍
项目概述
Gemini Android 是一个展示谷歌生成式 AI 在 Android 上应用的示例项目,结合了 Stream Chat SDK for Compose。这一项目旨在为开发者提供一个参考,帮助他们创建集成了先进技术的 Android 应用程序。
项目目标
- 展示用于 Android 的 Gemini API。
- 完整实现基于 Jetpack Compose 的用户界面元素。
- 使用 Jetpack 库中的 Hilt 和 App Startup 实现 Android 架构组件。
- 借助 Kotlin 协程执行后台任务。
- 集成 Stream Chat Compose SDK,为实时事件处理带来了强大的聊天系统功能。
项目技术内容
该项目注重于如何运用现代 Android 开发技术,架构设计遵循 Google 官方架构指导原则,并采用模块化策略促进代码重用和构建效率。
项目预览
以下是该项目的部分界面预览图,可以帮助用户初步了解应用所包含的功能和用户界面设计风格。
技术栈
- 最低 SDK 版本:21。
- Jetpack Compose:用于构建本机 UI 的现代化工具。
- Kotlin 协程与 Flow:用于异步处理。
- Compose Chat SDK:提供模块化、可定制的 Compose UI 组件。
- Jetpack 组件:包括 ViewModel、App Startup、Navigation、Room、DataStore、Hilt 等。
- 网络请求:使用 Retrofit2 和 OkHttp3 构建 REST API。
- JSON 解析:利用 Moshi 库。
- 图片加载:借助 Landscapist Glide 库。
- 其他工具:借助 Sandwich、Balloon、StreamLog 和 Baseline Profiles 改进性能。
项目架构
Gemini Android 项目遵循层级架构设计,分为 UI 层和数据层。UI 层负责展示和用户交互,数据层则管理数据的获取和存储,实现业务逻辑。
UI 层
UI 层包括用户界面的各个交互元素和使用 ViewModel 承载和恢复界面状态的部分。
数据层
通过数据源和仓库实现业务逻辑,支持离线优先的操作策略,并遵循“单一数据源”原则。
模块化策略
- 重用性:积累可重用的代码模块,提高代码共享性。
- 并行构建:模块可实现并行构建,缩短整体构建时间。
- 分布式关注点:团队可独立开发各自模块,专注于自身职责范围。
贡献指南
虽然大部分功能尚未完成,但欢迎开发者根据贡献指南贡献和改进此项目。
项目许可证
项目由 2024 skydoves (Jaewoong Eum) 设计和开发,依据 Apache 2.0 许可证开放。建议用户阅读完整许可证文本了解详细条款。