我要吐槽下跨平台

最近工作原因,接触了一点 uni-app,老实说,体验很不好,当然这不一定是 uni-app 的问题,跨平台这个需求本身就有点扯淡。

松哥接触跨平台的时间还是蛮早的,而且因为毕业后有一段时间在做移动端开发,而跨平台这种事本身就是移动端最火热,所以今天就来随便聊聊我曾经接触过的几种跨平台方案。

2012 年还在学校的时候,当时接触到的第一种跨平台方案就是 jQuery Mobile,那个年代 jQuery 是前端领域妥妥的当红小生,火热程度不亚于今天的 Vue。jQuery 官方顺势推出了 jQuery Mobile,用来支持移动端的开发。这种方案说白了就是开发基于浏览器的应用,然后在手机的浏览器上面跑。塞班、Windows Phone、Android、iOS 等都支持。但是实际上开发出来的 App,在塞班和 Windows Phone 上面的显示效果惨不忍睹。在低端 Android 手机上运行特别卡,点一下反应半天,就像浏览器网页一样慢,在三四千块的 Android 手机上或者 iPhone、iPad 上运行效果就很棒了,甚至有种原生 App 的错觉。

但是这种方案显然不是一个很好的跨平台方案,无法解决低端机上的运行效率问题,所以我一直好奇这种方案有没有商用价值?我刚刚打开 jQuery 的官网瞅了一眼,jQuery Mobile 还在,不知道小伙伴们在公司项目中有没有用过这种方案,欢迎留言说说。

jQuery Mobile 是我接触的第一种跨平台方案,当时就是不懂 Android 开发,也不懂 iOS 开发,但是又想搞移动端应用,没办法就只能用 jQuery Mobile 搞了。虽然这种方案一点都不完美,但是却让我明白了跨平台的意义,多个平台同时存在时,就会一直有跨平台的需求,我们总想一套代码,运行多个平台。就像我们 Java,Write once, run anywhere

当然用 jQuery Mobile 时候,还有一些配套工具如 PhoneGap、Cordova 等,这些就不一一说了。

大学刚毕业的时候,我在做 Android 开发,那一段时间接触了 RN(React Native),自己也上手学了一段时间,对 RN 整体的感觉就是运行效率比 jQuery Mobile 强多了,不过对于一个非专业前端来说,RN 上手也比 jQuery Mobile 难一些。不过 RN 我没搞太久,后来就去做 Java 了,从此很少关注移动端的东西。

不过作为一个称职的程序员,折腾是人生第一要义。搞 Java 后端开发没多久后,又玩起了小程序,现在除了微信有小程序,百度、支付宝、字节、QQ、360 等都有自己的小程序,于是大家又开始琢磨跨平台了,目前看起来比较火的似乎就是 uni-app 了。

我第一次了解到这个东西应该是在 2018 年的时候,当时我想趁着工作不忙学点东西,在晚上闲逛的时候看到了这个项目,当时感觉还是一个很小的项目,GitHub 上的 star 才 100 多,现在都 3W+ 了。不过因为之前搞移动端跨平台留下的阴影,我对这种跨平台方案都提不起兴趣,感觉都是牛皮吹的大,实际效果很有限。所以很长一段时间没,对 uni-app 的认知也只是停留在了解。

最近因为工作原因,没办法,接触了 uni-app,果然跟我想的差不多。真的很难做到 Write once, run anywhere,一些兼容性问题还是要特殊处理。而且这个框架还和 HBuilder 这个开发工具深度绑定,用这个工具开发就很方便,项目创建也要快很多。但是如果用 cli 命令行,那体验感就迅速下跌。而且按照官方给的模版创建出来的项目,刚打开后控制台就报错也让我很郁闷,这对新手来说是相当不友好的。

在这些问题里边我觉得最主要的还是兼容问题很难处理,无法真正做到 Write once, run anywhere,无法做到这一点,这个框架的意义就大打折扣了。

即使做纯粹的原生开发,都不可避免的遇到兼容问题,更不用说这种跨平台开发,兼容性问题只会多不会少。我也专门去问了身边的前端同事,他说其实还是有公司在用 uni-app,但是不多。

小伙伴们有没有用过一些跨平台的框架或者工具,欢迎留言说说你的使用感受~

喜欢这篇文章吗?扫码关注公众号【江南一点雨】【江南一点雨】专注于 SPRING BOOT+微服务以及前后端分离技术,每天推送原创技术干货,关注后回复 JAVA,领取松哥为你精心准备的 JAVA 干货!

评论

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×