Flutter便捷开发插件flutter_easy的使用

发布于 1周前 作者 htzhanglong 来自 Flutter

Flutter便捷开发插件flutter_easy的使用

A common Flutter package.

flutter_easy

Getting Started

额外参数:

--dart-define=app-debug-flag=true

运行:

flutter run --release --dart-define=app-debug-flag=true

示例:

main.dart
void main() async {
  await initEasyApp(
    appBaseURLChangedCallback: () {
      // 重新加载API
      configAPI(null);
    },
    customExceptionReport: (error, stack) {},
  );
  await initApp();
  runApp(const MyApp());
  if (isAndroid) {
    SystemChrome.setPreferredOrientations([
      DeviceOrientation.portraitUp,
      DeviceOrientation.portraitDown,
    ]);
    // 设置状态栏样式。必须在MyApp()之后运行,因为MaterialApp可能会覆盖它。
    SystemUiOverlayStyle systemUiOverlayStyle =
        const SystemUiOverlayStyle(statusBarColor: Colors.transparent);
    SystemChrome.setSystemUIOverlayStyle(systemUiOverlayStyle);
  }
}
app.dart
Future<void> initApp() async {
  // 加密密码
  StorageUtil.setEncrypt("XxXxXxXxXxXxXxXxX");
  // 加载用户信息
  await Get.putAsync(() => UserService().load());
  // 加载API
  configAPI(null);
}

class MyApp extends StatelessWidget {
  const MyApp({Key? key}) : super(key: key);

  @override
  Widget build(BuildContext context) {
    return BaseApp(
      initialRoute: Routes.splash,
      getPages: Routes.routes,
      localizationsDelegates: const [
        S.delegate,
        GlobalMaterialLocalizations.delegate,
        GlobalWidgetsLocalizations.delegate,
        GlobalCupertinoLocalizations.delegate,
        LocaleNamesLocalizationsDelegate(),
      ],
      supportedLocales: S.delegate.supportedLocales,
      locale: Get.deviceLocale,
      localeResolutionCallback:
          (Locale? locale, Iterable<Locale> supportedLocales) {
        print("localeResolutionCallback: $locale");
        if (locale == null || !S.delegate.isSupported(locale)) {
          return null;
        }
        if (locale.languageCode == "zh") {
          return const Locale("zh", "CN");
        }
        return locale;
      },
    );
  }
}
routes.dart
class Routes {
  static final String root = '/';
  static final String splash = '/splash';

  Routes._();

  static final List<GetPage> routes = [
    GetPage(
      name: Routes.root,
      page: () => RootPage(),
    ),
    GetPage(
      name: Routes.splash,
      page: () => SplashPage(),
    ),
    GetPage(
      name: routesLoginNamed,
      page: () => LoginPage(),
    ),
  ];
}

安装

flutter_easy 添加到你的 pubspec.yaml 文件中:

dependencies:
  flutter_easy:

在需要用到的地方导入 flutter_easy

import 'package:flutter_easy/flutter_easy.dart';

更多关于Flutter便捷开发插件flutter_easy的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter便捷开发插件flutter_easy的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,flutter_easy 是一个旨在简化 Flutter 开发流程的插件集合。它提供了许多便捷的功能和组件,帮助开发者快速构建应用。虽然我不能提供具体的插件建议,但我可以展示如何使用 flutter_easy 插件集合中的一些常用功能,通过代码案例来展示其便捷性。

假设 flutter_easy 插件集合中包含了一些常用的工具类,比如网络请求、状态管理、UI 组件等,以下是一些可能的使用示例。请注意,这些示例是基于假设的,因为实际的 flutter_easy 插件可能有所不同。如果 flutter_easy 有具体的文档或 API 参考,请参考那些资源以获得最准确的信息。

1. 网络请求示例

假设 flutter_easy 提供了一个简单的网络请求封装:

import 'package:flutter_easy/network.dart';

void fetchData() async {
  try {
    // 假设这是一个 GET 请求
    var response = await EasyNetwork.get('https://api.example.com/data');
    if (response.success) {
      print('Data fetched: ${response.data}');
    } else {
      print('Error fetching data: ${response.error}');
    }
  } catch (e) {
    print('An error occurred: $e');
  }
}

2. 状态管理示例

假设 flutter_easy 提供了一个简单的状态管理解决方案:

import 'package:flutter_easy/state_management.dart';

class CounterModel extends EasyModel {
  int _count = 0;

  int get count => _count;

  void increment() {
    _count++;
    notifyListeners(); // 通知监听器状态已更改
  }
}

// 在你的 Widget 树中使用
class CounterWidget extends StatelessWidget {
  final CounterModel model = EasyProvider.of<CounterModel>();

  @override
  Widget build(BuildContext context) {
    return Column(
      mainAxisAlignment: MainAxisAlignment.center,
      children: <Widget>[
        Text(
          'You have pushed the button this many times:',
        ),
        Text(
          '${model.count}',
          style: Theme.of(context).textTheme.headline4,
        ),
        ElevatedButton(
          onPressed: model.increment,
          child: Text('Increment'),
        ),
      ],
    );
  }
}

3. UI 组件示例

假设 flutter_easy 提供了一些预构建的 UI 组件,比如一个简单的加载指示器:

import 'package:flutter/material.dart';
import 'package:flutter_easy/ui_components.dart';

class MyWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('Flutter Easy UI Components'),
      ),
      body: Center(
        child: EasyLoadingIndicator(), // 使用预构建的加载指示器
      ),
    );
  }
}

注意

以上代码是基于假设的,实际的 flutter_easy 插件可能提供不同的 API 和功能。为了获得最准确的使用指南和代码示例,请参考 flutter_easy 的官方文档或 GitHub 仓库。

如果你还没有找到 flutter_easy 的具体文档,可以尝试在 GitHub 上搜索该插件,通常开源项目的仓库中会包含详细的 README 文件和示例代码。

回到顶部