Flutter基础架构和Getx使用

移动app开发在跨平台需求下,使得我们学习使用flutter跨平台框架,帮助我们产生高效率高质量的UI界面,这里简介下flutter项目开发基础脚手架,和getx这个状态管理框架使用。

一、状态管理

响应式的编程框架中都会有一个永恒的主题——“状态(State)管理”,在flutter框架中一切组件都是Widget,有的组件自己管理自己的widget状态、有的组件需要管理父类组件widget状态,这个时候需要传递回调函数或者BuildContext对象才能更新ui,但是如果嵌套很深,或者跨组件的场景下上面的办法很难管理。目前主要有两种办法:

  1. 实现一个全局的事件总线,将语言状态改变对应为一个事件,然后在APP中依赖应用语言的组件的initState 方法中订阅语言改变的事件。当用户在设置页切换语言后,我们发布语言改变事件,而订阅了此事件的组件就会收到通知,收到通知后调用setState(…)方法重新build一下自身即可。
  2. 使用一些专门用于状态管理的包,如 Provider、Redux,Mobx等

二、getx

本文基于getx基本使用为例子,在没有上下文的情况下打开屏幕/snackbars/dialogs/bottomSheets,使用 Get 轻松管理状态和注入依赖项。

三、flutter项目基础配置

  1. 第三方插件依赖
    第三方插件依赖

  2. 资源文件配置(图片、svg、lottie、字体等)
    资源文件配置

  3. Dart包管理
    在这里插入图片描述

  4. Dart包管理原生启动页配置和屏幕适配

# 屏幕适配
flutter_screenutil: ^5.6.1
# 原生启动
flutter_native_splash: ^2.1.6
void main() async{
  //启动页 需要配置flutter_native_splash.yaml文件
  WidgetsBinding widgetsBinding = WidgetsFlutterBinding.ensureInitialized();
  FlutterNativeSplash.preserve(widgetsBinding: widgetsBinding);
  // 初始化全局配置
  await Application.init();
  runApp(ScreenUtilInit(
    designSize: const Size(375, 797),
    minTextAdapt: true,
    splitScreenMode: true,
    builder: (BuildContext context, Widget? child) {
      return GetMaterialApp(
        getPages: Routes.routePage,
        debugShowCheckedModeBanner: false,
        initialRoute: '/',
        builder: (context, child) => Scaffold(
          // Global GestureDetector that will dismiss the keyboard
          body: GestureDetector(
            onTap: () {

            },
            child: child,
          ),
        ),
        ///主题颜色
        theme: appThemeData,
        ///国际化支持-来源配置
        translations: Messages(),
        ///国际化支持-默认语言
        locale: LocaleOptions.getDefault(),
        ///国际化支持-备用语言
        fallbackLocale: const Locale('en', 'US'),
        defaultTransition: Transition.rightToLeft,
        initialBinding: SplashBinding(),
        home:  const SplashPage(),
      );
    },
  ));
  //关闭启动页
  FlutterNativeSplash.remove();

}

四、flutter项目包文件配置(基于getx)

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值