MUI、H5+開發(fā)技術(shù)總結(jié)

mui_logo.png

基于MUI、H5+這一套技術(shù)開發(fā)APP,曾經(jīng)寫了幾篇相關(guān)文章關(guān)注的人還真不少,以至于我總感覺現(xiàn)在開發(fā)H5比原生的更火熱。今天就來分析下,算是以往的一個學習總結(jié)。無論是與非,好與壞,皆有它存在的道理。

概述

mui實現(xiàn)方式依賴系統(tǒng)webview,控件大多是HTML5控件,通過DOM渲染;

對比單純的webview加載頁面多了一些優(yōu)化,比如CSS動畫、頁面預(yù)加載、多頁面顯示隱藏模擬窗口切換,以至于在視覺上看起來不那么生硬。

H5+調(diào)用原生接口,也是通過js調(diào)用來實現(xiàn)的。

優(yōu)點:

優(yōu)點就是開發(fā)工具HBuilderX很好用,其他H5開發(fā)的優(yōu)點就不贅述了。

不足:

  • 1、性能問題

通過webview來加載實現(xiàn)造成先天性不足,所以不要相信媲美原生性能等宣傳口號,包括MUI在內(nèi)的其他類似框架也都差不多,在頁面流暢度、性能等不管怎么優(yōu)化都是無法跨越的門檻。特別對于頁面復雜度、稍具有規(guī)模的項目效果很難讓人滿意。

  • 2、原生調(diào)用

通過Native.js提供的接口加載原生類、方法,這就是很專業(yè)的事情了,你必須有iOS、Android原生的開發(fā)技術(shù)否則這一招數(shù)對你無效。
而且即使加載比如iOS的類文件等,加載系統(tǒng)本身的類庫還可以,你如果加載自定義的類貌似不行。

經(jīng)查詢,如果加載自己的類必須離線打包,在線打包無法實現(xiàn)。離線打包我熟悉但是我仍就沒搞明白自己的文件如何放、如何用,最后放棄,這一道道操作無疑又是一道門檻。

  • 3、 關(guān)于跨平臺
    一套代碼同時打包iOS、Android。是的、沒錯,確實可以同時打包。但也僅僅是打包,真正的APP實際運行效果又如何?我不管,反正我就是能打包多個平臺。

結(jié)論:

只要會前端開發(fā)就能開發(fā)APP了,對于沒有原生開發(fā)能力,對于一些簡單的、不那么復雜的應(yīng)用或者沒那么高要求的標準可以用MUI,因為上手簡單,開發(fā)速度快、成本低。

對于有點復雜的、要求性能的或者對原生依賴比較高的應(yīng)用還是原生吧。

未來:

我們使用MUI、H5+開發(fā)APP主要為了簡單方便快速,我們的APP復雜度也沒那么高,同時因為我們的客戶不確定有時要iOS的、有時要Android的,我們的隊伍原生人少,前端多。所以現(xiàn)有的項目如果沒有特殊情況一般都會用MUI。

跨平臺一直是我們的希望,我們也在不斷的摸索、學習、嘗試。

我個人使用MUI主要開發(fā)Android,因為我自己做了個小項目(dctt前面文章有介紹),單獨在Android上我認為效果還是可以的。

下一步:

  • 公司的項目計劃轉(zhuǎn)uniapp
    uni-app里vue文件是基于webview渲染的。它不在是一個網(wǎng)頁套殼應(yīng)用,它的js根本不運行在webview里(所以也沒有document等對象),也不受wkwebview的各種限制。而如果使用nvue的話,視圖層也不在webview里,和html5一點關(guān)系都沒有。

曾經(jīng)我也寫過一個demo簡單測試體驗下,無論在安卓還是iOS上感覺還不錯。

  • 個人開始打算入坑Flutter了,以后有時間了把dctt寫個flutter版本的。

相關(guān)介紹

H5開發(fā)移動端APP基于H5+ http://www.itdecent.cn/p/8e7e8312f93d

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容