小程序
小程序是近兩年發(fā)展非常迅速的一個(gè)生態(tài)。
小程序賴于應(yīng)用主體,基于這個(gè)主體提供的開放能力創(chuàng)建應(yīng)用,如微信小程序,利用微信提供的能力,向上構(gòu)建應(yīng)用,最后將開發(fā)好的小程序應(yīng)用進(jìn)行上傳發(fā)布,即可在微信內(nèi)打開。
本篇幅不會介紹如何開發(fā)小程序,小程序有非常完善的一套體系,其可以作為相對獨(dú)立的技能進(jìn)行學(xué)習(xí),主要目的是提示讀者可以向小程序方向進(jìn)階。
1. 職責(zé)
小程序開發(fā)者的職責(zé)比較模糊,因?yàn)樾〕绦虻募夹g(shù)棧幾乎是 前端相關(guān)
,整體結(jié)構(gòu)也很 前端
,所以一般來講,前端開發(fā)者承擔(dān)了 小程序
開發(fā)的職責(zé)。
相對前端開著而言,承擔(dān)小程序開發(fā)的職責(zé)是有好處的,小程序可以作為單獨(dú)的技能,前端進(jìn)軍小程序開發(fā)非常順滑快速,花很短的時(shí)間看下文檔,了解了核心理念就能上手開發(fā)。
2. 開發(fā)者工具
小程序的開發(fā)需要使用小程序主體提供的開發(fā)者工具,以 微信小程序
為例,就是要下載 微信開發(fā)者工具。
也就是說,如果需要開發(fā)多個(gè)平臺下的小程序,那每個(gè)平臺提供的工具都需要安裝一遍。
通常開發(fā)者工具會使用其預(yù)覽、調(diào)試功能,以及其他的一些生態(tài)鏈工具,如上傳、預(yù)覽代碼等,編輯工作會放在自己的編碼工具上進(jìn)行,因?yàn)楣俜教峁┑木庉嬈鞯墓δ芟啾绕渌髁骶庉嬈骰蛘?IDE 還有許多不足。
3. 同構(gòu)解決方案
第一個(gè)小程序的出現(xiàn),帶動了許多應(yīng)用推出“小程序”。
主流的應(yīng)用都有小程序,如 微信
、支付寶
、QQ
、頭條
等等。
如果要每個(gè)應(yīng)用主題下都實(shí)現(xiàn)一份相同的小程序,相當(dāng)于維護(hù)四分代碼,每個(gè)平臺可能還不同邏輯等等,維護(hù)多個(gè)平臺的通過產(chǎn)品是非常耗費(fèi)時(shí)間精力資源的事情。
針對這個(gè)痛點(diǎn),就衍生了許多的同構(gòu)框架,即使用一套通用的代碼,生成各個(gè)平臺下的小程序代碼。
這些框架結(jié)合主流框架(React、Vue等),或者設(shè)計(jì)了一套統(tǒng)一的規(guī)范來統(tǒng)一多端的代碼。
目前主流的方案有 Taro
、uni-app
、Chameleon
等,還有許多方案已經(jīng)停止維護(hù),不建議繼續(xù)使用。
選擇框架盡量慎重,要綜合考慮,非短期的項(xiàng)目更是要考慮到整個(gè)項(xiàng)目的使用場景、開發(fā)人員來決定。
4. 小結(jié)
小程序經(jīng)常會拿來和 App
進(jìn)行比較,App
的使用成本相對小程序高出非常多,因?yàn)樾枰?jīng)歷一個(gè)較長的下載、安裝過程,而小程序核心理念之一就是 即用即走
,非??觳?,而許多提供小程序的平臺又是“國民應(yīng)用”,所以移動端應(yīng)用很多時(shí)候小程序會作為首選。