Isle
引言
Isle 是Android 应用开发架构模板,基于组件化结合mvvm和mvi的特性设计搭建,从扩展,编译、复用、协作开发等多个方面考虑。
- 扩展:组件化项目,且基于dagger工厂设计模式的搭建可自由扩展组合获取指定的功能,整体的结构性决定了项目的可维护性。
- 复用:组件化开发中,多个组件常常会遇到写一样的功能代码,大致可以划分为 数据的获取 和 View的功能的扩展,
- 数据复用:再此架构中,将接口,数据等有关数据获取的单独抽离成为一个模块组件提供业务组件使用,独立的运行测试,数据模拟,在开发中不仅可以用作快速调,暴力测试,也可提供其他需要的同事使用参考。
- view功能复用,项目采用databing,基于databind 中的 @BindingAdapter注解,视图扩展的功能可依据需求作用于整个项目。
- 编译:常规情况下随着项目的不断叠加,运行所需要的编译时间逐渐增加,作者参与的项目,一个简单的修改,编译验证耗时10~30分钟。当前架构中,每个业务组件都是独立运行,可以达到完全的环境隔离。
- 协作:基于组件化架构本身的特性,可以有较为清晰的任务分配,组件功能完成之后可以打包成项目需要的组件依赖包,版本的管理,减少代码冲突的影响。
项目地址
gitee 项目开源地址 完全开源欢迎大家使用借鉴,以及提出问题
架构介绍
基于dagger构建分割体系,管理对应的页面以及数据,架构整体划分三层:
- 框架层:常用工具、主题、权限等一些列的常用操作,包含页面的数据交互,页面管理等一系列操作方案,其框架模块可单独开发调试,扩展及测试不同的功能。
- 数据层:主要正对数据的来源,网络请求的接口,本地缓存数据,本地数据库等一些列来源定义,以提供不同的模块进行调用,完全的复用、隔离、测试,标准化接入。
- 业务层:依赖于框架层和数据层提供的交互方式和数据,只需关系UI样式和交互,开发过程中针对不同的业务和功能独立划分进行开发编译,如登录模块、配置模块、主页模块…等。
目录介绍
1. 模块说明
2. 接口开发测试
API 的定义使用 OkHttp 和 Retrofit 结合dagger 进行碎片化拆分,可以根具不同的接口服务需求自由组合
3. 框架以及功能开发参考示例
4. 业务组件开发示例
配置介绍
1. 运行环境:
- jdk 11
- gradle-7.2
2. 模块打包:
模块打包采用 maven_plugin 2.0