最近有一个疑问,跨平台不是一直都有吗,就是 H5 这个呀,为什么还要弄出 Flutter 这些呢

2022-05-11 14:34:36 +08:00
 nnegier
我并没有用过 Flutter 等跨平台方案,也许正因如此才有此问吧。我们暂时不讨论性能这一块儿吧,我也不知道那些跨平台方案的底层实现。感觉也有可能是因为要和原生系统的 API 进行交互,但这个我觉得也不是太大问题,写一些通用接口就好了。
8108 次点击
所在节点    程序员
56 条回复
jones2000
2022-05-11 18:51:41 +08:00
跨平台说白了就是省开发成本,减少公司试错成本, 本来投 100W 启动的项目,现在投 10W 就能有个东西出来了,如果东西卖的好,可以融到钱了,就可以招人重新做原生的性能更好的, 如果不好就不砍掉。
dcsuibian
2022-05-11 19:27:21 +08:00
在我看来,Flutter 的最大优势就是他完全“推倒重来”了。
我极其喜欢跨平台的应用,但 H5 这套历史包袱实在太大太大了,光一个 javascript 的历史包袱就足以吊打其它语言了,性能差、体验差。最主要是我始终不喜欢这种“文档”做 UI 的方式,越写越觉得不舒服,总感觉像在屎山上糊屎。

哪怕我学的所有 js 、css 、html 知识都白费了也没关系,真心希望 Flutter 流行起来。
dcsuibian
2022-05-11 20:05:29 +08:00
在目前的跨平台 UI 中,我感觉 Flutter 应该会是比较靠谱的那个。
1 、QT 没接触过不好说
2 、MAUI 建议看 /t/835134 。微软的技术除了 windows 真的都是劣等公民。
3 、React Native 没用过。但个人属实不看好。

RN 和 Flutter 貌似对比的比较多,我不明白底层的渲染技术,在我看起来就像是 Java 的 AWT 和 Swing 。
AWT 因为跨平台,所以只能使用各个平台组件的交集。Swing 则是干脆把系统提供的 UI 提供一个画板,自己在上面画组件。虽然后者肯定有一点性能损失,但跨平台统一性和组件自由度都更好。
所以个人还是比较偏向于 Flutter 。(当然如果能每个平台做一套,那肯定还是原生)
zqlcrow
2022-05-11 20:25:06 +08:00
因为痛点就是性能啊。
不考虑能飞,飞机有什么用?


估计还有一些人会说,考虑性能,用原生啊。
这是极端论了。一切的一切,都是在尽量寻找可接受的解。
AloneHero
2022-05-11 20:59:24 +08:00
H5(PWA)现在已经可以离线使用了,也可以隐藏浏览器地址栏,推送消息,后台下载,连接 USB 等等,功能很强大,也是 Google(移动端)和 Microsoft(PC 端)在力推的技术。可以说除了和本地系统的交互相关的功能,比如设置闹钟设置屏幕亮度这种,其他的网络浏览,在线购物,IM ,在线编辑,在线 PS 等等功能都是完全没问题的。最重要的还是体验,也就是性能。H5 的体验要想做到比肩原生太难,H5 的接口加载,页面转场都比原生慢太多
a62527776a
2022-05-11 22:29:34 +08:00
Flutter 真是当下混合应用最优解了 AOT 保证性能 Skia 保证 UI 一致 Channel 保证原生交互

我们公司 Flutter 做过一个项目 从性能上真是接近至少 90% 但是人力却只需要原先的 60%

PWA 就靠边边吧 根本就是面向未来的技术
lawler
2022-05-12 01:51:04 +08:00
看来你不知道,flutter 也可以生成 H5 。
rbq123456
2022-05-12 09:19:13 +08:00
@nnegier 可是,h5 可以做成离线使用的呀…
1000copy
2022-05-12 09:41:04 +08:00
技术是实现工具,可以回答怎么做的问题。

既然问到的不是怎么做,而是为什么做,就需要回答商业价值了。

老大不会做跨平台,因为没有动力。老二才会做,老二也不得不做。老大肯定只有一个,老二可能很多。

就像微软当年最红的时候,是不会考虑跨平台的。现在,给 iOS 做应用开发商也乐意,何况是跨平台。
devHang
2022-05-12 10:06:48 +08:00
UI 一致性,性能贴近原生,这就是优势了。做了快 3 年 flutter 了,坑不少。但确实解决了很多 webview 的性能问题,而且现在前端 app 开发人员最少可以节省一个开发人员的工作量。
devHang
2022-05-12 10:08:06 +08:00
虽然新版本支持了 web ,但噱头大于实用,如果真的可以生产。那景象真的有点大一统的赶脚
Dragonphy
2022-05-12 10:13:06 +08:00
看看 uniapp 就知道了,H5 完全可用,按需求接入原生 SDK 就行
littlefishcc
2022-05-12 10:48:58 +08:00
H5 渲染和 flutter 逻辑不都是自己画界面,屏蔽跨平台,给上层提供统一接口,有什么区别。。。
只是应用场景不一样,效果不一样而已。感觉这个离线没有关系,electron 我们开发桌面时候,如果不需要网络不一样可以离线使用。
如果当 H5 渲染速度最够快,能够解决足够多的场景,那么其他跨平台方案也没有必要,目前就是无法达到,才需要别的跨平台方案来满足不同的场景
nothingistrue
2022-05-12 11:08:09 +08:00
H5 ,原本它该代表的 HTML5 ,这个标准仍然是 HTML——超文本传输语言的范畴,它主要面向的是“资源浏览”,不是 UI ,不是客户端。即使是 HTML5+( ES6+),即常规意义上的 H5 开发,它的核心仍然是资源浏览。再加一个 PWA ,勉强才具备资源浏览外的一些客户端的东西,但至少目前来说还不够。

与其说 H5 是跨平台,不如说 H 是无平台的,因为它的核心是服务器,浏览器端是完全从属于服务器,没有自主能力的。所以如果要搞些单独靠服务器做不了的功能,比如搜集数据(隐私),P2P 传输给服务器分压等,那就得整客户端( PC 客户端或者手机 APP )。要搞跨平台,就得用其他技术。
0x2CA
2022-05-12 12:28:51 +08:00
其实啊,为什么明明网页能做,一定要搞个客户端,这个大多数属于非技术问题,主要是客户端你可以干更多的事情,比如弹窗,比如通知,比如驻留用户机器干其他事情
standin000
2022-05-16 17:25:11 +08:00
@ciki 小程序为什么能提高性能?

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://tanronggui.xyz/t/852191

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX