Flutter 现在生态如何了?

2021-12-22 04:34:25 +08:00
 Infinitify

有些用到原生功能比如摄像,录音,定位是否已经和原生没差别了?

14852 次点击
所在节点    Flutter
105 条回复
zachlhb
2021-12-22 11:08:38 +08:00
好不好要看人,很多人觉得不好因为是要重新学一套东西,flutter 和 uniapp 这些不是一个东西,不能比,uniapp 这些是国产框架,他们优先考虑的是小程序,然后再来兼容 APP ,所以开发小程序 uniapp 这些非常好,但就 APP 来说效果就很差,一些简单功能可以,要到复杂点就不行了,因为它的东西都是通过小程序那套映射过来的;而 flutter 没有小程序,主要考虑的是多端跨平台( web 、移动端、桌面端)的一体化,整体性能来说要比 uniapp 这些要好,所以说如果只是要开发 APP ,选择 flutter 非常不错,对于生态来说,现在各厂商已经开始统一接口,也就是 restful 接口,这样就不用每种语言必须得有 SDK 才能进行开发,所以功能实现起来是没有问题的
youxiachai
2021-12-22 11:18:51 +08:00
@hahastudio 可以通过 ffi 来调用原生能力
youxiachai
2021-12-22 11:20:45 +08:00
@hahastudio 现在 flutter desktop 支持的原生的系统托盘,通知,窗口, 都是通过原生插件来实现,
lodisy
2021-12-22 11:21:43 +08:00
正在学 本地离线存储你们都用什么? hive drift objectbox?
debuggerx
2021-12-22 11:30:50 +08:00
摄像: https://pub.flutter-io.cn/packages/wechat_camera_picker
录音: https://pub.flutter-io.cn/packages/flutter_sound_lite
定位: https://pub.flutter-io.cn/packages/geolocator
很多用起来比原生还简单方便很多,而且还不用写两份代码
如果我说,某些方面 flutter 的体验和生态甚至已经超越原生,不知道会不会被喷死
ykrank
2021-12-22 11:55:24 +08:00
能拿 flutter 和小程序比的不仅是不懂技术,更重要的是没懂业务。
flutter 对标的是 app ,小程序对标的是 webview ;说了一堆小程序的优点,然而那是 webview 的优点。
轻量级的用 webview 就够了,现在有了小程序只是有了更好的性能基线,之前那种是个简单业务都要做 app 才是畸形。中量,重量级的永远只能 app ,无论靠浏览器还是靠微信,都不可能提供系统级的开放能力,而 flutter 是在这一层面具有跨端能力的。
BigDogWang
2021-12-22 12:00:58 +08:00
dart 是很简单,但是也很蠢。

至于生态,现在还太差,目前在用 flutter 开发,经常需要自己写库或者去修复开源库的 bug
fregie
2021-12-22 12:40:39 +08:00
@3dwelcome 那是因为 app 的复杂度还太低,复杂度高了把 webview 做到丝滑要付出的开发成本很高的,如果抛开开发成本谈的话我承认你是对的。这也是业界几乎没有用纯 webview 做大型 app 的原因
WebKit
2021-12-22 12:44:12 +08:00
@3dwelcome webview 能做到秒开吗?还有页面很多视频 图片的时候如何滑动不卡?不卡值得是不掉祯,流畅滑动。我们最近因为卡顿的问题正在把 webview 的页面逐个改成原生
makelove
2021-12-22 12:44:28 +08:00
@fregie fb/twitter/google 这些网站是不是 web app 啊,很卡吗
ooh
2021-12-22 12:44:41 +08:00
如果没有库就比较头疼吃三次饭
lzgshsj
2021-12-22 12:46:22 +08:00
国内生态一般,比如高德 flutter SDK ,本质是调用安卓 SDK ,但是很多功能都是没有移植的。
比如在地图上画个圆,原生 SDK 有 addCircle 方法,flutter SDK 就没有,最后在 CSDN 上看到用 360 个点画了个多边形,勉强解决问题,绝了。
高德还算好了,百度地图 flutter SDK 上一次更新还是去年,腾讯地图压根没有 flutter SDK 。
另外腾讯云,阿里云这些开放平台很多功能也只有安卓,iOS 和 web 的 SDK ,基本都没有 flutter SDK 。
3dwelcome
2021-12-22 13:26:08 +08:00
@fregie

“这也是业界几乎没有用纯 webview 做大型 app 的原因”

我总觉得卡,是 MVVM 框架的锅(逃)
Bijiabo
2021-12-22 13:55:21 +08:00
Flutter 终归还是要凉的,不要浪费时间在快要被扔掉的方案上。
zouzhigang
2021-12-22 14:06:39 +08:00
@lzgshsj 这个情况可以自己写个 flutter 插件,还是需要安卓和 iOS 的支持,说到底插件的本质还是调用安卓和 iOS 的 SDK
markgor
2021-12-22 14:14:18 +08:00
Flutter 没用过,UNIAPP 倒是常用,IOS 和小程序都上架了。
上面也看提到了小程序和 APP 的对比,
我自己的看法是 APP 能实现小程序很多无法实现的功能。只是肯能太细你们没看到,另外小程序早就不是 2M 了,有分包加载功能。
1 、图片
对于 APP 而言,我习惯的是把图片资源缓存,后续只需要检查沙盒里面有没这个资源,避免重复加载,这一点在小程序是无法完美实现,只能基于 web 的缓存。

2 、长页面长列表
对于 APP 可以通过对应组件,达到不可视区域的资源释放,但是在小程序中(web),当列表达到一定程度(特别是包含图片的),直接就卡死了。

3 、支付方式
小程序中除了微信支付还能用什么支付方式?但 APP 可以使用不同的 sdk 不被受限。这一点对于港澳台业务的非常重要。客户人群有使用微信,但却不是使用微信钱包,而是使用当地的第三方支付渠道,小程序中就没法直接拉取支付。

4 、分享
安卓的小程序可以分享朋友圈,app 则不受限制,常规做法都是 app 搭配 H5 进行分享。

5 、小程序常年改接口.........
lzgshsj
2021-12-22 14:46:01 +08:00
@zouzhigang #75
说实话,我是照着高德地图 flutter SDK 的添加 polygon 代码,重写了添加 circle 的 java 和 dart 代码,编译也通过了,也能看到有调用输出,就是显示不出来,最后只能画多边形近似圆曲线救国。
问题就出在这,写插件根本离不开原生 SDK ,没人维护插件就只能自己研究原生 SDK 的代码然后写插件。写 flutter 一时爽,写适配插件火葬场,对我这前端来说还需要写 java 体验属实割裂了,如果还要写 swift 。。。难顶。
lolizeppelin
2021-12-22 14:47:24 +08:00
dart 根本不是问题....代码写多了这玩意没什么差别

要熟悉的是 fultter 框架本身而不是 dart 语言
就和你写 angluar 一样要熟悉的是 angluar 框架而不是 ts
语言本身是很容易熟悉的

flutter 框架写起来和 react 其实差不了太多,写起来其实也没什么大问题

但是无论你开发什么手机 app 只要不是纯 http 通信都得和原生接口打交道,而且因为用不上其他库,还得比一般调库崽更熟悉原生才能玩得转这种垮平台框架。

其实上面说得很对, 的确是生不逢时,错过了移动端泡沫期。

搞黑产的据说都挺喜欢这玩意的,干起来真是快。
djkloop
2021-12-22 15:06:40 +08:00
其实 flutter 我更看好 kt... 天然支持 java 再加上 jetpack compose 然后也在搞跨平台...反而觉得 kt 才是 yyds
xz410236056
2021-12-22 15:09:40 +08:00
@Hanggi #8 体验差啊,你作为用户会关心他用什么实现吗

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

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

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

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

© 2021 V2EX