# flutter_baselib_plugin **Repository Path**: rishli/flutter_baselib_plugin ## Basic Information - **Project Name**: flutter_baselib_plugin - **Description**: 基于MVVM封装的Flutter公共库,包括:http组件、mvvm组件、bugly、log、toast、和常用工具类,开箱即用,可以减少很多模板代码; - **Primary Language**: Dart - **License**: MIT - **Default Branch**: dev-1.3.0 - **Homepage**: https://juejin.cn/post/6936911560728281102 - **GVP Project**: No ## Statistics - **Stars**: 75 - **Forks**: 36 - **Created**: 2021-02-25 - **Last Updated**: 2025-06-26 ## Categories & Tags **Categories**: cross-platform-mobiledev **Tags**: None ## README ## 一、flutter_baselib 简介 [技术文档参考](https://juejin.cn/post/6936911560728281102) 基于MVVM架构封装Flutter基础库,包含: 1、xlog日志库(Android); 2、bugly异常上报、应用更新(Android); 3、基于dio封装网络请求基类; 4、封装http通用加载错误页,空白页以及正常显示页UI和相关逻辑,UI可自定义; 5、封装http通用加载dialog控件和dialog显示隐藏逻辑,dialog UI可自定义; 6、基于provider封装ViewModel基类和BaseView(MVVM); 7、ViewModel监听页面生命周期,页面关闭时销毁资源; 8、常用工具类; --- ## 二、基础库说明 集成了下面三方库,进行二次封装使用: 1、[dio](https://pub.dev/packages/dio):网络请求; 2、[fluttertoast](https://pub.dev/packages/fluttertoast):toast工具; 3、[provider](https://pub.dev/packages/provider):状态管理库,使用Provider来实现MVVM模式; 4、[shared_preferences](https://pub.dev/packages/shared_preferences):sp工具类 5、[permission_handler](https://pub.dev/packages/permission_handler):动态权限申请 6、[connectivity](https://pub.dev/packages/connectivity):网络连接状态工具 7、[device_info](https://pub.dev/packages/device_info):设备信息获取工具 8、[package_info](https://pub.dev/packages/package_info):包信息获取工具 9、[path_provider](https://pub.dev/packages/path_provider):存储路径获取 --- native 库: 1、[bugly](https://bugly.qq.com/v2/index):异常上报,应用升级(仅支持Android平台); 2、[mars xlog](https://github.com/Tencent/mars/wiki):日志打印存储(仅Android会保存为日志文件,其它平台使用Flutter print()方法打印log到控制台); * 日志文件加解密说明[参考这里](https://gitee.com/rishli/flutter_xlog_plugin/blob/master/README.md); ## 三、使用方式 ``` dependencies: flutter_baselib: git: url: https://gitee.com/rishli/flutter_baselib_plugin.git ref: (tag标签) ``` ## 四、总结 1、这些功能都比较简单,但却很常见,又是很容易忽略的一些细节,通过封装能让这些功能复用,不用关注这些细节,专注业务开发; 2、基础库包含的功能模块只是根据自身业务封装,不可能满足所有的场景,但是可以根据具体业务场景进行扩展,也可以借鉴这些封装思路,实现适合自身业务的基础库; 3、后面会完善基础库功能,扩展通用性;