Flutter的Package与Plugin开发
1、Package(包)
只包含Dart代码
1.1、创建Package(包)
- 要创建Dart包,可以终端使用参数
--template=package
来执行flutter create
% flutter create --template=package 'package_name'
-i
、-a
:指定语言,默认iOS为OC,Android为Java% flutter create --template=plugin -i swift -a kotlin 'plugin_name'
1.2、上传Package内容优化
1.2.1、上传本地图片资源
- 最好的还是使用系统icon,没有复杂的配置,对下载package的用户友好,减少报错
上传的是lib文件夹
,所以直接将图片文件夹image置入lib文件夹下即可
1.2.2、使用package中图片资源
- 配置图片完整路径
- Widget中调用时增加
package属性
标注来自于哪个package包Image( image:AssetImage('images/imageName.png', package:'package_demo'), )
1.3、发布Package(需要梯子🪜)
- 发布Package需要对
pubspec.yaml
文件进行配置- 包含图片资源要配置pubspec.yaml文件中的资源路径,解除
assets
的注释
- 包含图片资源要配置pubspec.yaml文件中的资源路径,解除
1.3.1、检查包
- cd到flutter项目文件夹
% flutter packages pub publish --dry-run
1.3.2、发布包
% flutter packages pub publish
- 发布插件和包都需要Google账号,同时需要翻墙
- 复制提示链接,粘贴到Google上选择账号登录,完成授权
- 翻墙不能解决时,可能与镜像有关,建议进行镜像配置,镜像错误提示以下:
- 解决方法为不使用官方的发布方式,而是指定服务器,镜像发布:
% flutter packages pub publish --server=https://pub.dartlang.org
- 这时会要求配置
LICENSE
版权证书,配置好即可
- 解决方法为不使用官方的发布方式,而是指定服务器,镜像发布:
1.3.3、生成LICENSE
- Github上新建仓库选择license选项
- 点击LICENSE将内容粘贴进flutter项目的LICENSE文件中
1.4、为package创建example
- 创建flutter项目,get上传的package,书写示例代码将数据等都放在main.dart一个文件中(创建这个文件就是要一个main.dart复制给package包,因为后者创建时就不带有main.dart文件)
- 将这个创建的项目的main.dart文件,复制到打包的package文件的,自己创建的example文件夹中
- package包的package_demo.dart可能需要将功能拆到多个.dart的
part
文件中:- 此时拆分的dart文件中要通过
part of 'package_demo.dart'
指定所属 - 主文件package_demo.dart中添加
part '拆分文件名.dart'
- 此时拆分的dart文件中要通过
2、Plugin(插件)
- 不仅包含Dart代码,
还包含iOS与Android的API
2.1、创建Plugin
- 要创建插件包,可以终端使用参数
--template=plugin
来执行flutter create
% flutter create --template=plugin 'plugin_name'
--org
:指定组织,反向域名表示法,Dart包package是不需要组织名称的,--org只有在--template=plugin时才生效% flutter create --org com.example --template=plugin 'plugin_name'
2.2、编写Plugin
- 可以写在iOS的Runner工程中,然后替换进plugin的iOS代码中
2.3、检测和发布的方式与命令和package完全一样
转载自:https://juejin.cn/post/7041612701625712671