架构分析
- 该项目采用组件化方式进行编程
-
开发语言
- Kotlin
- Java
- Dart
- 开发收藏和推荐模块
-
入口类
- HiApplication
- logic
- 将MainActivity的一些逻辑内聚在这,让MainActivity更加清爽
-
UI 公共组件/基类(common)
- HiBaseActivity
- HiBaseFragment
- HiBaseApplication
- HiFragmentTabView
-
UI组件库(hi-ui)
- HiTabTop
- HiTabBottom
- HiBanner
- HiRefresh
- HiDataItem
-
基础组件(hi-library)
- HiLog
- 能够打印堆栈信息
- 堆栈信息获取
- 支持任何数据类型的打印
- 支持实现日志可视化
- 能够实现文件打印模块
- 支持不同打印器的插拔设计
- 线程复用防止频繁的创建线程
- 线程同步
- HiExecutor
- 多线程操作组件
- HiLog
-
网络库-(HiRestFul)
- 统一接口的入参,请求方式,请求头,返回值,请求URL。方便接口维护与复用
- 隔离第三方网络请求框架,利于迭代跟替换
- 支持动态更改接口域名BaseUrl
- 支持添加个性化Header
- 支持拦截器
- viewmodel +respostory +livedata
-
Flutter混编
- 页面秒开
- Flutter预加载实现页面秒开,线程空闲时进行预加载,
- 实例化多个Flutter引擎,分别加载不同的Flutter入口
- 收藏模块
- 实现将登录之后的auth-token传递给flutter,实现Dart端免登录(登录功能互通)
- 推荐
- Flutter跳转Native并传递消息
- Native跳转Flutter并传递消息
-
Flutter嵌入NativeUI实践
- 页面秒开
-
接口Mock
-
路由
- 使用ARouter
- 通过Route和AutoWired收集注解,写入文件,实现跨模块Api调用
- 1.开发阶段以注解的形式标记;2.编译时自动扫描到所有的配置3.运行时自动管理页面的映射/编译后手动映射
-
利用ARouter实现拦截页面跳转,实现全局页面降级,当目标页不存在,应该友好地提醒他并重定向到一个统一的错误页面
image.png
- 使用ARouter
-
效果图
image.png | image.png | image.png | image.png | image.png |
---|
仓库地址:
https://gitee.com/android_steven/android-app/tree/master
网友评论