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,若是有什麼不對或者建議請提出指點或交流,謝謝。
相關文章
相關標籤/搜索