Flutter命令行工具插件mega_cli的使用

Flutter命令行工具插件mega_cli的使用

CLI用于创建和配置初始的Megaleios项目

Megaleios

安装

要安装mega_cli,只需在终端输入以下命令:

dart pub global activate mega

使用

首先,需要确保项目已在Firebase中配置。请遵循这里的教程进行设置,并参考OneSignal

现在,为了配置项目,只需在终端输入以下命令:

mega_cli init

接下来,会出现以下提示信息:

1) Yes
2) No
Add base permission to info.plist ? [1]

此命令会将权限(如相机和文件)添加到项目的info.plist文件中。如果希望添加这些权限,请输入1并按回车。如果不希望添加,请输入2并按回车。

然后,会出现以下提示信息:

App name:

请输入您的应用名称并按回车。这个名字会被添加到Info.plist文件中。

随后,会出现以下提示信息:

1) Yes
2) No
Add location permission in info.plist ? [1]

此命令会将位置权限添加到项目的info.plist文件中。如果希望添加此权限,请输入1并按回车。如果不希望添加,请输入2并按回车。

最后,会出现以下提示信息:

1) Yes
2) No
Use "Dependency_Overrides" on flutter_mega ? [1]

此命令会将flutter_mega的依赖项作为dependency_overrides添加到项目的pubspec.yaml文件中。如果希望添加这些依赖项,请输入1并按回车。如果希望正常添加依赖项,请输入2并按回车。

完成以上步骤后,您的项目已经配置好,可以开始开发了!🎉

解释做了什么:

iOS

  • 在项目的info.plist文件中添加了相机和文件的权限。
<key>NSCameraUsageDescription</key>
<string>允许访问以拍摄照片供您的Mega模板个人资料使用。</string>
<key>NSPhotoLibraryUsageDescription</key>
<string>允许访问以选择一张照片供您的A a个人资料使用。</string>
<!-- 如果添加了位置权限 -->
<key>NSLocationWhenInUseUsageDescription</key>
<string>允许访问以在Mega模板中使用位置。</string>
<key>NSLocationWhenInUseUsageDescription</key>
<string>允许访问以在Mega模板中使用位置。</string>
<!-- 这个键使应用程序自动提供给所有用户在Apple的内部测试中 -->
<key>ITSAppUsesNonExemptEncryption</key>
<false/>

Android

  • 在项目的build.gradle文件中添加了google-services的class路径,以便使用Firebase。
classpath 'com.google.gms:google-services:4.3.15'
  • 在项目的app/build.gradle文件中添加了google-services插件,以便使用Firebase,并添加了compileSdkVersionminSdkVersion的版本。
apply plugin: 'com.google.gms.google-services'
compileSdkVersion 34
minSdkVersion 22

Flutter

  • 在项目的pubspec.yaml文件中添加了flutter_mega的依赖项。
mega_commons_dependencies:
    path: ../megaflutter_commons_dependencies
mega_commons:
    path: ../megaflutter_commons
mega_features:
    path: ../megaflutter_features
  • 创建了assets文件夹。
  • lib/app/core目录下创建了app_colors.dart文件。
  • lib/app/core目录下创建了app_urls.dart文件(包含项目的URL)。
  • lib/app/theme目录下创建了app_theme.dart文件。
  • lib/app目录下创建了application_binding.dart文件,其中包含了项目的基URL配置和RestClientDio的注入,负责执行HTTP请求。
  • 创建了lib/app/data/models目录,用于存放项目的模型。
  • 配置了analysis_options.yaml文件以使用lint,可以根据需要自行配置。
  • 配置了main.dart文件以使用GetMaterialApp和一些必要的设置,例如初始化FirebaseHiveOneSignalIntl.defaultLocale = 'pt_BR'
Future<void> main() async {
  WidgetsFlutterBinding.ensureInitialized();
  Intl.defaultLocale = 'pt_BR';

  await Future.wait([
    FirebaseConfig.initialize(),
    BaseHive.initHive(),
    MegaOneSignalConfig.configure(
      appKey: '', //您的应用密钥
    ),
  ]);

  final token = AuthToken.fromCache();

  final String initialRoute = token == null ? AppPages.initial : Routes.home;

  initializeDateFormatting('pt_BR', null);

  runApp(
    GetMaterialApp(
      title: 'Application',
      initialRoute: initialRoute,
      getPages: AppPages.routes,
      initialBinding: ApplicationBinding(),
      theme: AppTheme.theme,
    ),
  );
}
  • 移除了项目的test文件夹。🔥(测试很重要)
  • 配置了GetX,创建了app_pages.dartapp_routes.dart文件在lib/app/routes目录下,其中包含项目的路由。
  • 配置了Hive的初始设置,在lib/app/data/cache目录下创建了base_hive.dart文件,其中包含Hive的初始配置。
  • lib/app/modules目录下创建了LoginHome模块,其中包含每个模块的ControllerBindingViewProvider

项目的结构如下所示:

Megaleios

🔧 预配置的功能

  • 登录
  • 首页
  • 忘记密码
  • 修改密码
  • 通知

所有这些功能都已与Mega模板的API集成,只需配置项目的基URL在app_urls.dart文件中并根据项目的需要调整布局即可🚀

Mobile 01 Mobile 02 Mobile 03 Mobile 04 Mobile 05 Mobile 06

🖊️ 其他命令

mega_cli feature <feature_name>

此命令将创建一个名为参数传递的特征,已经配置了provider、controller、view和binding。 如果希望不创建provider,可以在命令末尾添加--no-provider参数。

mega_cli feature <feature_name> --no-provider

更多关于Flutter命令行工具插件mega_cli的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter命令行工具插件mega_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,关于Flutter命令行工具插件mega_cli的使用,这里提供一个简要的示例,展示如何通过命令行与Flutter应用进行交互。请注意,mega_cli并非一个广泛认知的标准Flutter插件,因此以下示例将基于一个假设的命令行工具插件,该插件允许我们通过命令行执行一些Flutter相关的任务。

假设mega_cli插件提供了以下功能:

  1. 启动Flutter应用。
  2. 获取Flutter应用的当前状态。
  3. 停止Flutter应用。

首先,确保你的Flutter项目中已经添加了mega_cli插件(如果它是一个真实存在的插件)。由于mega_cli并非官方或广泛认知的插件,这里我们假设它已经在你的pubspec.yaml文件中被添加。

示例代码结构

假设你的Flutter项目结构如下:

my_flutter_app/
├── lib/
│   └── main.dart
├── pubspec.yaml
└── mega_cli/ (假设这是插件提供的命令行工具脚本或可执行文件目录)

main.dart

这里是一个简单的main.dart文件,展示了一个Flutter应用的基本结构:

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: MyHomePage(title: 'Flutter Demo Home Page'),
    );
  }
}

class MyHomePage extends StatefulWidget {
  MyHomePage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text(widget.title),
      ),
      body: Center(
        child: Text('Hello, Flutter!'),
      ),
      floatingActionButton: FloatingActionButton(
        onPressed: () {},
        tooltip: 'Increment',
        child: Icon(Icons.add),
      ),
    );
  }
}

使用mega_cli命令行工具

假设mega_cli插件提供了一个命令行工具,可以通过命令行启动、停止和检查Flutter应用的状态。以下是一些假设的命令示例:

  1. 启动Flutter应用
./mega_cli start

这个命令可能会在后台启动你的Flutter应用。

  1. 获取Flutter应用状态
./mega_cli status

这个命令可能会返回当前Flutter应用的状态,例如“运行中”、“已停止”等。

  1. 停止Flutter应用
./mega_cli stop

这个命令可能会停止正在运行的Flutter应用。

注意事项

  • 由于mega_cli并非一个真实存在的插件或工具,上述命令和用法是基于假设的。
  • 在实际使用中,你需要查阅mega_cli插件的官方文档或源代码,以了解具体的命令和用法。
  • 如果mega_cli是一个Dart包提供的命令行工具,你可能需要全局激活该包或使用其提供的可执行文件。

希望这个示例能帮助你理解如何通过命令行与Flutter应用进行交互。如果你有更具体的需求或遇到任何问题,请提供更多细节,以便给出更准确的帮助。

回到顶部