辛宝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 也是,我针对提交次数也瞅了瞅,不容易。这还只是开源放出来的,肯定还有没放出来的。

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。