微信推出小程序平臺以來,國內各大公司陸續跟進,帶來了小程序的繁榮。從開發者的視角,咱們看到小程序開發者變多,各類小程序技術方案不斷出現。html
- 小程序加強型開發框架的出現
- 小程序原生框架能力擴充,典型的有 wepy/mpvue
- 小程序跨端開發框架的出現
* 經過編寫一套代碼,實現多個小程序平臺運行,典型的有 taro/uniapp
- 小程序與 web/native(app)融合的技術需求出現
* 因 小程序/web/native 平臺差別較大,雖然有許多框架進行了嘗試,但還處於蠻荒時代,未出現獲得一致承認的方案
而這繁榮的背後也顯得雜亂,影響開發者選擇適合的技術方案。基於此,咱們作了一次小程序跨平臺開發方向的調研,並得出以下建議:前端
需求場景 | 推薦技術方案 |
---|---|
只開發微信小程序應用 | 推薦採用原生小程序開發方式 |
已有微信小程序項目,當下考慮拓展到支付寶/百度等平臺 | 1. 推薦使用 Antmove 小程序轉換器,可一鍵轉換到其它小程序平臺 2. 推薦使用 taro,taro 提供了微信小程序到 taro 代碼轉換,再基於 taro 代碼轉換爲其它小程序平臺的能力 3. 推薦使用 uniapp,uniapp 語法與微信較爲接近,須要人工改造爲 uniapp 代碼,而後轉換爲其它平臺小程序代碼 |
小程序新業務,無跨端需求 | 推薦採用原生小程序平臺開發 |
小程序新業務,有跨端需求 | 推薦採用 taro/uniapp/Antmove |
從咱們的瞭解來看,目前小程序市場,大部分仍是微信小程序應用,其次是支付寶小程序,百度小程序。對這幾端的融合也是目前比較切合需求場景的需求。基於此,咱們調研了從微信小程序到其它端的轉換的狀況,幫助你們瞭解如何快速實現微信小程序到其它小程序的遷徙。vue
說明: 如下測試結果基於微信官方微信小程序 demo 調研而得
Antmove 是目前小程序轉換開源解決方案裏成熟度最高的,經過 Antmove 轉換器,能夠一鍵將微信小程序轉換爲其它平臺小程序,也能夠將支付寶小程序轉換爲其它平臺小程序,目前還在持續維護更新。react
基於 Antmove 的多端開發相關介紹能夠從這裏瞭解git
介紹:Taro 是一套遵循 React 語法規範的 多端開發 解決方案。
Github: https://github.com/NervJS/tar... github
Taro 本質上是一套自定義語法的跨端開發方案,但官方提供了微信小程序轉換爲 taro 代碼的工具,基於此,用戶能夠藉助於 taro 將微信小程序轉換爲 taro 代碼,而後再將其轉換爲對應平臺的小程序代碼。web
轉支付寶:小程序
轉百度小程序微信小程序
界面(不支持,須要修改的)react-native
接口(不支持,須要修改的)
轉頭條小程序
注: 目前轉碼工具初始化微信小程到taro代碼會有圖片路徑處理錯誤,須要手動修改一下
介紹: uni-app 是一個使用 Vue.js 開發全部前端應用的框架,開發者編寫一套代碼,可發佈到iOS、Android、H五、以及各類小程序(微信/支付寶/百度/頭條/QQ/釘釘)等多個平臺
Github: https://github.com/dcloudio/u...
介紹:相同風格的語言開發開發多端小程序的開發框架,語言風格相似小程序,支持雙向數據綁定
Github:https://github.com/didi/mpx.git
說明:除了 Antmove 轉換器外,其它方案解決方案的初衷是基於 react/vue 或自定義語法的角度來實現多端,因此微信小程序轉換到多端這一轉換流程並不包含來這些框架的全部能力和優點,對於原生小程序遷移到其它平臺本文調研結果能夠參考。
這裏主要指採用非小程序語法開發小程序應用。
非小程序語法開發業務代碼方案已有諸多的調研和說明,可參考以下連接:
從上面咱們能夠看到隨着小程序的繁榮,跨端融合這個概念被提得愈來愈多,也出現了許多解決該問題的框架。但這真的表明着跨端開發的繁榮嗎?
我以爲還不是,小程序和 web,小程序和 native app存在着自然的差別化,這是很難彌補的,雖然社區上有出現了不少的方案,但都還不能說成熟。
只考慮小程序這一平臺,差別性會小一點,但想作到徹底的一套代碼,多個小程序平臺運行仍是很難。這裏有如下幾個緣由:
雖然有如上的差別,但依然小程序間的跨平臺仍是看到了必定的可能性,這也是目前小程序跨端方案出現這麼多的緣由。
雖然上面說起了跨平臺開發的不足,但其優點依然存在,一套代碼多處運行充滿了誘惑。當咱們將全端的要求下降,只考慮某些平臺的狀況下,已經出現了較爲成熟的方案。
大多數狀況下其實咱們須要的只是某一端或是幾端的融合,在 taro 的統計示例中咱們能夠發現,微信小程序應用佔比達 90%,即大多數的應用只用 taro 開發了微信小程序。uniapp 也提到絕大多數應用只用其來開發其中一端的應用。在 Antmove 的統計中,絕大部分的用戶也只是微信小程序和支付寶小程序兩端的融合要求。
在小程序以前,多端融合就已經被說起推出,在前端領域中,react 在這方面作得比較成功。在 react 學習一遍,便可多處編寫的理念下,較低成本的實現了多端的需求,如 react-web/react-native/react-sketch 等,也所以構建了豐富的 react 生態。
除了 react 體系外,以下的方案則切實的實現了某些平臺的跨端
小程序
暢想將來,設備複雜化是個必然的趨勢,而這也更考驗着跨端技術方案是否足夠成熟。