📅  最后修改于: 2021-01-02 05:26:55             🧑  作者: Mango
包是一个命名空间,其中包含一组相似类型的类,接口和子包。我们可以认为包类似于计算机上的不同文件夹,其中我们可以将电影保存在一个文件夹中,将图像保存在另一个文件夹中,将软件保存在另一个文件夹中,等等。在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插件或程序包类似于创建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