多端开发之uniapp开发app
最近在給f做一些工具app,學(xué)習(xí)了不少關(guān)于uniapp編寫android應(yīng)用的知識(shí)。
首先,App應(yīng)用的創(chuàng)建的時(shí)候要選擇項(xiàng)目類型為uniapp類型。最開始我選擇的是h5+項(xiàng)目,這種項(xiàng)目就比較容易寫成純js的項(xiàng)目,利用一些html5plus能力,或者使用mui來編寫手機(jī)app。
我調(diào)研了一下,uniapp和h5+(mui為代表)的差異和優(yōu)缺點(diǎn)如下所示。
| uniapp | 可以使用unipp封裝的組件和api,有海量的插件可以從插件市場(chǎng)中找到。兼容多端,也可以用html5plus的api能力。可以復(fù)用小程序項(xiàng)目的邏輯代碼,對(duì)團(tuán)隊(duì)的技術(shù)積累有好處。 | 需要學(xué)習(xí)vue語(yǔ)法,可能性能沒有mui的優(yōu)化效果好。 |
| H5+ | 也可以跨端生成多種應(yīng)用,但是不能使用uniapp的組件、插件以及api中涉及h5的能力。其中mui號(hào)稱可以達(dá)到原生應(yīng)用級(jí)別的性能和交互效果。 | 局限于原生js以及依賴庫(kù)的編寫方式。無法統(tǒng)一和小程序項(xiàng)目的技術(shù)棧和編程方式,無法服用代碼。 |
我首先嘗試了一下h5+的mui項(xiàng)目,發(fā)現(xiàn)寫起來很原始,因?yàn)榇蟛糠帜芰Χ际莔ui的js庫(kù)提供的,寫法完全和uniapp項(xiàng)目不同,很多uniapp封裝的組件和api都不能直接使用。為了長(zhǎng)遠(yuǎn)考慮,如果以后還要生成ios的app,mui技術(shù)未必適合。
再加上之前的小程序端也是uniapp類型項(xiàng)目,有很多基礎(chǔ)庫(kù)和方法是可以借鑒的,所以最終選擇使用uniapp類型的項(xiàng)目來開發(fā)f端的app。
不得不說uniapp來開發(fā)跨端的應(yīng)用是非常方便的,同一套代碼除了平臺(tái)特性的代碼不能直接在其他平臺(tái)上用,大部分通用的能力和代碼是可以復(fù)用的。
tab上的定義還是在pages.json里面的tabBar定義,圖片資源的目錄結(jié)構(gòu)也可以參考之前的項(xiàng)目。
然后就是一些功能開發(fā)了,其中uuid的獲取方式和小程序不通,原始app的獲取uuid(設(shè)備的唯一標(biāo)識(shí))的api在html5plus上也有對(duì)應(yīng)的api,獲取方式如下所示。
值得一提的是html5plus里面提供了非常多好用的html5新特性,包括藍(lán)牙(Bluetooth)、AD(廣告聯(lián)盟模塊)、設(shè)備麥克風(fēng)(Audio)、二維碼(BarCode)、設(shè)備的攝像頭(Camera)、設(shè)備信息(Device)、系統(tǒng)相冊(cè)(Gallery)等。上面獲取uuid的方法就屬于管理設(shè)備信息的API之一。國(guó)內(nèi)有專門的HTML5產(chǎn)業(yè)聯(lián)盟,相關(guān)API可以從這里跳轉(zhuǎn)。
由于我是開發(fā)的andorid app,所以在調(diào)試的時(shí)候也會(huì)使用到android studio,關(guān)于調(diào)試的方法我會(huì)單獨(dú)寫一篇文章來講述,這里不展開說。大部分時(shí)候我們都有2種選擇,要么使用AVD(虛擬設(shè)備)來調(diào)試app,要么連接真實(shí)手機(jī)進(jìn)行調(diào)試(假設(shè)你有android系統(tǒng)的手機(jī))。
調(diào)試的過程會(huì)遇到一些坑(后面寫專題單獨(dú)講),但是最終我們是可以開發(fā)出較為滿意的app,通過hbuilder可以打包成需要的apk。
這種開發(fā)模式非常流暢,適合創(chuàng)業(yè)團(tuán)隊(duì)或者全棧技術(shù)人,一套代碼生成多端,開發(fā)效率非常高。測(cè)試代碼也可以復(fù)用之前的,uniapp項(xiàng)目的自動(dòng)化測(cè)試都是類似的,對(duì)測(cè)試團(tuán)隊(duì)也是非常友好。
性能方面,由于是小范圍使用,數(shù)據(jù)量不是很大,體驗(yàn)上和原生app差別不大。對(duì)于資源也能預(yù)加載,這方面我還沒有深入了解,但是提供了相關(guān)api,不用太擔(dān)心lazy load的問題。
總結(jié)
以上是生活随笔為你收集整理的多端开发之uniapp开发app的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 心理学中的催眠术怎么学[为本教育]
- 下一篇: 关于旅行的随笔散文