# Flutter MVP 快速开发 具体框架的使用方法就不做记录,网上很多,这里只做 MVP 框架搭建,框架借鉴了其他大佬写的一些代码,然后按照自己又做了些调整 ### 基础配置 先来看下依赖的库都有哪些,也不一定全部都用到了 ,看自己项目需要吧 ```yaml dependencies: flutter: sdk: flutter # The following adds the Cupertino Icons font to your application. # Use with the CupertinoIcons class for iOS style icons. cupertino_icons: ^0.1.2 # 路由 fluro: ^1.5.1 # 简单数据存储 shared_preferences: ^0.5.3+4 # 依赖注入 get_it: ^3.0.1 # 吐司 fluttertoast: ^3.1.3 # 尺寸适配 flutter_screenutil: ^0.6.0 # 二维码条形码扫描 flutter_qr_reader: ^1.0.3 # 权限申请 permission_handler: ^3.0.0 # 网络请求 dio: ^2.0.1 # 手机网络状态监听 connectivity: ^0.4.3+7 # 消息总线 event_bus: ^1.1.0 # 刷新 加载 pull_to_refresh: ^1.5.4 # Rx rxdart: ^0.21.0 ``` **在入口函数 main() 中进行部分框架的初始化:** ```dart void main() { Router router = Router(); Routes.configureRoutes(router); Application.router = router; Application.setupLocator(); runApp(MyApp()); } ``` 1. 1、2、3 行是用来配置项目中路由的(**fluro** 框架) 2. **Application.setupLocator()** 初始化 **get_it** 依赖注入框架,相当于 Android 中 **dagger2** 3. 其中在 Application 中还做了屏幕适配配置 > 看下 Application 中的代码吧: ```dart class Application { static Router router; static GlobalKey<NavigatorState> globalKey = GlobalKey(); static SharedPreferences sp; static double screenWidth; static double screenHeight; static double statusBarHeight; static GetIt getIt = GetIt.instance; static initSp() async { sp = await SharedPreferences.getInstance(); } static initScreenUtil(BuildContext context){ ScreenUtil.instance = ScreenUtil(width: 750, height: 1334) ..init(context); final size = MediaQuery.of(context).size; Application.screenWidth = size.width; Application.screenHeight = size.height; Application.statusBarHeight = MediaQuery.of(context).padding.top; } static setupLocator(){ getIt.registerSingleton(NavigateService()); getIt.registerSingleton(DioRequest()); getIt.registerSingleton(ApiService()); getIt.registerSingleton(SettingPresenter()); getIt.registerSingleton(LoginPresenter()); getIt.registerSingleton(CollectionPresenter()); getIt.registerSingleton(BillPresenter()); } } ``` > 看一下 main.dart 中的全部代码,基础框架初始化完成直接打开登录页面 ```dart void main() { Router router = Router(); Routes.configureRoutes(router); Application.router = router; Application.setupLocator(); runApp(MyApp()); } class MyApp extends StatelessWidget { // This widget is the root of your application. @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Demo', navigatorKey: Application.getIt<NavigateService>().globalKey, theme: ThemeData(///项目主题设置 brightness: Brightness.li
Flutter MVP 快速开发
最新推荐文章于 2024-08-15 19:40:35 发布
本文介绍了如何使用Flutter构建MVP框架,包括配置依赖、初始化框架、创建基础组件以及登录模块的实现,提供了一个完整的Flutter MVP快速开发指南。
摘要由CSDN通过智能技术生成