这是一个基于Getx的Flutter项目基础库。
为了方便快速的搭建应用程序,可以通过添加此项目依赖,快速集成一般应用所需要的基础功能。
此项目的建设初衷是建立一个可以在多个项目中直接引用的基础框架库。早期是直接在各个项目之间直接复制粘贴base_lib文件夹,后出于方便维护、同步更新,便开始寻找通用解决方案,于是就有了此项目。
如果有人能在项目中获得一些帮助,那真是太好了。
一起加油吧!
- 通用项目结构;
- 通用page:
- 图片预览(支持文字预览);
- webView(支持非singleTop);
- 通用工具;
- aes加解密;
- 网络请求、请求日志;
- 系统分享;
- 崩溃日志;
- 文件操作;
- 图片选择器、拍照选择器、图片压缩;
- 统一日志管理;
- 权限请求与验证;
- 本地数据存储;
- 设备信息查询;
- 应用信息查询;
- 调整第三方应用;
- 其他通用utils;
- 通用基础国际化(中文、英文);
- 通用ui:
- common_ui:
- mWillPopScope;
- mRoot;
- mAppBar;
- mText;
- mTextField;
- mBorder、mLine、mDivider;
- mLoadImageView;
- mFadeInView;
- mAvatar;
- mSimpleBoxDecoration;
- mInkView;
- mProgressIndicator;
- mOverSizeScrollView;
- mScrollConfig;
- ...
- 弹框:支持多个弹框自定义关闭顺序、自定义动画;
- mShowTip;
- mShowDialog;
- 通用showLoading、toast、notify;
- 通用颜色、尺寸(后期可能移除)
- 通用列表Footer;
- KeepAliveWrapper;
- MySalomonBottomBar(由SalomonBottomBar修改而来,支持双击回调);
- common_ui:
- 通用导航路由;
- Nav导航工具;
- 继承BaseRoutesClass以统一获得路由Routes;
- 通用扩展:
- 日志输出;
- 日期格式化;
- 滚动控制器;
- getx:MyGet扩展GetInterface;
- 其他
- GetxAnimationControllerMixin获取AnimationController;
- GetTicker获取TickerProvider;
- ...
- 个人开源,能力有限,轻喷;
- 该项目大部分时间只在个别私人Android设备上调试;
- 如存在兼容性问题,可邮箱联系420048248@qq.com或通过底部联系方式进行反馈;
- 开发调试基于:Flutter 3.19.2, Dart 3.3.0;
示例代码:example。
项目使用入口示例:
import 'package:base_lib_pub/base_lib_pub.dart';
import 'package:base_lib_pub_example/route/routes.dart';
import 'package:base_lib_pub_example/translation/translation.dart';
import 'package:flutter/material.dart';
void main() {
runMyApp(
const MyApp(),
enableLog: true,
unPopRoutes: [Routes.init, Routes.home],
initWeChat: true,
beforeRun: () async {
/// 初始化网络请求
initGlobalDio(ignoreCertificate: true);
},
);
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _MyAppState();
}
class _MyAppState extends State<MyApp> {
@override
Widget build(BuildContext context) {
return baseApp(
// 路由
initialRoute: Routes.init,
getPages: Routes.getPages(),
// 国际化配置
locale: MyTrans.locale,
fallbackLocale: MyTrans.fallbackLocale,
translations: MyTrans(),
// botToast
builder: toastBuilder,
navigatorObservers: [toastObserver],
);
}
}
-
请自觉遵循依赖项目的开源许可要求。
-
技术是一条漫长且持续的道路,与诸君共勉!