2021年马上就结束了,回看这一年。
年初的时候,跨平台你说是伪需求吧,其实也有用,你说是硬需求吧,其实有点伪。
年末再来总结一下,大项目不缺原生程序员,不需要跨平台,小项目人手不够为了占领多平台才是硬需求。
我觉得国内最大的跨平台需求在小程序,毕竟那么多相差不大的平台,实在不应该写那么多套代码。
如有错误请指出,我核实后改正。如果抬杠就是你说的对。说别人项目是 KPI 项目的时候,请你也发布一个 KPI 项目。
企业的技术在不断迭代,新技术成熟以后放弃旧框架维护是人之常情,没有人会用大量时间维护和自己完全没有利益关系的东西。

小弟正在找工作,帮小弟点个 star 和关注呗。
小弟的 GitHub 主页
小弟的开源项目 grpcman 这是小弟之前的开源项目,是一个 gRPC 调试工具。

以下排名不分先后,按照我的熟悉排序。

MP 相关的跨平台方案

其实 2021 年底小程序已经不是那么火了,但是小程序跨平台框架已经慢慢发展成为全端框架了。就算哪天小程序死了,H5 和 App 肯定一直活着,学会了总是有点用的。

Uniapp

https://uniapp.dcloud.io/
小程序出现之前只知道他们公司的 5+Runtime,说实话在这之前我一直觉得跨平台没什么意义。直到有一天要写小程序,直到有一天要小程序和H5双版本的需求,才感觉这种框架存在的意义,减少了一半的工作量都不止。而且官方有插件市场,抄起来也很爽。感谢各位有奉献精神的大佬。

Taro

https://taro-docs.jd.com/taro/docs/README
说实话没实际做过项目,之前只支持 React 语法的时候跑过一些 Demo,后来是因为没有官方组件库,我没那么多时间自己做组件,而且我对 Vue 比 React 熟悉,所以就被我放弃了。现在有了 Taro UI,同时支持 React 和 Vue,尤其是最近支持 React Native 了,大家可以试试。

小程序框架比较

框架 写法 案例 腾讯 阿里 字节 快手 百度 京东 360 快应用 web APP 存活
Uniapp Vue 丰富 ⭕️ ⭕️ ⭕️ ⭕️ ⭕️
Taro 通用 丰富 ⭕️
Rax React
Mpx wxml ⭕️
remax React
kbone 通用
omi omi
MINA(官方) wxml 丰富
Tina wxml
anu(nanachi) React ⭕️ ⭕️ ⭕️ ⭕️ ⭕️❌
Chamelon cml ❌⭕
wepy Vue 丰富
mpvue Vue 丰富 ⭕️
megalo Vue ⭕️ ⭕️
Okam Vue

各框架支持图更新于2021年11月8日,其实看到各个框架的支持图,选型还是比较简单的。
存活度我只能直接看 commit,存活 ⭕️ 死亡 ❌ 半死不活 ⭕️❌ 没有凉透 ❌⭕️
只要不是活跃项目都建议别用,迟早是个坑。你说只更新 README 算活着吗?

选型推荐

做京东小程序只能选 Taro,做 360 小程序只能选 Uniapp。

做腾讯、阿里、字节、百度这四家小程序的可选的比较多,根据技术栈和个人喜好随便选
建议闭着眼选 Uniapp 或 Taro,用的人多,搜索引擎资料多。

不管你做什么小程序,需要导出 App,只能根据技术栈从 Uniapp、Taro、Rax 里边三选一
Rax 来头很大,相关生态也大,飞冰那一大套东西,还有最近的北海渲染器。没上过项目,不敢评价。

如果你只做微信小程序和H5,那么微信官方的解决方案 kbone 可以看看。
如果你只做支付宝小程序、微信小程序和H5,那么支付宝官方的解决 remax 可以看看。

由于 nanachi 框架交给去哪儿公司以后维护不是很积极,所以不推荐。

Tina 和 Mpx 本身都是针对 MINA 语法的增强,用 wxml 开发过小程序的人可以尝试一下。
还有就是 **Tina 仅支持微信小程序,Mpx 用途则更加广泛,**根据价值来看 Mpx 更合算

omi 来头很大,但是做小程序优势不大,目前有更好的选择,如果你学习 Web Compnent 可以试一试。

APP 相关的跨平台方案

Flutter

https://flutter.dev/
不会 Flutter 都不好意思说我是时代弄潮儿,弄到最后咸鱼的大佬们升官发财了,我还在找工作的路上。讲真的第一次用的时候真的很惊艳,从没有过的感觉,不过现在声明式语法烂大街了,就不觉得惊艳了。现在最让我惊艳的就是生态,你能想到的端,Flutter 都能编译出来。但是这个 Flutter web 是最令我印象深刻的,打开控制台,整个网页就是个 Canvas,不得不惊叹 Flutter 渲染引擎开发者的强大。

React Native

https://reactnative.dev/
最流行的手机 APP 跨平台方案了吧,褒贬不一,有些大厂已经放弃了。但是不得不说,当你做跨平台 APP 不知道选什么的时候,选这个准没错。

Hippy

https://hippyjs.org/
据说比 React Native 快,还比 React Native 小,鹅厂在手机 web 这方面的功底可谓是非常深厚,X5 内核大名鼎鼎。看起来用户都是鹅厂用户,厂外人员持续观望中。

Kraken 北海

https://openkraken.com/
嚯,基于 Flutter 的渲染引擎,前些日子不是传出说阿里放弃 Flutter 了嘛,现在看来是没放弃,只是改做上层建筑了。
其实就是在 web 和 Flutter 中间又加了一层 Kraken,让不同前端框架都可以享受 Flutter 渲染器。
小程序方案里边我写了 Rax,其实它对 APP 的支持就是 Kraken 实现的。

.NET MAUI

https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui
mobile 端其实就是之前 C# 开发者都熟悉的 Xarmain.Form。
主要是写出来的 APP 丑,不然当年早火了,哪有 React Native 这种 web 技术栈什么事情呀,更没有 Flutter 这种后起之秀了。目前看来变化不大,微软改名部诚不欺我。希望 Xarmain.Form 回炉重造以后能一雪前耻。

Jetpack Compose & SwiftUI [不跨平台,但是记录一下]

https://developer.android.google.cn/jetpack/compose
声明式语法,听到声明式是不是觉得非常熟,自从跨平台声明式 UI 框架 Flutter 火了以后,iOS 的原生 UI 框架 SwiftUI 和 Android 新一代原生 UI 框架 Jetpack Compose 都变成了声明式 UI 框架了。
但是论体验,SwiftUI 拖拽组件的 UI 布局方式还是更利于开发者的。

选型推荐

如果你是 React 开发者,甚至你只要是 web 开发者,就可以毫不犹豫的选 React Native,这是目前最好的选择。
Hippy 虽然也是 web 技术栈的,但是网上的例子比较少,遇到错误只能去 QQ 群问了。可以先练习,暂时不要用于正式项目
由于 Dart 是一门新的语言,如果你之前是 Flutter 开发者,可以继续使用 Flutter,如果还没开始学,请不要选 Flutter。
软粉和 C# 开发者,以及其他玩一玩的人可以试试 .NET MAUI,毕竟500强 APP 没几个 .NET MAUI 写的。

桌面相关的跨平台方案

Electron

https://www.electronjs.org/releases/stable
现在已经有基于 Vite + React 的方案了,开发体验不错,但是运行速度仁者见仁了。

NW.JS

https://nwjs.io/
对他唯一的了解就是微信开发者工具是用这个框架写的,对比 vscode 是 Electron 写的,看来都可以作为企业级复杂项目的选型,看个人喜好了,我觉得 Electron 更火一点。

Desktop support for Flutter

https://flutter.dev/docs
Flutter 手机开发已经从黑走到红,从红又走到黑了,但是Desktop support for Flutter 才刚刚 beta 不久,几乎可以用了。听说咸鱼的很多页面又从 Flutter 换成原生了,所以国内用的人也不多了。但是开发 Ubuntu 应用或许是不错的选择。

React Native for Windwos + macOS

https://microsoft.github.io/react-native-windows/
React Native for Windows + macOS 毕竟基于 Web 技术栈,这么快就成熟了,但是离 Electron 还差一截,太年轻了。

.NET MAUI

临时文档 https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui
微软一统天下的框架,如果出来了,个人比较看好。首先 C# 是一门很完善的语言,而且老一代的 C# 开发者人数众多且稳定,或许能这一代人能再吃一波微软生态红利。

Compose for Desktop

https://www.jetbrains.com/zh-cn/lp/compose/ ​
这还是一个饼,除了 Jetbrains Toolbox 没有人用。发布了也是对安卓开发者吸引力比较大,毕竟 Kotlin 用户几乎是安卓开发者,Compose 也是新一代安卓开发技术。

JavaFX

https://wiki.openjdk.java.net/display/OpenJFX
如果说 Java 老矣尚能饭否,Java GUI 直接就是挂了,救也救不活的那种。官方宣布除了 JavaFX 其他都不维护了。但是JavaFX 又迟迟无法接棒 Swing。你看 Jetbrains 甚至让 Swing 焕发了第二春。

Qt

https://www.qt.io/
手机、桌面、车机、工控你说到的它几乎都能写,但是作为个人用户来说这个用户协议有点难受,不过个人用户不多,企业用户不在乎这点钱。现在有了 Qt for Python,上手难度比 C++ 低了很多。

选型推荐

如果你是 web 开发者,可以毫不犹豫的选 Electron,当然 NW.JS 也是一中选择。
Java 开发者已经没有选择的余地了,新项目直接上 Fx,稍微学一下 Scene Builder 就行,老项目就维持 Swing。
.NET MAUI 还没发布,如果你公司只做 Windows desktop 而且你是** C# 开发者,WPF 依然是目前最好的选择。**
React Native for Windwos + macOS 跑起来没什么问题,对 native API 的支持还是差了一些,基于 Web 的技术栈目前 Electron 更完善。
Compose for Desktop 还是一张大饼,别说熟不熟了,还没摊开呢。
Desktop support for Flutter 完成度不错,但是还没正式发布,技术雄厚的大厂还没踩完坑,不建议商用。
Qt 不熟,不敢评价,但是据说在工业和物联网领域第一无二的存在。
笼统的说,出于便捷性和拓展性的需求,传统 desktop UI 框架最终都走向了 xml 语法。html 开发者对 xml 很熟悉,有那么点大前端的意思了。
或许不久的将来,WebAssembly 成为主流,Javascript 不再统治前端。更多其他语言的开发者一起共享和丰富前端生态,让 web 的性能更上一层楼。到那个时候,就不需要区分原生还是 web 了。

2021年底跨平台技术比较和选型指南(也许是最全的)相关推荐

  1. E19系列与E10系列lora扩频技术无线模块选型指南

    成都亿佰特电子科技有限公司是一家专注于无线数传通信应用的公司,在射频领域有着丰富的经验,也研发出了很多经典的产品,比如典型的E19和E10系列. 1.E19系列介绍 图1 E19系列无线模块 E19系 ...

  2. 关于跨平台技术选型的思考

    关于跨平台技术选型的思考 在我们进行技术架构和技术选型的时候,我们经常犯一个错误就是,试图找一个完美的解决方案即:坑少.功能多. 但是,无数次惨痛经历仍然难以记住这个事实,就是,好的架构是需要迭代的. ...

  3. 牛赞:音视频前端跨平台技术应用

    点击上方"LiveVideoStack"关注我们 Flutter是近两年大火的跨终端框架,实时音视频因为疫情的缘故也越来越融入到人们的日常工作生活中,如线上会议.在线教育等.两者结 ...

  4. 2021 大前端技术回顾及未来展望

    作者:腾讯 IMWeb 前端团队 2021 年大前端领域没有出现革命性的明星项目,但在各个细分的技术领域都有一定的拓展与深耕,有很多新技术或者新特性有望在 2022 年迎来爆发.在互联网 " ...

  5. 企业移动信息化应用开发模式选型指南

    随着移动互联网的逐步深入,移动应用已经从新闻.搜索.电商.游戏.视频等热门应用逐步向企业移动应用领域转移.而且市场规模逐年增长,据IDC发布的报告显示,2013年中国企业级移动应用市场规模为9.3亿美 ...

  6. 从各大跨平台技术说起,我们真的需要虚拟 DOM 吗?

    本文由 FeelsChaotic 授权投稿 作者博客:https://juejin.im/post/5ce7e8fb51882555003dceef 前言 你有没有留意到?优秀的解决方案思想都是相通的 ...

  7. 网络推广专员浅析到2021年底至少3亿台华为设备将使用鸿蒙系统

    众所周知,早在2019年鸿蒙系统就已正式发布,经过长时间操作检验和发展方向的调整,终于在2020年12月正式面向公众提供鸿蒙2.0beta版本,并且华为宣布在2021年4月份正式上线.鸿蒙系统的存在华 ...

  8. 飞畅科技-千兆/百兆/核心/PoE/光纤交换机选型指南

    交换机是监控网络传输的核心设备.交换机的选型,有很多的重要技术参数需要考虑,硬件上包括百兆/千兆/万兆速率的端口.电口/光口/PoE口.端口数量.MAC地址表深度.转发延迟.缓存大小.VLAN.隔离等 ...

  9. 工业镜头选型计算公式_变压器分接开关选型指南

    如何选择变压器适用的分接开关型号?选型中又有哪些值得注意的事项呢?小编特别整理提炼了分接开关选型指南,让我们一起来看一下. 分接开关的产品型号示例如下: 型号中的各项参数和规格可通过以下步骤计算确定: ...

最新文章

  1. python词云cannot open resource_centos flask验证码pil提示OSError: cannot open resource,问题解决方法...
  2. SAP 电商云 Spartacus UI 出现 breaking change 时,如何用文字来描述
  3. go设计模式思维导图
  4. C语言指针概念全面解析
  5. 瀑布流JavaScript
  6. 一个教务系统多少钱_ERP系统多少钱
  7. centos6.5 下搭建lamp环境
  8. 天翼校园客户端没有linux版本,Linux下突破校园天翼宽带客户端限制(已移植OpenWRT)...
  9. Git 及 GitHub实用教程
  10. python读取qq客户端消息_使用 Python 读取 QQ 消息
  11. 解决手机邮箱登录学生邮箱时服务器无法连接的问题
  12. 计算机桌面常用图标,电脑常用软件图标 常用的电脑软件图标
  13. 为什么要使用版本管理
  14. Glide图片框架使用详细介绍(一),kotlin从入门到进阶实战电子书
  15. 三星内存编码_三星内存铭牌的详细说明|三星记忆棒标签存储参数的详细说明...
  16. 数电逻辑门方框中各符号所含意义(全)
  17. day05-python数字类型和列表
  18. 一个HashMap对象所占内存的分析
  19. TIOBE 1 月编程语言:Python 摘得 2020 年度编程语言
  20. 如何将网站上传到服务器空间,如何使用FTP工具将网站上传到虚拟主机空间

热门文章

  1. 【渝粤教育】国家开放大学2018年秋季 0088-21T保险学概论 参考试题
  2. 科目一常考知识点速记技巧汇总(2022全新版)
  3. 读《Halting in Random Walk Kernels》
  4. GNU Bison 中文手册
  5. 我30岁自学编程,当上高级工程师,几度精疲力尽想放弃
  6. 合成大西瓜html源码,合成大西瓜
  7. 电机学他励直流发电机matlab,华南理工电机学随堂练习答案完整版
  8. 故宫景点功课2:前三殿区
  9. 2022前端知识整理:十、vue基础
  10. Network Stack Specialization for Performance