📜  Flutter软件包

📅  最后修改于: 2021-01-02 05:26:55             🧑  作者: Mango

flutter 包

包是一个命名空间,其中包含一组相似类型的类,接口和子包。我们可以认为包类似于计算机上的不同文件夹,其中我们可以将电影保存在一个文件夹中,将图像保存在另一个文件夹中,将软件保存在另一个文件夹中,等等。在Flutter中,Dart通过一个包来组织和共享一组功能。 Flutter始终支持共享软件包,这是其他开发人员为Flutter and Dart生态系统贡献的。这些软件包使我们能够构建应用程序,而不必从头开始开发所有内容。

该包的一般结构如下所示(将演示包假定为mycustom_package):

lib / src / *:它包含私有Dart代码文件。

lib / mydemo_package.dart:这是一个主要的Dart代码文件。我们可以将其导入到应用程序中,如下所示:

import 'package:mycustom_package/mycustom_package.dart'

我们还可以按照以下语法将任何其他代码文件导出到主代码文件中:

Export src/my_code.dart

lib / *:这是一个目录,其中包含程序包中的公共代码。我们可以按以下方式访问此代码:

import 'package:mydemo_package/sub_folder/custom_file.dart'

pubspec.yaml:这是项目的配置文件,在处理Flutter项目期间会用很多。该文件包含:

  • 项目常规设置,例如项目的名称,描述和版本。
  • 项目依赖项。
  • 项目资产(例如图像)。

包装类型

根据功能,我们可以将包分为两种类型:

  • 飞镖包
  • 插件包

Dart程序包:这是一个通用的程序包,它以dart语言编写,例如path程序包。此程序包可以在Web或移动平台的两种环境中使用。它还包含一些Flutter特定的功能,因此依赖于Flutter框架,例如fluro package

插件程序包:这是一个专用的Dart程序包,包括以Dart代码编写的API,并且取决于Flutter框架。可以将其与针对特定平台的特定平台实现相结合,例如Android(使用Java或Kotlin)和iOS(使用Objective C或Swift)。该软件包的示例是电池和图像选择器插件软件包。

开发Flutter软件包或插件

开发Flutter插件或程序包类似于创建Dart应用程序或Dart程序包。但是,它有一些例外,表示插件始终使用特定于平台(例如Android或iOS)的系统API来获取所需的功能。现在,让我们逐步了解如何在Flutter中开发软件包。

步骤1:首先,打开Android Studio,然后点击文件菜单->选择新的Flutter项目。屏幕上将出现一个对话框。

步骤2:在此对话框中,您需要选择一个New Flutter Project选项,如下图所示,然后单击Next

步骤3:在下一个对话框中,输入包的所有详细信息,例如项目名称,项目位置和项目描述。填写所有详细信息后,单击完成。

步骤4:最后,创建您的项目。现在,打开flutter_custom_package.dart文件,并删除在创建项目时创建的默认代码。然后插入以下代码。此代码段创建一个警报框包。

library flutter_custom_package;

import 'package:flutter/material.dart';

class CustomPackageAlertBox {
  static Future showCustomAlertBox({
    @required BuildContext context,
    @required Widget willDisplayWidget,
  }) {
    assert(context != null, "If context is null!!");
    assert(willDisplayWidget != null, "If willDisplayWidget is null!!");
    return showDialog(
        context: context,
        builder: (context) {
          return AlertDialog(
            shape: RoundedRectangleBorder(
              borderRadius: BorderRadius.all(Radius.circular(20)),
            ),
            content: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                willDisplayWidget,
                MaterialButton(
                  color: Colors.white70,
                  child: Text('Close Alert'),
                  onPressed: () {
                    Navigator.of(context).pop();
                  },
                )
              ],
            ),
            elevation: 12,
          );
        });
  }
}

现在,您需要测试新创建的程序包。要测试包,请创建一个新项目。在此项目中,首先,在依赖项部分中打开pubspec.yaml文件和以下代码。

dependencies: 
   flutter: 
      sdk: flutter 
   flutter_custom_package: 
      path: ../

当您在pubspec.yaml文件中添加自定义包时,Android Studio会提醒您更新此文件。要更新文件,请单击“获取依赖项”,并确保在文件更新过程中已建立Internet连接。 Android Studio会自动从互联网获取软件包并为您的应用程序进行配置。现在,您可以使用此程序包了。您可以将包导入到dart文件中,如下所示:

import 'package: flutter_custom_package/flutter_custom_package.dart';

如何发布程序包

成功实现包后,可以将其发布在pub.dev上,以便任何人都可以在项目中轻松使用它。

发布软件包之前,请确保pubspec.yaml,README.md和CHANGELOG.md文件的内容完整且正确。

接下来,在终端窗口中运行以下命令以分析软件包的每个阶段。

$ flutter pub publish --dry-run

最后,您需要运行以下命令来发布程序包。

$ flutter pub publish