当前位置: 首页 > Web前端 > JavaScript

2021年底跨平台技术对比选型指南(也许是最全的)

时间:2023-03-26 23:34:07 JavaScript

2021年即将结束,让我们一起回顾这一年。年初的时候,你说是跨平台的虚假需求,其实是有用的,你说是硬需求,其实有点虚假。年终总结一下。大项目不缺原生程序员,不需要跨平台。小项目没有足够的人力去占据多个平台。我认为中国最大的跨平台需求在于小程序。毕竟相似差异的平台那么多,写那么多套代码实在不值得。如有错误请指出,我会在核实后改正。如果你提高标准,你是对的。当你说别人的项目是KPI项目时,请同时发布一个KPI项目。企业的技术不断迭代,新技术成熟后自然要放弃旧框架的维护。没有人会花很多时间去维护对自己没有兴趣的东西。小弟在找工作,帮小弟点个星,关注一下。哥的GitHub主页哥的开源项目grpcman这是我之前的开源项目,是一个gRPC调试工具。以下排名不分先后,按照我的熟悉程度排序。MP相关的跨平台解决方案其实到了2021年底,小程序已经没有那么火了,但是小程序的跨平台框架已经逐渐发展成为全端框架。就算有一天小程序死了,但H5和App一定要一直活着,学习总是有用的。Uniapphttps://uniapp.dcloud.io/在小程序出现之前,我只知道他们公司的5+Runtime。说实话,在这之前我一直觉得跨平台是没有意义的。直到有一天我想写一个小程序,直到有一天我需要一个双版本的小程序和H5,我才感受到这个框架存在的意义,工作量减少了更多超过一半。而且还有官方外挂市场,抄起来也很爽。谢谢你们的奉献精神。Tarohttps://taro-docs.jd.com/taro/docs/README说实话,我还真没做过项目。当我只支持React语法时,我运行了一些演示。后来就没有那么多时间了,因为没有官方的组件库。自己做组件,对Vue比对React更熟悉,所以放弃了。现在有了TaroUI,同时支持React和Vue,特别是最近的ReactNative,大家可以试试。小程序框架对比框架写作案例腾讯阿里字节快手百度京东360快应用webAPP生存UniappVue富????????????????太郎将军富????????????降低少量mpxwxml少???????????重新反应少??????????kboneunisese少??????less???????????MINA(官方)wxmlrich????????????Tinawxmlless????????????anu(nanachi)Reactless??????????????chameloncml更少????????????wepyvuerich????????mpvuerich????????megalovuesimel???????OkamVueless????????????2021年11月8日更新了各框架的支持图,其实大家可以看到各框架的支持图,选型比较简单的。survival我只能直接看commit,survival??死了?半死不活???不够爽???只要不是活跃的项目,建议不要用,迟早是坑.你说只更新README算不算活着?京东小程序推荐选择Taro,360小程序推荐选择Uniapp。腾讯、阿里、字节跳动、百度这四个小程序的选择很多,大家可以根据自己的技术栈和个人喜好来选择。我建议闭着眼睛选择Uniapp或Taro。使用它的人很多,搜索引擎的资料也很多。无论做什么小程序,如果需要导出app,根据技术栈只能选择Uniapp、Taro、Rax中的一种。Rax的背景很大,相关的生态也很大,比如飞冰的大套东西,还有最近的北海渲染器。我没有参与项目,所以不敢评论。如果你只做微信小程序和H5,可以看看微信官方解决方案kbone。如果只做支付宝小程序、微信小程序和H5,那么支付宝官方的解决方案remax就可以看。因为nanachi框架交给去哪儿后维护不是很活跃,所以不推荐。Tina和Mpx都是对MINA语法的增强。用wxml开发过小程序的可以试试。另外,Tina只支持微信小程序,而Mpx的使用范围更广,Mpx在颜值上更具性价比。omi有很大的背景,但是做小程序并没有太大的优势。目前,有更好的选择。如果你学习WebCompnent,你可以尝试一下。APP相关的跨平台解决方案Flutterhttps://flutter.dev/没有Flutter不好意思说我是个时代潮人。最后咸鱼的老板们都升职发财了,而我还在找工作的路上。说实话,第一次用的时候真的很惊艳,以前没感觉过,现在declarativegrammar不好,感觉不惊艳了。现在最让我惊奇的是生态。Flutter可以编译所有你能想到的终端。但是这个Flutterweb是给我印象最深的。当我打开控制台时,整个网页都是一个画布。不得不惊叹Flutter渲染引擎开发者的强大。ReactNativehttps://reactnative.dev/是最流行的移动应用程序跨平台解决方案。评论褒贬不一,一些大厂已经放弃。但我不得不说,当你在做跨平台应用时不知道该选择什么的时候,这是正确的选择。Hippyhttps://hippyjs.org/据说比ReactNative快,比ReactNative小。鹅厂在移动web方面的功底非常深厚,X5内核更是名噪一时。看来用户都是鹅厂用户,厂外人士继续观望。Kraken北海https://openkraken.com/哎,基于Flutter渲染引擎,前几天传闻阿里放弃了Flutter,现在看来他并没有放弃,只是换了上层建筑.其实就是在web和Flutter之间加了一层Kraken,让不同的前端框架可以享受到Flutter渲染器。我在小程序方案中写了Rax。其实它对APP的支持是Kraken实现的。.NETMAUIhttps://docs.microsoft.com/en-us/dotnet/maui/what-is-mauimobile这边其实就是之前C#开发者熟悉的Xarmain.Form。主要是写出来的APP丑,不然当年就火了,怎么会有ReactNative这样的web技术栈,更何况是Flutter这样的后起之秀。目前看来并没有太大的变化,微软改名也不是骗我的。希望重建后的Xarmain.Form能够一雪前耻。JetpackCompose&SwiftUI【不跨平台,记录一下】https://developer.android.google.cn/jetpack/compose声明式语法,是不是感觉很熟悉的声明式风格,既然是跨平台声明式UI框架Flutter大火之后,iOS的原生UI框架SwiftUI和Android的新一代原生UI框架JetpackCompose都变成了声明式UI框架。但就体验而言,SwiftUI拖拽式组件的UI布局还是更利于开发者。选型推荐如果你是React开发者,甚至是Web开发者,可以毫不犹豫地选择ReactNative,这是目前最好的选择。虽然Hippy也是一个web技术栈,但是网上的例子比较少。遇到错误只能去QQ群里问。可以先练练手,正式项目暂时不要用。由于Dart是一门新语言,如果你之前是Flutter开发者,可以继续使用Flutter。如果你还没有开始学习,请不要选择Flutter。软粉、C#开发者等有兴趣的人可以试试.NETMAUI。毕竟,前500名应用程序中很少有.NETMAUI编写的。桌面相关的跨平台解决方案Electronhttps://www.electronjs.org/releases/stable现在有了基于Vite+React的解决方案。开发体验不错,就是运行速度不一样。NW.JShttps://nwjs.io/我对他的唯一了解就是微信开发者工具就是用这个框架写的。对比起Electron写的vscode,好像都可以作为企业级复杂项目的选择,看个人喜好。是的,我认为Electron更受欢迎。Desktop对Flutter的支持https://flutter.dev/docsFlutter手机开发已经从黑到红,从红到黑,但是Desktop对Flutter的支持在不久前才刚刚内测,差不多可以用了。听说闲鱼很多页面都从Flutter改成了native,所以国内用的人不多。但它可能是开发Ubuntu应用程序的不错选择。ReactNativeforWindwos+macOShttps://microsoft.github.io/react-native-windows/ReactNativeforWindows+macOS毕竟是基于web技术栈的,所以成熟得这么快,但还差得远来自Electron,太年轻了。.NETMAUI临时文档https://docs.microsoft.com/en-us/dotnet/maui/what-is-maui微软一统天下的框架,如果出来我比较看好。首先,C#是一门非常完备的语言,老一辈的C#开发者拥有数量庞大且稳定的开发者。或许这一代人还能再享受一波微软的生态红利。ComposeforDesktophttps://www.jetbrains.com/zh-cn/lp/compose/这还是个大饼,除了JetbrainsToolbox没人用。该版本对Android开发人员也更具吸引力。毕竟,Kotlin的使用者几乎都是Android开发者,而Compose也是新一代的Android开发技术。JavaFXhttps://wiki.openjdk.java.net/display/OpenJFX如果说Java老了还能吃,JavaGUI就直接挂了,不救了。官方宣布除JavaFX外不再维护。但JavaFX长期以来一直无法接管Swing。你看Jetbrains甚至给了Swing第二次生命。Qthttps://www.qt.io/手机,台式机,车机,工控,你写的差不多,但是作为个人用户,这个用户协议有点难受,不过个人用户不多,而企业用户不在乎这点钱。现在有了QtforPython,上手难度比C++低很多。选型推荐如果你是web开发者,可以毫不犹豫的选择Electron。当然,NW.JS也是一种选择。Java开发人员别无选择。新项目直接上Fx,稍微学习一下SceneBuilder。对于旧项目,请保留Swing。.NETMAUI还没有发布,如果你的公司只做Windows桌面,而你是C#开发者,WPF仍然是目前最好的选择。ReactNativeforWindwos+macOS运行没有任何问题,但对原生API的支持还是有点差。基于web的技术堆栈目前比Electron更好。ComposeforDesktop还是一块大蛋糕,别说熟了,还没铺开。对Flutter的桌面支持已经完成的比较完善,但是还没有正式发布,技术实力雄厚的大厂也还没有踏过坑,所以不推荐商用。Qt生疏不敢评论,但据说在工业和物联网领域独树一帜。总的来说,由于方便性和扩展性的需要,传统的桌面UI框架最终都转向了xml语法。HTML开发人员对XML非常熟悉,这意味着一个大前端。或许在不久的将来,WebAssembly会成为主流,Javascript将不再统治前端。更多其他语言的开发者共享和丰富前端生态,让web的性能提升到更高的水平。到时候就不用区分native和web了。