使用 flutter 实现的 《玩Android》客户端
|--lib
|-- base (基类)
|-- common (常用类,例如常量)
|-- config (配置信息)
|-- core (核心代码,例如:网络)
|-- helper (功能辅助类)
|-- I10n (国际化文本)
|-- modules (业务模块:账户模块,文章模块,搜索模块,收藏模块,,,)
|-- utils (工具类)
|-- widget (全局通用控件)
|--modules
|-- article (文章模块)
|-- search (搜索模块)
|-- collect (收藏模块)
|-- ...... (其他模块)
|-- account (账户模块)
|-- model (数据管理model,实体类entity)
|-- account_model (登录,注册,本地数据)
|-- user_entity
|-- view
|-- login_page
|-- register_page
|-- view_model
|-- login_view_model
|-- register_view_model
大体上通过业务模块分包,使用 MVVM (基于 Provider )模式架构,目标是构建一个扩展性良好的应用,View 模块编写 widget 相关的布局信息,界面业务逻辑在 ViewModel 中实现,数据通过 Model 管理。
- dio : 网络数据请求
- sqflite : 本地数据库管理
- shared_preferences : 本地配置信息管理
- path_provider : 文件读写(存储路径)
- cached_network_image : 网络图片加载/缓存
- fluttertoast : Toast
- flutter_inappwebview : WebView
- provider : 数据共享/状态管理
- flutter_html : html文本展示
- cookie_jar/dio_cookie_manager : 网络请求cookie管理
- intl : 国际化
- flutter_lifecycle_aware : 生命周期管理
- easy_refresh : 下拉刷新/上拉加载
- FlutterJsonBeanFactory : json 转 实体类(androidStudio插件)
- Flutter Intl : 多语言(androidStudio插件)
开发过程中发现 flutter 生命周期存在使用使用上的不足,封装了一个生命周期相关的库 flutter_lifecycle
flutter_lifecycle 可以使任何对象具备生命周期感知能力,结合网络请求,实现根据生命周期自动取消网络请求
逐步完善一个复杂项目可能用到的技术(例如:组件化)或者 flutter 相关的技术(编写一系列demo展示控件使用,动画使用,自定义控件,等等)
项目数据接口来自 玩Android