辛宝Otto

辛宝Otto 的玄酒清谈

北漂前端程序员儿 / 探索新事物 / Web Worker 主播之一/内向话痨
xiaoyuzhou
email

速通-Donut 和 uni-app x

image.png

這是我無意間看到的一篇文章《騰訊和 DCloud 最近放大招搶地盤,Donut 和 uni-app x 你選誰?》,感覺有點意思,未來播客有可能邀請到 DCloud 的保哥返場做嘉賓分享。這裡帶讀做個介紹。

大部分是我的感受,一部分是原文,原文的部分我會標註。

原文講到,目前一套代碼做跨是經濟又實惠的選擇,目前的方案有 React Native、Flutter、uni-app 和 taro 等。目前國內做小程序有優勢的 uni-app,目前騰訊搞了多端框架 Donut,uni-app 搞了 uni-app x

我以為都是新東西,發現也不是,這裡自己做個介紹。

Dount#

這是騰訊做的東西。

快速一翻,微信小程序可以一鍵轉 app,這裡應該還好理解,就是 api 做映射,微信小程序能做到的能力,對應 app 也給權限,微信小程序做不到的 app 也做不到。

對開發者來說,先在平台上開通相關權限,小程序開發者工具會多一個功能,允許本地編譯生成安裝包,就可以本地調試了,全程倒是很簡單。

image.png

幾個值得一說的點:

  • 和微信結合比較好,喚起微信登錄、手機登錄、蘋果登錄什麼的,看文檔只需要調整參數就能實現
  • Dount 格外強調開發者空間,可以類比公眾號的開發者綁定。
  • 為了減少體積,把一些特定平台功能拆為 SDK,比如 ws、藍牙、lbs 模塊等
  • 小程序珠玉在前,哈哈隱私協議不意外也專門進行了介紹
  • CICD 構建可以支持雲構建,構建消耗次數
  • 消息推送也內置好了,用的是騰訊雲推送
  • lbs 廣告等都用上了,確實量大管飽
  • 還沒看到源代碼裡怎麼引入原生 SDK 做能力拓展。

看下最近的更新頻次如何

  • 移動應用助手,大概一個多月兩個月一次發版
  • ios 這邊小版本,到 1.1.2 了看不到時間
  • Android 這邊到 1.1.0 了看不到時間

沒了,和開源沒啥關係,是封閉的。

image.png

uni-app x#

一套代碼,在 ios 編譯為 swift,在 Android 編譯為 kotlin,純原生,沒有使用 js 引擎和 webview。

源碼是開源的。https://gitcode.net/dcloud/hello-uni-app-x

整體上 uts + uvue

  • uts 語言 - uni type script。會被編譯為 js/kotlin/swift
  • 和 ts 相似,做了一些約束,一切為了跨端,沒有 js、js 引擎的概念,是一門語言
  • uvue 替代的 html+css,可以理解為框架,基於 uts 兼容 vue 語法
  • 畢竟最終都是純原生,沒有各種中間層通信損耗

果然是靠近技術,貼了代碼,看著是 vue2 的 options 語法。

  • uvue 暫時不支持 setup
  • uvue 只支持 flex 布局
  • 放了一些組件,容器、文字、圖片、富文本、輸入框相關、音視頻等
  • 一些能力還在開發,主要是一些組件能力
  • 截止目前,只實現了 Android,ios 的 swift 還在開發
  • 自動化測試額外提及
  • 歷史兼容遷移額外提及

思考#

從一篇文章出發看到了兩個不同的技術方案:

  • 現成項目轉 app
  • 開新坑做 uts 轉原生語言

都是挺好的思路。

Dount#

但騰訊雲開發說改就改的歷史,如鯁在喉,希望能持續做下去,技術不開源,一旦放棄了就沒了,經驗都不能復用,而且如果用了騰訊未開放的能力,或者遇到了問題只能等待官方下場解決。如果看一眼小程序的論壇,心會涼半截。

uni-app x#

再說 uts,開發工作量我認為是巨量的,投入多少人力去一個一個扣。

目前開源的是 uni-app-x,簡單做個數據探查。

目前投入小半年,看 git 提交是六月初開始的,參與人員是 21 個郵箱,可能還包含了公司郵箱個人郵箱對應一個人的情況,投入了不少程序員去做。整體提交大概 600 多次,當然只是個數據,不代表什麼。

image.png

上圖是提交十次以上的記錄,有 14 個人頭 by git shortlog -sne,開發分支更領先一點,差異不大。

這是代碼統計。歸類 uts -> ts 归类 uvue -> vuejs componet

-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Text                             1              0              0           2598
JavaScript                      67            261            231           2272
JSON                            15              6              0           1535
Vuejs Component                  9             43             44            670
CSS                              3             51             17            226
HTML                             2              3              4            111
Markdown                         4             21              0             51
SCSS                             1             14             25             37
TypeScript                       1              3             23             16
INI                              1              1              0              8
XML                              1              4              0              5
-------------------------------------------------------------------------------
SUM:                           105            407            344           7529
-------------------------------------------------------------------------------

忽略第一個 txt。

看辛苦程度 git log --pretty=format:"%ad" --date=short | uniq -c

展望#

整體看下來還挺震撼的,騰訊這邊平台力度大,相比也投入了不少人去做兼容。uni-app 也是,我針對提交次數也瞅了瞅,不容易。這還只是開源放出來的,肯定還有沒放出來的。

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。