Flutter 开发插件包plugin记录

Flutter 开发插件包Plugin

最近公司的项目采起了跨平台技术Flutter来开发,也是咱们技术总监推荐咱们尝试使用。前期也作了一些测试和试验,Flutter的实现功能和界面开发方面我的感受都比原生要省事很多。在咱们进行的这个项目开发过程当中也是一个不断学习和踩坑的过程。有些功能避免不了和原生系统API的交互,好比硬件设备调用等等方面,这就须要Flutter+iOS+Android混编的方案。因而某些功能须要作插件包,插件包提供一个Flutter统一接口进行原生iOS代码和安卓代码。下面是个计步器插件包的例子:java

  • 建立一个文件夹GetStepCount来存放插件包代码,用终端cd到文件夹路径下:
  • flutter create -t plugin get_step_count 命令建立项目,注意get_step_count是插件包的名称,并且要用下划线小写格式,不能用驼峰风格,不然报错:

图片描述

  • 建立成功以后会有一个插件包工程文件目录:
    图片描述

android目录下存放是安卓的java原生代码:android

图片描述
上图中里面java文件是一个获取系统版本的实现文件例子ios

iOS 目录下存放的是OC的原生代码:xcode

图片描述
上图中的.m实现文件是OC版的获取系统版本的实现文件例子
example文件是提供的一个能运行的demo,以供演示如何使用作的插件。学习

  • 下面开始填入咱们须要作的原生功能代码,在添加咱们须要的原生功能代码以前,须要对这个插件项目进行 build :
    cd 到 example文件路径下,安卓build命令 flutter build apk ,iOS build命令 flutter build ios --no-codesign
  • iOS 插件代码编写:
    通过build以后咱们进入插件包工程目录里的example文件夹下,运行 example/ios/Runner.xcworkspace文件,xcode打开的目录以下图:
    图片描述
    上图中的Cleasses中的OC文件就是实现原生功能的文件,把要实现的功能文件写在Classes下就能够了。若是实现功能须要第三方库的支持,在上面的Podfile中加入三方库依赖。
  • 安卓 插件代码编写:
    一样通过了build以后打开example里面的工程,从AndroindStudio里能看到/java/com.example.get_step_count/ 目录里就是安卓须要编码的地方。
  • 关于Flutter和 原生iOS/Android进行通讯这里再也不赘述,创建好Flutter与原生之间的通道就能够相互调用了。
  • 最后推荐一下阿里巴巴的闲鱼Flutter技术分享系列--闲鱼语雀https://www.yuque.com/xytech,阿里在Flutter跨平台方案中已经践行了大概快三年的时间,如今把成果拿出来(如今的闲鱼应用是用Flutter进行重构和业务支持的)进行分享也是值得敬仰的精神。
  • 本人也是刚用Flutter,若是有什么不对或者建议请提出指点或交流,谢谢。
相关文章
相关标签/搜索