開發(fā)小程序的五種方式對比,跨端?低代碼?原生?還是云開發(fā)?
目前“小程序”的開發(fā)與應用呈現(xiàn)“井噴”之勢,作為小程序的鼻祖,2021年微信小程序開發(fā)者突破了300萬,日活躍用戶數(shù)(DAU)已經(jīng)超過4.5億,微信為開發(fā)者支付的廣告分成接近百億。在微信小程序火爆之后,各個互聯(lián)網(wǎng)廠商相繼推出了自己的平臺小程序,比如:支付寶小程序、百度小程序、字節(jié)跳動小程序、快應用、QQ小程序、360小程序、京東小程序、快手小程序等。小程序相對于APP應用存在若干的優(yōu)勢:
- 免安裝,使用方便,占用更少的手機資源
- 容易分享,小程序的內(nèi)容產(chǎn)出容易進行社群分享傳播
- 學習的門檻低,開發(fā)成本逐步降低
我們就從開發(fā)成本逐步降低,從這一個角度來說明一下目前小程序的若干開發(fā)方法。
- 一、原生開發(fā)
- 二、結(jié)合UI框架開發(fā)
- 三、跨端開發(fā)方式
- 四、低代碼開發(fā)
- 五、云開發(fā)
- 總結(jié)
一、原生開發(fā)
優(yōu)點是:以微信小程序為例,原生開發(fā)官方的文檔、視頻教程、API查找都非常的規(guī)范、系統(tǒng),官方的文檔齊全。而且原生開發(fā)更接近手機服務底層,一旦出現(xiàn)問題容易定位,并解決問題。缺點是:原生開發(fā)的代碼量相對比較大,組件少、樣式美觀度不夠,語法的靈活度不夠,開發(fā)效率相對較低。并且不同平臺的小程序語法不同,如果小程序需要適配多個平臺,開發(fā)成本非常高。
二、結(jié)合UI框架開發(fā)
為了解決原生開發(fā)的代碼量大,組件少美觀度不足的問題,出現(xiàn)了很多適配小程序的界面UI庫。比較典型的有:騰訊的weui、有贊的vantUI。使用了界面UI庫之后,代碼量明顯減少,代碼更加簡潔,提高了開發(fā)效率以及代碼的可維護性。
這些組件UI庫的文檔也都非常的規(guī)范化、系統(tǒng)化。只需要簡單的幾個步驟就可以引入文件、使用組件,大部分操作只需要進行代碼搬運即可。
三、跨端開發(fā)方式
正如筆者之前所說的,目前已經(jīng)有非常多的廠商推出了自己的小程序,如:支付寶小程序、百度小程序、字節(jié)跳動小程序、快應用、QQ小程序、360小程序、京東小程序、快手小程序等,加上android、IOS、H5移動端頁面,如果針對每一個平臺開發(fā)一套小程序,那么開發(fā)成本是非常高的。于是出現(xiàn)了跨端開發(fā)的框架,寄希望于寫一套代碼,就可以自動生成適配多個平臺的小程序、H5、android、IOS。這種框架目前還是很多的,大概分為兩個派系
- vue語法派系,比如uniapp、chameleon等
- react語法派系,比如阿里的remax,京東的taro
其中由于國內(nèi)的vue生態(tài)比較好,uniapp幾乎是復用了vue語法,所以其學習成本相對較低。組件庫以及插件非常豐富,深受vue開發(fā)者的喜愛。在這里筆者要為uniapp鳴不平,由于很多開發(fā)者一直信奉“國外的月亮比較圓”,每每提到uniapp的時候,就會有人跳出來指出“這不行、那不行”,但是筆者的團隊已使用uniapp開發(fā)了多款跨端移動應用,總體來說還是不錯的。只要你不是使用它開發(fā)那種和手機硬件高度結(jié)合的應用(比如連接各種手機傳感器的那種應用),uniapp完全可以滿足你的開發(fā)需求。之前一直為人詬病的文檔不規(guī)范的問題,uniapp也在一直地不斷完善。最重要的是:uniapp的用戶量非常大,一旦出現(xiàn)了問題你可以與大量的開發(fā)者交流解決方案。
當然使用跨端開發(fā)框架的缺點就是:問題的排查成本高,遇到框架有bug或無法支持的功能時,只能期待官方更新版本。當然,筆者還是要介紹自己的經(jīng)驗:只要你不是使用它開發(fā)那種和手機硬件高度結(jié)合的應用,問題都不大,都能解決。 當然也不是說,不能開發(fā)與手機硬件結(jié)合的應用,就像調(diào)用手機GPS獲取經(jīng)緯度、撥打電話、羅盤、藍牙等筆者團隊也都開發(fā)過,性能上對比andoid、IOS、小程序原生會差一點點,但是總體也是可用的。目前uniapp支持的硬件設(shè)備API如下:
四、低代碼開發(fā)
開發(fā)者總是越來越懶惰的,我覺得程序員未來一定是向低代碼、人工智能去發(fā)展的,未來的開發(fā)者只需要寫非常少的代碼就可以完成今天不敢想象的功能。雖然“低代碼”目前在很多領(lǐng)域還是雞肋,但是在小程序開發(fā)的領(lǐng)域,低代碼已經(jīng)具備了相當?shù)目尚行?,畢竟小程序開發(fā)重要的環(huán)節(jié)就是界面設(shè)計。所以,可視化的頁面平臺,通過拖拽組件、輸入配置來改變組件的樣式和行為,再自動生成代碼。這種小程序的低代碼平臺應運而生,如騰訊的WeDa。
五、云開發(fā)
最后給大家說一下云開發(fā),這種開發(fā)方式目前我只知道是“微信小程序”提供的。它解決的主要問題是:目前開發(fā)小程序的核心工作仍然是設(shè)計與前端實現(xiàn),很多小程序的開發(fā)者都是前端開發(fā)者,這就會出現(xiàn)一個問題:前端開發(fā)者沒有后臺數(shù)據(jù),無法獨立完成開發(fā)?!霸崎_發(fā)”方式應運而生!
云開發(fā)的就是不需要自己搭建后臺服務,通過調(diào)用操作數(shù)據(jù)庫的云函數(shù)即可獲取服務端的數(shù)據(jù)。即使只會前端,也能開發(fā)出一個完整的小程序。 當然后端的這些云服務都是需要付費的!
總結(jié)
最后不管怎樣,小程序開發(fā)的核心仍然是前端開發(fā),即:開發(fā)界面、交互以及一些數(shù)據(jù)請求的業(yè)務邏輯。需要你掌握最基礎(chǔ)的HTML JS CSS,雖然不完全一樣,但大同小異。目前跨端開發(fā)仍然是主流的開發(fā)方式,所以最好先掌握一門前端框架,vue或者react。