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

2022-05-11 14:34:36 +08:00
 nnegier
我并没有用过 Flutter 等跨平台方案,也许正因如此才有此问吧。我们暂时不讨论性能这一块儿吧,我也不知道那些跨平台方案的底层实现。感觉也有可能是因为要和原生系统的 API 进行交互,但这个我觉得也不是太大问题,写一些通用接口就好了。
8030 次点击
所在节点    程序员
56 条回复
kujio
2022-05-11 14:41:07 +08:00
.net core 也搞跨平台
kotlin compose 也搞跨平台
python 也有个跨平台 kivy
woxihejinghao
2022-05-11 14:41:50 +08:00
跨平台方案,痛点在于性能和统一性。
H5 的方案第一个是性能问题,RN 这类的话,性能好一点但是依然有点问题,并且 UI 统一性也不怎么样子。
Flutter 其实也是一个 UI 框架,但是你所看到的东西全部是自己绘制的,对性能和统一性的处理都不错,再加上谷歌的加持所以热度上来了。
sam384sp4
2022-05-11 14:44:45 +08:00
恭喜楼主发现了盲点, 为什么 h5 能做的还要用户装 app
kop1989smurf
2022-05-11 14:57:51 +08:00
确切来讲,flutter 不叫真正意义上的“跨平台应用”。而是一次开发,多平台输出。更贴切的说法应该是“跨平台开发”。
也就是你用 flutter 写的程序,它可以给你对应生成一个等效的 Android 的客户端程序,以及等效的 iOS 程序。

所以他并不是编译结果“跨平台”,而是可以输出多个结果。

客户端做 js 桥 api + webview + h5 做出来的才叫“跨平台应用”。因为他是一套程序,多个平台( Android 、iOS 、浏览器)公用。
kop1989smurf
2022-05-11 14:59:37 +08:00
也就是说,flutter 生成的 Android 和 iOS 程序,从理论上与原生程序的能力,性能相同。(为了两个平台展示完全相同的内容,iOS 和 Android 有对应的 UI 库)
lianxiben
2022-05-11 15:00:34 +08:00
h5 还是有功能上的局限性的,需要 jsbridge 才能完成 APP 的一些操作之类。
theusername
2022-05-11 15:02:29 +08:00
我理解跨平台通常说的都是跨操作系统,但是本身就有一个跨操作系统的平台叫做浏览器,后来人们不想受限于浏览器的生态或者性能,或者单纯为了兴趣,或者为了抛弃历史问题轻装上阵,所以搞出了其他的技术。
hwdef
2022-05-11 15:02:29 +08:00
用 h5 最多的系统应该是 chrome 了吧,,,除了低价占美国的教育市场,其他领域好像都没有成功过。
还有 electron ,除了微软能调教好,,还没见第二个能把程序大小和运行速度调教好的
marcong95
2022-05-11 15:02:36 +08:00
H5 只是个网页,啥平台都没跨。

与之相关的,可以与系统 API 交互的,Electron 在本站被喷得体无完肤,uni-app 其实也在被喷之列,虽然应该主要是开发者喷的。所以只能继续造轮子了
unco020511
2022-05-11 15:13:09 +08:00
那么既然已经有浏览器这个天然跨平台的组件,所以公司动用 web 网页就行了,为啥还需要开发 app 呢
statumer
2022-05-11 15:14:50 +08:00
App 有很大权限,是浏览器比不了的,所以要开发 App
现代的 GUI 框架的架构和浏览器都很相似,样式表+节点树+脚本,控件能自绘的都会自绘。(比如 Flutter ,微软的 XAML ,Qt)
某个屑移动操作系统不允许在应用里内嵌 Chromium ,所以移动 UI 框架会尝试另辟蹊径再造一个“浏览器”出来。
xiaoyangsa
2022-05-11 15:17:31 +08:00
我有个想法。
各类系统无统一的对外接口,
要是各家系统都能对外统一出套 js 能调用的系统。规范化。那跨平台也就是网页的事情了。
现在出的快应用,小程序,都是原生往上封装一层来统一调用。始终是差点意思。

互联网不互联
nnegier
2022-05-11 15:26:24 +08:00
@sam384sp4 当然是因为不能离线使用呀,装应用才能离线呀!!!
ciki
2022-05-11 15:29:57 +08:00
你考虑下为什么出现小程序这种东西,为什么不用 H5
DOLLOR
2022-05-11 15:32:50 +08:00
@xiaoyangsa

PWA:好像有谁在叫我🐶
caqiko
2022-05-11 15:45:29 +08:00
引申一下,常用移动端 App 的哪些是难以通过 H5 去做的?

个人理解的:
- 依赖稳定推送的:比如 IM 、打车 App (司机和乘客发消息)
- 在客户端做风控的:比如各个银行 App 、支付宝(这个不是很确定 H5 能不能做)
- 在客户端保存 /缓存大量资源的:读书类、音乐 /视频播放器类
- 业务逻辑复杂的:电商类(尤其是淘宝)
- 依赖特殊 /私有协议的

欢迎补充。
nnegier
2022-05-11 15:48:37 +08:00
@ciki 生态吧,要进入那个生态,不得不吧
ciki
2022-05-11 15:51:10 +08:00
@nnegier 不管说了多少种原因,核心原因只有一个,性能,催生出小程序最直接的原因就是解决 H5 性能问题,生态都是后面才形成。
LxnChan
2022-05-11 15:52:32 +08:00
您要找的是不是 — uni-app
kop1989smurf
2022-05-11 15:57:23 +08:00
至于说楼主的 append 。

我也不太理解为何之前东京奥运会都吹一个跑百米的苏 xx 。
我们暂时不讨论短跑这一块儿吧,毕竟我也不跑短跑。

其他的我觉得我吊打他,IT 技术我碾压他,身高比他高,体重比他重。
我能理解的,就是他百米距离内移动速度快。
实在不行,你移动百米距离你骑自行车啊。不会骑自行车,滴滴 app 也不会用?

所以实在不理解吹苏 xx 是个什么心态。

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

https://www.v2ex.com/t/852191

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

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

© 2021 V2EX