android-app进阶实战篇-组件化+Flutter混编

架构分析

  • 该项目采用组件化方式进行编程
    • 开发语言

      • 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
        • 多线程操作组件
    • 网络库-(HiRestFul)

      • 统一接口的入参,请求方式,请求头,返回值,请求URL。方便接口维护与复用
      • 隔离第三方网络请求框架,利于迭代跟替换
      • 支持动态更改接口域名BaseUrl
      • 支持添加个性化Header
      • 支持拦截器
      • viewmodel +respostory +livedata
    • Flutter混编

      • 页面秒开
        • Flutter预加载实现页面秒开,线程空闲时进行预加载,
        • 实例化多个Flutter引擎,分别加载不同的Flutter入口
      • 收藏模块
        • 实现将登录之后的auth-token传递给flutter,实现Dart端免登录(登录功能互通)
      • 推荐
        • Flutter跳转Native并传递消息
        • Native跳转Flutter并传递消息
      • Flutter嵌入NativeUI实践

    • 接口Mock

      • https://mock.yonyoucloud.com/project/27713/interface/api
    • 路由

      • 使用ARouter
        • 通过Route和AutoWired收集注解,写入文件,实现跨模块Api调用
        • 1.开发阶段以注解的形式标记;2.编译时自动扫描到所有的配置3.运行时自动管理页面的映射/编译后手动映射
        • 利用ARouter实现拦截页面跳转,实现全局页面降级,当目标页不存在,应该友好地提醒他并重定向到一个统一的错误页面


          image.png

效果图

image.png
image.png
image.png
image.png
image.png

仓库地址:
https://gitee.com/android_steven/android-app/tree/master

你可能感兴趣的:(android-app进阶实战篇-组件化+Flutter混编)