完全不懂鴻蒙開發(fā)质欲,但是花了 4 天時間完成了鴻蒙 flutter 適配树埠,整體還是非常順利的。粗糙的總結(jié)一下嘶伟。
環(huán)境搭建
這里沒啥說的怎憋,跟著 OpenHarmony-SIG/flutter_flutter 文檔里的步驟操作就可以。
版本適配
開發(fā)中的項目九昧,一般都是追著最新的 flutter SDK和第三方庫升級的绊袋。但是鴻蒙 flutter 目前僅支持 flutter sdk 3.7.12
, dart sdk 2.19.6
。面臨的第一個問題就是版本降級铸鹰。大部分是 dart sdk 的版本限制癌别,較少的是 flutter sdk 版本限制。
- dart sdk 適配
dart 版本限制如果沒有頭緒還是很難處理的蹋笼,那湊巧我發(fā)現(xiàn)在 pub.dev 的每個庫都列出了 dart sdk
對應的庫版本展姐。然后在項目的 pubspec.yaml
中設置為可兼容的版本即可。
- flutter sdk 適配
如果第三方庫中有下面的限制剖毯,執(zhí)行flutter pub get
的時候也會出現(xiàn)版本不兼容錯誤圾笨。
如果出現(xiàn) flutter sdk 限制,因為沒有對應的參照表可以參考逊谋,所以會麻煩一些擂达。不過有個笨點的方法。environment: flutter: '>=3.20.0'
從 pub.dev 進入到 git 倉庫胶滋。查看庫的pubspec.yaml
文件的歷史紀錄板鬓,找到兼容flutter 3.7.12
的版本。
上圖中一個個看直到找到兼容 flutter sdk 版本究恤。討巧的方法是俭令,看 flutter 3.7.12 發(fā)布之后相近的時間去找。
- 第三方庫版本沖突適配
當多個庫引用了不同同一個庫的不同版本丁溅,對 dart sdk 版本不兼容時唤蔗,會出現(xiàn)庫沖突。解決辦法是在pubspec.yaml
中的dependency_overrides
強制鎖定版本窟赏。
經(jīng)過以上步驟,基本已經(jīng)解決了大部分版本沖突問題箱季。
- 鴻蒙平臺庫適配
當引入了和平臺交互的庫時涯穷,第一時間是看鴻蒙是否已經(jīng)做了適配,請看 - Flutter三方庫適配計劃, 在這個文檔中已經(jīng)實現(xiàn)的藏雏,是可以直接替換之前引用的庫的拷况。
如果鴻蒙沒有適配就只有四種方案了作煌,等官方適配、是否有其他人適配赚瘦、自己適配粟誓、注釋掉相關代碼啟用相關功能。
- 代碼適配
因為 sdk 版本降級起意,可能會出現(xiàn)一些功能在舊版本不可用的情況鹰服,這部分一般會在過程的 Problems
中報錯,很容找到揽咕。根據(jù)實際情況去修改代碼解決悲酷。
- 插件、module 適配
沒時間寫了亲善,暫時按住不表设易。可以參考 [其他] 部分的文檔蛹头。
經(jīng)過以上步驟基本上顿肺,基本已經(jīng)實現(xiàn)了版本匹配的大部分問題。
其他
在使用的時候渣蜗,可以感覺到鴻蒙在 flutter 上確實做的挺不錯的屠尊。感覺不足的是,文檔整理方面不夠硬袍睡。尤其鴻蒙相關的資料就比較少知染,官方文檔做了,入口卻很難找斑胜,其實挺吃虧的控淡。
OpenHarmony-SIG/flutter_samples
我覺得這是最值得一看的文檔了,從環(huán)境搭建到插件止潘、module 適配...
原創(chuàng)文章掺炭,轉(zhuǎn)載請標明出處。技術相關可私信咨詢凭戴。