DCloud 發(fā)布的 HBuilderX4.64 正式版,支持編譯 uni-app x 項(xiàng)目到鴻蒙平臺,實(shí)現(xiàn)跨平臺開發(fā)鴻蒙原生應(yīng)用。
至此,uni-app x 已經(jīng)完成 Android、iOS、鴻蒙、Web、微信小程序等主流平臺全覆蓋。
uni-app x,是下一代 uni-app,是一個原生的跨平臺開發(fā)框架。
uni-app x 的革新性在于其“開發(fā)態(tài)基于 Web 技術(shù)棧,運(yùn)行時編譯為原生代碼”的設(shè)計(jì)。開發(fā)者依然使用熟悉的 Vue 語法與類 TypeScript 的 UTS 語言編寫代碼,編譯到鴻蒙平臺時,代碼會被轉(zhuǎn)換為鴻蒙 NEXT 的原生語言 ArkTS,并基于 ArkUI 渲染引擎運(yùn)行,沒有虛擬機(jī)、沒有 js 引擎、沒有 Webview,實(shí)現(xiàn)真正的系統(tǒng)原生性能。
uni-app x 的高性能得益于:
1. 編譯為原生語言
uni-app x 編譯器,可以將 UTS 語言直接編譯為各個平臺的原生代碼:
toAndroid:編譯為 Kotlin 代碼
toiOS:編譯為 Swift 代碼
to鴻蒙:編譯為 ArkTS 代碼
toWeb和小程序:編譯為 js 代碼
2. 運(yùn)行時優(yōu)化
基于不同平臺的原生view封裝為跨平臺的、統(tǒng)一的原生 UI 庫。
將不同平臺的原生能力 API,封裝為統(tǒng)一的 UTS 插件,通過 interface 統(tǒng)一輸入輸出,形成了網(wǎng)絡(luò)、文件系統(tǒng)、多媒體等大量統(tǒng)一的跨平臺 API。
由于邏輯層與視圖層均在原生進(jìn)程中運(yùn)行,避免了跨語言通信的延遲問題,啟動速度和交互流暢度可媲美原生開發(fā)。
這種設(shè)計(jì)讓開發(fā)者既能享受 Web 技術(shù)棧的高效開發(fā),又能獲得原生應(yīng)用的性能體驗(yàn),真正實(shí)現(xiàn)“魚與熊掌兼得”。
uni-app x 的演示應(yīng)用已上架鴻蒙應(yīng)用商店,你可以通過單框架版本的純血鴻蒙手機(jī),在應(yīng)用市場搜索“DCloud 開發(fā)者中心系統(tǒng)”安裝體驗(yàn),該應(yīng)用詳細(xì)演示了uni-app x在鴻蒙平臺上支持的各種組件、API、CSS 以及部分模版示例。
在模板->slider100 示例中,頁面中有 100 個 slider 組件,拖動其中 1 個滑塊,剩余 99 個滑塊會同步移動。這非常考驗(yàn)邏輯層和視圖層的通信性能。歡迎開發(fā)者使用相同示例在其他跨平臺工具下比較,甚至可以用 ArkUI 的聲明式寫法來對比,看看哪個更絲滑。其他框架開發(fā)的經(jīng)常會出現(xiàn)不跟手、掉幀的情況。
至此,DCloud 面向鴻蒙平臺,已正式發(fā)布 uni 雙引擎,支持不同類型的開發(fā)者,快速開發(fā)鴻蒙應(yīng)用:
uni-app:基于經(jīng)典的 HybridApp 架構(gòu),邏輯層、視圖層分離實(shí)現(xiàn),使用 webview 渲染,對存量的 uni-app 項(xiàng)目開發(fā)者非常友好,幫助開發(fā)者以極低的代價,完成存量數(shù)字應(yīng)用(包括基于 uni-app 開發(fā)的 App、各家小程序、H5 等)的鴻蒙化轉(zhuǎn)換。
uni-app x:基于語言翻譯實(shí)現(xiàn),開發(fā)態(tài)使用 Web 技術(shù)棧,運(yùn)行態(tài)轉(zhuǎn)為平臺原生語言,使用原生組件和原生渲染,可以獲得和原生開發(fā)一樣的運(yùn)行體驗(yàn),更適合對性能體驗(yàn)要求更高的開發(fā)者。
站在 2025 年的技術(shù)拐點(diǎn)上,我們目睹了國產(chǎn)操作系統(tǒng)從愿景走向現(xiàn)實(shí),在今日中國之背景下,鴻蒙適配已從“做不做”,升級為“怎么做”。
Android、iOS、鴻蒙、Web、小程序,每個平臺都可以各自開發(fā)一套。但這必然不是聰明的做法。開發(fā)者一直希望找到一款好的跨平臺框架,而過去的跨平臺框架的性能一直無法令大型開發(fā)者滿意。Flutter 獨(dú)立運(yùn)行雖然性能不錯,但調(diào)用原生能力、嵌入原生組件時,性能又下降,并且 Flutter 在鴻蒙上沒有官方支持,Dart 生態(tài)的很多插件遷移不到鴻蒙上,實(shí)際開發(fā)效率較低。
uni-app x 作為一個真正原生化的跨平臺開發(fā)工具,讓開發(fā)者不用再顧忌跨平臺框架的性能問題,沒有 JS 引擎和 Webview 渲染。在運(yùn)行時都是原生編程語言、原生 UI。調(diào)用操作系統(tǒng)能力、調(diào)用原生組件時,都沒有跨語言通信、跨渲染引擎滾動,操作順暢絲滑。
除了高性能外,生態(tài)同樣非常重要。uni-app x 除了自身提供大量組件和 API外,還有豐富的插件生態(tài)。插件市場已經(jīng)有數(shù)千款 uni-app x 的插件,其中不少插件已支持鴻蒙 Next。接下來 DCloud 還將舉辦 2025 年插件大賽,進(jìn)一步活躍插件生態(tài)。詳見:https://ext.dcloud.net.cn/?uni-appx=1。
當(dāng)然還需要強(qiáng)調(diào)一點(diǎn),uni-app x 中不用插件也可以調(diào)用鴻蒙系統(tǒng)原生的數(shù)萬 API,這與其他跨平臺開發(fā)工具不同。其他跨平臺工具都需要手動封裝插件,插件數(shù)量不夠會嚴(yán)重卡住開發(fā)進(jìn)度。
下圖中可以看到,開發(fā)者在 Vue 頁面中可以直接引用ohos的系統(tǒng)庫,因?yàn)檫@段 Vue 代碼最終也被編譯運(yùn)行到 Arkts 引擎中,自然可以調(diào)用所有系統(tǒng)能力。
歡迎開發(fā)者使用 uni-app x 開發(fā)鴻蒙原生應(yīng)用。它可以幫助你使用簡單易用的 vue 語法,更高效的完成應(yīng)用開發(fā),且不影響性能。
當(dāng)鴻蒙版使用 uni-app x 后,你還可以同時漸進(jìn)式重構(gòu)之前的 Android 和 iOS 原生應(yīng)用,在原生應(yīng)用中引入 uni-app x 原生 sdk,將部分頁面模塊跨端統(tǒng)一為 uni-app x 實(shí)現(xiàn)。
更多詳情可查看 uni-app x 的資源文檔:https://doc.dcloud.net.cn/uni-app-x/。
特別聲明:以上內(nèi)容(如有圖片或視頻亦包括在內(nèi))為自媒體平臺“網(wǎng)易號”用戶上傳并發(fā)布,本平臺僅提供信息存儲服務(wù)。
Notice: The content above (including the pictures and videos if any) is uploaded and posted by a user of NetEase Hao, which is a social media platform and only provides information storage services.