Flutter快速启动模板插件flutter_starter_cli的使用

Flutter快速启动模板插件flutter_starter_cli的使用

Flutter Starter CLI 是一个非常有用的工具,它提供了一系列命令来简化从零开始创建 Flutter 项目的流程。

简介

Flutter Starter CLI 是用 Dart 编程语言编写的。在处理 Flutter 项目时,我们常常需要多次编写相同的重复代码。但使用此 CLI,我们可以动态地生成一个 Flutter 模板。此外,所有 Flutter 测试的基本结构都是相同的,因此该 CLI 还提供了基本的 Flutter 测试启动包。

Flutter Starter CLI 默认包含以下内容:

  • 状态管理

    • BLoC - BLoC 是一种流行的用于将逻辑与用户界面分离的设计/架构模式。
    • RiverPod - 一种状态管理库,可以在编译时捕捉编程错误并确保代码可测试。
  • API服务

    • Dio - 一个功能强大的 Dart HTTP 客户端,支持拦截器、全局配置、表单数据、请求取消、文件下载、超时等功能。
    • Http - 一个基于 Future 的库,用于进行 HTTP 请求。
    • Graphql - 一个独立的 GraphQL 客户端,为 Flutter 带来了现代 GraphQL 客户端的所有功能。
  • 基本设置

    • 主题 - 主题用于在整个应用中共享颜色和字体样式。
    • 国际化 - 该项目支持多种语言,如英语、西班牙语和法语。
    • 路由 - 使用 Go_Router 提供方便的基于 URL 的导航 API。
  • 测试

    • 单元测试 - 测试单一函数、方法或类。
    • 小部件测试 - 测试单一小部件。
    • 集成测试 - 测试整个应用或应用的大部分。

依赖项

目前,Flutter Starter CLI 依赖于以下包:

包名 版本 描述
args 2.3.1 解析原始命令行参数到一组选项和值。
mason_logger 0.2.2 用于 CLI 请求的简单日志库。
path 1.8.2 用于路径操作的包,包括连接、分割、规范化等。
pub_updater 0.2.2 一个允许检查包是否为最新版本并支持更新的 Dart 包。
flutter_lints 2.0.1 包含推荐的一组 Flutter 应用程序、包和插件的 lint 规则,以鼓励良好的编码实践。

入门指南

全局激活:

dart pub global activate flutter_starter_cli

使用指南

在你的应用根目录下运行以下命令:

显示 CLI 版本:

flutter_starter_cli --version

显示帮助信息:

flutter_starter_cli --help

创建项目:

flutter_starter_cli create

然后按照提示操作。

快捷方式创建项目:

flutter_starter_cli create <project_name> --state=<state_management> --api=<api_service> -g -t

可用的 API 服务:dio, http, graphql

可用的状态管理:bloc, riverpod

升级项目:

flutter_starter_cli project upgrade

完整使用说明

create 命令的完整用法及选项和标志:

➜  ~ flutter_starter_cli create
创建一个新的 Flutter 启动项目。

用法: flutter_starter_cli create <project_name>
-h, --help         打印此使用信息。
    --desc         项目的描述。
                   (默认为 "A New Flutter Project.")
-p, --path         项目的目录路径。
-s, --state        项目的状态管理。
                   [bloc, riverpod]
-a, --api          项目的 API 服务。
                   [dio, http, graphql]
-t, --[no-]test    设置测试用例。
-g, --[no-]git     初始化 Git 存储库。

运行 "flutter_starter_cli help" 查看全局选项。

目录结构

新创建的项目目录结构如下所示:

.
├── android
├── assets
├── integration_test
├── ios
└── lib
    ├── api_sdk
    ├── config
    ├── l10n
    ├── routes
    ├── screens
    ├── shared
    ├── themes
    ├── utils
    ├── widgets
    ├── app.dart
    ├── common_export.dart
    ├── main.dart
├── linux
├── macos
├── test
├── web
├── windows
├── .gitignore
├── analysis_options.yaml
├── l10n.yaml
├── pubspec.lock
├── pubspec.yaml
└── README.md

示例代码

以下是一个简单的示例,展示了如何激活 CLI 并查看其用法:

示例

# 激活 CLI
dart pub global activate flutter_starter_cli

# 查看用法
flutter_starter_cli --help

更多关于Flutter快速启动模板插件flutter_starter_cli的使用的实战教程也可以访问 https://www.itying.com/category-92-b0.html

1 回复

更多关于Flutter快速启动模板插件flutter_starter_cli的使用的实战系列教程也可以访问 https://www.itying.com/category-92-b0.html


当然,flutter_starter_cli 是一个可以帮助你快速生成 Flutter 项目模板的工具。它通常包括一些预设的目录结构、配置文件以及常用依赖,以便你能够更快地开始一个新的 Flutter 项目。

下面是一个简单的示例,展示了如何使用 flutter_starter_cli 来创建一个新的 Flutter 项目。假设 flutter_starter_cli 已经被全局安装在你的开发环境中。

安装 flutter_starter_cli

首先,你需要全局安装 flutter_starter_cli。如果还没有安装,可以使用以下命令:

dart pub global activate flutter_starter_cli

使用 flutter_starter_cli 创建新项目

一旦安装完成,你可以使用以下命令来创建一个新的 Flutter 项目:

flutter_starter create my_new_project

这里 my_new_project 是你想要创建的新项目的名称。这个命令会生成一个包含预设结构和依赖的 Flutter 项目。

项目结构示例

假设 flutter_starter_cli 生成的项目结构如下:

my_new_project/
├── android/
├── ios/
├── lib/
│   ├── main.dart
│   ├── app/
│   │   ├── app_widget.dart
│   │   ├── routes.dart
│   ├── core/
│   │   ├── constants/
│   │   ├── extensions/
│   │   ├── services/
│   ├── features/
│       ├── home/
│           ├── home_page.dart
│           ├── home_view_model.dart
├── pubspec.yaml
├── README.md

main.dart 示例代码

生成的 main.dart 文件可能看起来像这样:

import 'package:flutter/material.dart';
import 'package:provider/provider.dart';
import 'app/app_widget.dart';

void main() {
  runApp(
    MultiProvider(
      providers: [
        // Add your providers here
      ],
      child: MyApp(),
    ),
  );
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'My New Project',
      theme: ThemeData(
        primarySwatch: Colors.blue,
      ),
      home: AppWidget(),
    );
  }
}

app_widget.dart 示例代码

生成的 app_widget.dart 文件可能看起来像这样:

import 'package:flutter/material.dart';
import 'routes.dart';

class AppWidget extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: Text('My New Project'),
      ),
      body: Navigator(
        initialRoute: '/',
        onGenerateRoute: generateRoute,
      ),
    );
  }
}

routes.dart 示例代码

生成的 routes.dart 文件可能包含路由配置:

import 'package:flutter/material.dart';
import 'features/home/home_page.dart';

final Map<String, WidgetBuilder> routes = {
  '/': (context) => HomePage(),
  // Add more routes here
};

Route<dynamic> generateRoute(RouteSettings settings) {
  final String? name = settings.name;
  final WidgetBuilder? builder = routes[name];

  if (builder != null) {
    return MaterialPageRoute<dynamic>(
      builder: builder,
      settings: settings,
    );
  }

  return MaterialPageRoute<dynamic>(
    builder: (_) => Scaffold(
      body: Center(
        child: Text('No route defined for ${settings.name}'),
      ),
    ),
  );
}

总结

上述代码展示了如何使用 flutter_starter_cli 快速生成一个具有基本结构的 Flutter 项目。当然,实际的 flutter_starter_cli 可能会有更多的功能和预设配置,你可以根据需要进行调整和扩展。

如果你还没有 flutter_starter_cli,请确保按照官方文档进行安装和配置,以获得最佳的使用体验。

回到顶部