# scaffold-module-android **Repository Path**: sunlunchang/scaffold-module-android ## Basic Information - **Project Name**: scaffold-module-android - **Description**: ScaffoldModule是一个Android应用程序框架,方便快速创建一个基于此框架的应用程序 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: master-nav-coroutines-kts - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 2 - **Forks**: 0 - **Created**: 2023-07-19 - **Last Updated**: 2025-12-10 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # ScaffoldModule #### 介绍 ScaffoldModule是一个Android应用程序脚手架,方便快速创建一个基于此脚手架的应用程序 #### 项目架构 基于MVVM模式集成谷歌官方推荐的JetPack组件库:DataBinding、LiveData、ViewModel、Lifecycle、Navigation组件 使用kotlin+Java语言,添加拓展函数,简化代码 加入Retrofit网络请求 配置RxJava、协程,帮你简化各种操作,让你快速请求网络(RxJava和协程都可以使用,暂未完全移除RxJava) 开发大量基础工具类:基础Activity、Fragment、ViewModel、各种基础VmSub(列表、分页列表、详情页、编辑页) 使用Glide加载图片 使用Material3主题 其他第三方库: XXPermissions(权限管理)、BaseRecyclerViewAdapterHelper(RecyclerView适配器)、Anchors(系统启动任务)、auto-service(模块间调用代码)、Android-Utils(适用于Android基础工具类)、hutool(精简适用于Android的hutool工具类) #### 安装教程 1. Android Studio拉取该项目 #### 使用说明 ### 组件模块说明: lib_module: 第三方库和自定义基础工具包 lib_module:fast 快速开发工具包:针对list、page、tab页面提供快速开发代码 lib_module:db_base: 数据库抽象模块 base: 框架基础公共代码:包括网络配置、存储配置、基础代码、基础服务、基础工具类、app主题配置;可在此处编写与项目关联的配置(网络配置、持久化配置等)、基础主题、基础特征页面 feature: 功能模块和业务共享组件模块 feature:attchment: 附件功能模块:如选择照片、视频、预览照片视频、oss存储、媒体文件上传下载公共代码可在此处编写 feature:auth: 认证模块:系统登录相关功能 feature:component: 组件模块:系统内部的常用的轻量组件可在此处编写 feature:location: 位置功能模块:关于定位、地图模块基础功能 feature:welcome: 欢迎页面:系统欢迎页、系统初始化入口 feature:db_objectbox: 基于objectbox数据库模块 feature:db_room: 基于room数据库模块 feature:biz_api: 系统业务模块间共享代码,如共享实体类、共享的接口、共享的内存数据、共享的布局、主题、字符串等 business: 业务模块 business:main: 主界面模块:登录后的主界面模块;小项目不想细分模块时可全部在此模块编写代码 business:user: 用户业务模块:修改密码、用户信息、系统设置等功能可在此处编写,小项目不想细分页面模块时可全部在main编写。 ### gradle配置文件说明: build.gradle.kts: featureConfig(基础配置) :针对feature模块 businessConfig(业务模块配置):针对main、user等 gradle/libs.versions.toml: 统一管理依赖 ### 编写注意事项 如果使用组件化形式编写项目,每个业务组件的共用代码放在feature:biz_api包中(此处这样写就是图方便,标准应该建立每个业务模块的api的module)。 每个业务模块建立自己的config、repository、ui等包,便于管理 请尽量不要在布局文件中直接使用颜色值、字符串,特别是颜色值,Material3提供了丰富的主题,项目开始前base->res->style中配置好系统基础主题、部分控件主题,便于管理,随意使用颜色值可能会导致后期高亮、暗黑主题难以配置。 #### 参与贡献 1. 在路上(slc) #### 待完善 1. 目前协程和RxJava都可以用,后续将完全移除RxJava 2. 使用StateFlow代替LiveData