一、Flutter 包和插件简介

" Flutter 包 " 包含 pubspec.yamllib 代码目录 ;

  • pubspec.yaml 配置文件 : 配置各种依赖 , 资源等 ;
  • lib 目录 : 是 Dart 代码所在目录 ;

Flutter 包的类型 :

  • Dart 包 : 仅涉及 Dart 代码 , 将 Dart 代码封装一下 , 实现特定功能 , 如解析 JSON 字符串等 , 不涉及到与 Native 应用的交互 ;
  • 插件包 : 是专用的 Dart 包 , 包含 Dart API , 针对 Android 的 Java / Kotlin , 或 针对 iOS 的 Objective-C / Swift 的实现 , 如之前使用的拍照插件包 , 在 Android 平台使用了 Android 相机的代码 , 在 iOS 中调用了 iOS 相机相关功能 ;




二、创建 Flutter 插件


1、Android Studio 中可视化创建


可视化方式创建 " Flutter 包或插件 " :

前提 : Android Studio 中 安装了 Flutter 和 Dart 插件 , 这也是开发 Flutter 的前提 ; 菜单栏选择 " Flie / Settings … " 弹出的如下对话框中 , 选择 " Plugin " 选项 , 如下就是安装了 Flutter 和 Dart 插件 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter包

在 菜单栏 选择 " File / New / New Flutter Project… " 选项 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter_02

在弹出的如下对话框中 , 选择 " Flutter Plugin " 就是创建 Flutter 插件 , 这里选择创建 Flutter 插件 ;

( 如果选择 " Flutter Package " , 就是创建 Flutter 包 )

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Dart包_03

输入 Flutter 插件名称 , 然后点击 " Finish " 完成创建 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter_04

插件包创建完毕 :

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter_05

插件包目录结构介绍 :

  • lib : Dart 代码目录 , 在默认生成的 flutter_plugin.dart 代码中 , 使用了 MethodChannel 与 Android / iOS 本地应用进行通信 ;
  • pubspec.yaml : 配置了依赖 , 以及相关说明 ;
  • android : 存放插件中 Android 部分代码 ; android\src\main\kotlin\com\example\flutter_plugin 目录中的 FlutterPlugin.kt 就是 Android 对应的插件 ; Android 开发者可以开发 android 目录下的代码 , 开发 Android 平台的对应功能 ;
  • ios : 存放插件中 iOS 部分代码 ; ios\Classes 目录中的 FlutterPlugin.m 就是 iOS 中对应的插件 ; iOS 开发者可以开发 iOS 目录下的代码 , 开发 iOS 平台的对应功能 ;

Flutter 与本地应用通信参考 【Flutter】Flutter 混合开发 ( Flutter 与 Native 通信 | 完整代码示例 ) 代码 ;


2、命令行创建


执行如下命令 , 创建 组织名为 com.example , 名称是 flutter_plugin 的 Flutter 插件包 ;

flutter create --org com.example --template=plugin flutter_plugin

--org 设置组织名 , 即 Android 中的包名 ;
--template 设置当前创建的工程类型 , plugin 表示 Flutter 插件包 ;
flutter_plugin 表示插件包的名称 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter_06

D:\flutter>flutter create --org com.example --template=plugin flutter_plugin
Creating project flutter_plugin...
  flutter_plugin\.gitignore (created)
  flutter_plugin\.idea\libraries\Dart_SDK.xml (created)
  flutter_plugin\.idea\modules.xml (created)
  flutter_plugin\.idea\runConfigurations\example_lib_main_dart.xml (created)
  flutter_plugin\.idea\workspace.xml (created)
  flutter_plugin\.metadata (created)
  flutter_plugin\CHANGELOG.md (created)
  flutter_plugin\lib\flutter_plugin.dart (created)
  flutter_plugin\LICENSE (created)
  flutter_plugin\flutter_plugin.iml (created)
  flutter_plugin\pubspec.yaml (created)
  flutter_plugin\README.md (created)
  flutter_plugin\test\flutter_plugin_test.dart (created)
Running "flutter pub get" in flutter_plugin...                     721ms
  flutter_plugin\example\.gitignore (created)
  flutter_plugin\example\.idea\libraries\Dart_SDK.xml (created)
  flutter_plugin\example\.idea\libraries\KotlinJavaRuntime.xml (created)
  flutter_plugin\example\.idea\modules.xml (created)
  flutter_plugin\example\.idea\runConfigurations\main_dart.xml (created)
  flutter_plugin\example\.idea\workspace.xml (created)
  flutter_plugin\example\.metadata (created)
  flutter_plugin\example\lib\main.dart (created)
  flutter_plugin\example\flutter_plugin_example.iml (created)
  flutter_plugin\example\pubspec.yaml (created)
  flutter_plugin\example\README.md (created)
  flutter_plugin\example\test\widget_test.dart (created)
Running "flutter pub get" in example...                            758ms
Wrote 25 files.

All done!

Your plugin code is in flutter_plugin\lib\flutter_plugin.dart.

You example app code is in flutter_plugin\example\lib\main.dart.


You've created a plugin project that doesn't yet support any platforms.


To add platforms, run `flutter create -t plugin --platforms <platforms> .` under flutter_plugin.
For more information, see https://flutter.dev/go/plugin-platforms.



D:\flutter>




三、创建 Dart 包


1、Android Studio 中可视化创建


在 菜单栏 选择 " File / New / New Flutter Project… " 选项 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter_02

在弹出的如下对话框中 , 选择 " Flutter Package" 就是创建 Flutter 包 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter_08

输入 Flutter 包名称 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter插件包_09

点击 " More Settings " 选项 , 可以设置更多选项 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Flutter插件包_10

创建的 Flutter 包如下 :

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_Dart包_11

Dart 包目录结构介绍 :

  • lib : Dart 代码目录 , 在默认生成的 flutter_package.dart 代码中 , 封装 Dart 功能 ;
  • pubspec.yaml : 配置了依赖 , 以及相关说明 ;

Dart 包是没有 android 和 ios 原生代码的 ;


2、命令行创建


执行如下命令 , 创建 名称是 flutter_package 的 Dart 包 ;

flutter create --template=package flutter_package

--template 设置当前创建的工程类型 , package 表示 Dart 包 ;
flutter_package 表示插件包的名称 ;

【Flutter】开发 Flutter 包和插件 ( Flutter 包和插件简介 | 创建 Flutter 插件 | 创建 Dart 包 )_原力计划_12