简单易用的 Jetpack Compose 快速开发框架,以Compose的方式实现功能. 如果觉得对您有帮助,请为项目点个star,感谢!
Quickly-Use-Jetpack-Compose 使用了大部分架构组件,但并没有完全遵守官方架构指南.
- 模块化,多module,插件化管理依赖.
- 依赖注入,使用hilt进行依赖注入.
- 单Activity架构,使用Navigation进行导航.
- Compose+ViewModel+Flow(MVI),使用协程进行异步操作的反应式ui.
自定义的设计系统,不使用M3的风格,按WX的UI风格设计的一套ui系统,有白天和夜间两种颜色模式.
- 竖屏以375宽度适配屏幕,横屏不适配正常显示.
- WeTheme: 替代MaterialTheme.
- WeColorScheme: 定义颜色.
- WeTypography: 定义字体.
- WeIndication: 定义点击效果,仿WX点击效果.
- WeDimen: 定义尺寸.
- WeIcons: 使用ImageVector绘制图标.
- WeWidget: 实现WX风格的组件,如顶部导航,底部导航,Button,Toast,ActionSheet,单选,多选,开关等组件.
- app: 程序的入口,把各个module关联起来,组成一个完整的app.
- build-logic: 自定义的插件都放在这里,统一管理依赖.
- core-logic: 数据处理,与本地数据库或远程服务器交互.
- core-ui: 设计系统,不一定按照M3的设计风格,可以自定义设计系统,编写通用的UI组件.
- feature: 功能模块,按程序功能分成多个module,每个module都由Screen,ViewModel,Navigation组成.
- res: 资源文件,统一管理图片,文字等资源文件.
- firebase: 埋点,崩溃分析,推送.
- ktor: 序列化,ViewModel+Flow,等待响应,异常处理.
- google登录: CredentialManager添加登录选项.
- 离线可用: 优先从Room数据库获取数据,网络获取数据后更新到数据库.
- ai聊天: 接入Google Ai模仿微信的聊天效果,联系人列表,聊天消息推送等.
- 焦点控制: 点击焦点,键盘输入焦点控制,简化用户操作.
- 动态切换logo: 比如双十一活动需要修改logo,但是又不想更新包.
- 获取定位: 针对粗略和精准的权限,使用不同的方式获取定位.
- launcher: 不需要申请权限的情况下,选择相册,拍摄照片,选择通讯录.
- 自定义日历: 使用Calendar获取时间,完全自定义日历.
- 滑动嵌套: 处理compose中的滑动嵌套问题.
- Lazy列表排序: 长按后拖动,对列表进行排序.
- 生物认证: 通过指纹或锁屏密码进行生物认证.
- 绘画画板: 选择线条宽度和颜色,绘制到屏幕上.
保证最新版Android Studio可用,但不保证旧版可用.
在Android Studio更新时,项目也会更新,我会持续把学到的新知识更新到本仓库.
密钥文件存放在根目录的keystore目录中.
密钥配置在ApplicationConventionPlugin.kt文件中.
使用了productFlavors,可以在Build Variant中选择不同的打包信息.
bundleRelease打包aab.
assembleRelease打包apk.
例子 | 截图 |
---|---|
定位、图片、联系人 | |
绘画画板 | |
Lazy列表排序 | |
自定义日历 | |
动态切换logo | |
Ai聊天,推送 | |
网络异常处理 | |
轮播图 | |
组件示例 |