Flutter不能做什么:局限性
老孟导读:您在网络上一定看过很多Flutter如何优秀的、如何完美的文章,而这篇文章将会告诉你Flutter不能做什么,注意并不是Flutter的缺点,比如第三方插件少、Dart不流行等,在我看来这都不算什么。看完这篇文章希望对您是否使用Flutter来开发App起到一些作用。
在我们做新的技术评估时,什么东西不能做,甚至比能做什么更有用,虽然这样的列表可能会让你感到沮丧,但我想这是非常重要的。
本机平台视图
Flutter使用Skia渲染所有内容,所以和本机原生视图有一点点的区别,对于99%的用户来说可能感觉不到,但对于一些极客来说,是会发现一些区别的。
另外新的系统可能会带来新的UI设计,Flutter并不会立即更新。
有什么影响?
Flutter的渲染机制保证了应用程序不管在哪一个平台或者系统版本都是一致的,您的应用程序不会根据不同的平台渲染不同的样式。
这会改变吗?
不会,这是Flutter的核心渲染机制。
热更新
注意这里说的不是hot relaod,而是热更新,通过热更新,开发人员可以立即将补丁发布到其应用程序中,而无需通过应用商店发布。
Bug可以在没有新版本的情况下进行修复,在React Native,Cordova和Ionic支持此功能。而Flutter不支持此功能。
热更新功能在国内来说尤其重要。
有什么影响?
Flutter应用程序的所有更新都必须经过发布新的版本,在应用商店进行更新。对于iOS,有时可能需要几天的时间。
这会改变吗?
官方给出的答案是暂时不会,具体原因请查看此文章Ian Hickson的这篇文章。您也可以关注此问题以进行更新。
电视,手表和汽车
您不能使用Flutter为tvOS,watchOS,CarPlay或Android Auto构建应用。
有什么影响?
如果您的应用需要发布到这些平台,需要使用本机语言进行开发。
这会改变吗?
可能,但是可能需要一段时间。可以关注这些问题:位码支持,汽车支持和Wear OS支持方面存在问题。
从Dart直接调用本机API
Flutter可以与本机平台API交互,但不能直接交互。您可以通过语言绑定,使用与编写应用程序时使用的相同语言来使用本机API 。
有什么影响?
您可以使用第三方插件,可能已经有人为您完成工作,但目前Flutter生态发展时间较短,所以在更多自定义场景中,您将不得不编写本机的Objective-C / Swift或Java / Kotlin代码,并通过平台渠道进行通信。
这会改变吗?
不会很快。
希望这些不会让您放弃,没有什么是完美的,Flutter非常棒,是目前最完美的跨平台解决方案,没有之一。
交流
老孟Flutter博客地址(近200个控件用法):http://laomengit.com
欢迎加入Flutter交流群(微信:laomengit)、关注公众号【老孟Flutter】: