Appearance
Flutter和Uniapp哪个好
很多人在选择跨平台框架时,都在犹豫Flutter和Uniapp哪个好。其实这两个框架都是跨平台框架,但是它们在功能上还是有差异的。对于不同的场景都有其特长之处,过去我们建议用户如果你期待你的APP快速上线,那么选择Uniapp,但现在这样的局面已经成为过去。下面我们从多方面分析,哪个框架更适合你。
侧重小程序
如果你的业务侧重小程序,但APP不是核心的业务发展方向,那么选择Uniapp。因为Uniapp的跨平台能力,可以快速实现小程序的APP版本,而且Uniapp的跨平台能力,可以快速实现小程序的APP版本。
目前Flutter在小程序方面的支持,是非官方的,有点偏门更不能用在生产环境上。
Flutter也能支持小程序,但是需要借助第三方实现,但是目前还不完善,由于Flutter虽然被编译成JS但核心还是webassembly,所以性能上还是有差距的,并且由于目前微信小程序的运行内核差异,短期支持的希望很小。
对原生不熟悉
如果对原生不熟悉,那么选择Uniapp。使用Flutter必然会和原生打交道,因为Flutter准确来说是一个UI框架,虽然已经有丰富的生态和插件,但是对于部分需求还是不得不和原生打交道,这包含自定义插件开发,如原生API的调用等。或者编译上的优化等。实际上Flutter入门简单,但是对原生和代码编写质量要求很高,要求对Flutter和Dart有熟悉的能力,才能编写出流畅的应用。
希望更加原生的体验
如果你希望你的应用有更加流畅的原生体验,那么Flutter是更好的选择。Flutter的UI框架不是基于webview实现,所以随着深入的优化,性能上基本可以做到和原生的体验是一致的。
在动画过度,路由,手势等操作上Flutter和原生基本一致,目前包含3.19.5
以上的版本,性能基本已经不会出现太多的屏障。特别是安卓设备上,和原生的体验几乎一致了,并感觉不到差异。只是IOS上很多组件之前是基于MD的设计理念,IOS原生组件模拟的实现并不细致,有的还不符合IOS的设计规范这将导致和原生有细微差距。但是相比Uniapp来说,体验还是相对较好的。
哪些应用目前已经转移到Flutter:
- 德邦物流APP
- 咸鱼APP
- Google Earth
- 微信部分 还有很多应用,目前Flutter生态发展的迅速,让苹果都叹为观止,因为Flutter确实是成功的,至少开启了跨平台的新时代。
希望支持Linux 和 Windows
如果希望支持Linux 和 Windows,那么选择Flutter。Flutter支持Linux和Windows。因为Flutter对于桌面的支持已经从beta合并至Stable,并且运行性能在桌面设备上由于CPU和内存的性能高,所以性能上可以和原生的体验一致。
目前Dart已经支持Win32 API的原生调用,并且甚至可以用Dart直接在Windows调用Win32 API实现Flutter的完整运行,脱离官方给出的C++模板。
此外第三方也有不错的Linux UI组件和Windows组件提供了。
其他
如果你使用Uniapp你甚至不需要自己封装支付SDK,推送SDK等第三方SDK。但是Flutter虽然有社区插件,但实际使用上,仍然和原生体验一致。当然如果你有很好的基础,这些难不倒你的。