Skip to content

zhangsuixu/SynthesisTool

Repository files navigation

项目介绍

项目采用组件化方式进行(各模块职责描述)

  1. 主UI模块App 增加动态首页,首页通过底部导航栏+若干Fragment的方式实现(首页Fragment动态可配置,同时每个Fragment对应独立UI组件模块)。

  2. 次UI模块以M字母开头,MLocalLog,MRemoteLog.在编译期根据需求引入。

    1. gradle.properties文件配置组件(如MlocalLog,MRemoteLog)是否引入,在App的build.gradle会读取该配置文件动态引入对应组件 settings.gradle 需要去除对应module的编译,组件化的目的就是减少开发时编译时间,仅编译需要的模块。

    2. 资源文件名规则如下示例及说明(通过加入 归属_模块名 方式防止UI模块间资源文件的冲突)

    layout
    act_m_remote_log act代表activity m 代表属于UI模块 remote是模块名 log是具体文件名
    fgm_m_remote_log fgm代表fragment m 代表属于UI模块 remote是模块名 log是具体文件名
    act_m_local_log
    ...
    string
    m_remote_app_name act代表activity m 代表属于UI模块 remote是模块名 log是具体文件名
    ...
    1. 模块间跳转使用Arouter

    2. 常见功能模块

      1. 个人中心(登录属于个人中心,各种补传资料),
      2. 当前app主场景功能
  3. AppUI为各UI模块提供界面相关可复用的UI工具

  4. AppService提供网络接口服务及数据库服务

  5. AppCommon提供各类非UI相关可复用工具

  6. docs 项目相关内容文档集

其他说明

  1. 项目已经转为androidx

  2. 项目Service层以上模块采用Kotlin,数据服务层等依旧采取java? 因为Kotlin对UI模块层的优势大,而网络层依旧采用熟悉的java代码易维护.当然也可以切换成Kotlin写.

  3. 为什么用 com.yanzhenjie:permission 权限框架? 该框架增加一层对应权限具体操作来验证权限是否已获取,可以较好的适配国产手机无权限也不弹框的问题

引入kotlin 说明 (具体看docs说明文档)

引入dagger2 说明 (具体看docs说明文档)

网络层封装说明(具体看docs说明文档)

  1. 拥有假数据,方便在后台仅提供接口文档,无接口时通过假数据模拟数据返回进行调式,加快开发速度和各类数据返回场景时的模拟验证.(接口是否使用假数据可通过消息头单独配置)

  2. 拥有数据加解密示例 (接口是否加解密可通过消息头单独配置)

  3. 拥有https证书强校验示例

  4. 可配置日志本地存储(具体看LoggerInterceptor)

    1. 其中Logger进行一定改造,方便不同应用设置不同日志存储子目录
    2. 通过开发一款独立日志查看工具即可实现手机上直接免抓包获取各种请求日志,关键日志等(日志查看功能及上传功能已完成,待完善)

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published