上周末,凡泰極客CTO - 徐鵬受邀出席「前端早早聊」直播活動,并以【跨端新挑戰-鴻蒙時代的跨端】為主題進行演講。
摘取部分分享實錄:
終端系統的數量和種類不斷增長,開發者面臨著多平臺開發的挑戰。以往開發者一般只需要維護iOS、android、MacOS、windows幾個主流核心終端操作系統即可,但是隨著信創化的趨勢,統信、麒麟、鴻蒙等操作系統也開始崛起,后續可能還會涌現 HyperOS、BlueOS 等等操作系統,如果這么多的操作系統終端,每個終端都用不同的語言維護,研發成本將是巨大的。
根據鴻蒙提供的信息,第一批兼容支持的跨平臺框架會是 React Native、Flutter、Weex等等,「目的也是為了提供開發生態中的歷史資產復用,降低開發者的兼容門檻」,但是例如 React Native ,針對 Harmony 平臺,software mansion 社區版本會新增一個 OpenHarmony Renderer 去將前端標簽轉化為 ArkUI 里的控件進行渲染,而在需要通過 JSI 溝通的 Plugin Module 場景,在 OpenHarmony 上會通過原生的 NAPI 去適配,可以看出來這是一個妥妥的苦力活,而適配 Openharmony 的 Flutter 版本現在由社區開發維護,這個版本的第三方 packages 也在逐漸遷移適配,這樣的話可能會同時存在兩個版本的 Flutter,而這兩個版本間的插件生態的兼容性會比較麻煩。
那有沒有更優的跨端技術選型呢?
FinClip 是一個行業領先的小程序容器技術,FinClip SDK 已全面適配鴻蒙OS原生開發(HarmonyOS NEXT),通過 FinClip 技術,任何企業或者開發者都可以將現有小程序場景直接上架至鴻蒙App中,實現場景快速遷移,同時,還能通過 FinClip Studio 將現存小程序反向生成鴻蒙App。
而且 FinClip 完全擁抱微信生態,兼容微信語法, 也就是說企業或者開發者可以將已有微信小程序代碼在 FinClip 中進行項目導入,從而導出為 Harmony OS 中可用的工程文件,并上架至鴻蒙應用市場。由于導出的工程文件自動集成了 FinClip SDK ,所以直接擁有小程序的運行能力,后續可在所導出的 App 上繼續上架更多小程序,豐富 App 上的使用場景。
FinClip為鴻蒙提供小程序運行能力,出于以下原因:
-
以Web類型技術實現應用,而不是以傳統原生手段(例如在iOS上基于Swift/ObjC、在Android上基于Kotlin/Java),更符合市場剛需。鴻蒙在操作系統層面對Web技術的支持是原生的(例如開發語言采用TypeScript,一種JavaScript的超集),用小程序替代原生App高度可行。
-
小程序天然跨端,對于各個平臺都是由各平臺原生語言開發,將各平臺的差異抹平到同一水平線,然后由 webview 來承擔頁面的渲染,將各平臺的差異降到最低。然后再在基礎庫這一層面做一些兼容邏輯,最后在上層的小程序開發者基本就感知不到平臺的差異,可以專注于開發業務邏輯。
-
小程序作為應用程序,也將極大程度豐富鴻蒙的數字生態,也將幫助鴻蒙社區無縫對接海量的小程序技術開發工程師。
-
企業幾乎都有自己的小程序內容,將可以無縫遷移到鴻蒙上,而無需再采用另一種技術去重新實現。企業在過去的多年里,自行在自己的融合型App中打造的融合HTML5碎片的“熱更新”技術,其底層遷移至鴻蒙,依然需要重新開發與調試。在一個持續優化更新、本身還在快速發展的操作系統如鴻蒙上,此工作并不簡單,開發人員需要重新培訓,知識體系與Android并不一樣。
現在留給我們的時間不多了,如果企業有鴻蒙App改造的需求,是不是可以將App鴻蒙化的改造排個優先級?先把關鍵的、需要適配的核心功能,自研團隊集中精力適配了,其他業務場景,重要的通過小程序化改造,或者讓第三方開發商提供小程序的版本,以極低的門檻植入到App中,先保證關鍵業務能在鴻蒙NEXT中運行,后續再慢慢改造邊緣場景呢?