聊聊新技术系列 >>
Flutter 是什么
英文原意:
(使)飘动,挥动,颤动;(鸟或昆虫)拍(翅),振(翅),鼓(翼);飞来飞去;翩翩飞舞。
对于开发者来说,Flutter 是谷歌推出的移动 UI 框架,可以快速在 iOS 和 Android 上构建高质量的原生用户界面。Flutter可 以与现有的代码一起工作。
Flutter 的竞品是谁?主要就是 React Native,其次是 Swift && Kotlin。
Flutter 和 Dart
Flutter 较 React Native 最大的优势我感觉是即提升了 开发体验又提升了运行时的体验。即兼顾了效率和性能,这主要是由于 Dart的贡献,这是 JavaScript 提供不了的。所以也不要希望那一天 Flutter 能支持 Dart了。
关于 Dart,可以聊一聊,这是一门本来打算消灭 JavaScript 的语言,但是由于互联网上存量网页太多,以及开发者不愿意开发出来的网站只有Chrome能用,最终造成的结果, Dart 不温不火。还没有后来谷歌推出的 Go 语言流行。
Flutter 和 Dart 是相互成就的,同时核心开发团队都是一个公司的,沟通也比较高效,Dart 也为了 Flutter “定制”了很多特性和语法糖等。这是别的语言无法提供的。
Flutter 发展的够快吗
其实不够快,也不够好。甚至我认为有些路也走偏了。比如近期对 Web端和 PC端的支持。其实很费精力的。我其实希望 Flutter 在 跨 Android 和 iOS 端开发上再继续前进点。比如 尽快完善 WebView 插件。
不过我说了也没用,跨4端开发确实很美好,但是这样会降低 Android 和 iOS端相关开发工作的速度。
任何项目,研发资源总是不够的。Flutter 同样如此。我认为有如下几个原因:
Dart 相对小众
学习 Dart 的意愿不足
移动端开发整体下行
有好的解决方式吗?好像没有。笔记 有了 JavaScript 这个锤子,有锤不完的钉子。而会了 Dart 只有 Flutter 这一个钉子可以锤。虽然 Dart 也在服务端努力着,但是依然不看好。
Flutter 的真实客户在哪里
为啥说客户,不说用户,或者开发者。客户就要保证客户体验。
对于 Flutter 这样一个产品,客户的目标特征有哪些?
希望Android 和 iOS App 共用一套业务代码
研发投入有限,不想养两个移动端开发团队
同时App的开发体验和使用体验都要超过 React Native
技术开发的团队,不介意引入新的技术栈
其实满足这样条件的客户并不多。
Flutter 的标杆客户分析
Flutter 的标杆客户应该就是闲鱼App的开发团队了,但是那也不是说闲鱼整个App都是基于Flutter开发的,而且不说所有技术团队闲鱼这样的团队体量的。不同的技术团队对同一个技术都会有自己的考量。
不要人云亦云,比如 Facebook 的移动端 也完全不是用 React Native 开发的,或者说就没用用到,是它公司下别的App用到了。
现在可以把 App 整体切换到 Flutter 了吗
几个点需要考虑,用户规模,研发资源,研发速度、研发体验。
2C 的App就不建议切换了,市场变化速度太多。商机稍纵即逝,追求体验就原生开发,追求效率就 React Native。当用户量在10万级别,并且会持续增长的情况下,可以考虑纯原生开发了,如果之前就是纯原生开发的话,那就加人就可以了。
2B的App的技术团队还是很有必要研究下 Flutter,但是在生产环境下,我感觉还是再需要半年左右。
个人观点
等着打脸
Flutter 应该是最后一个能流行起来的 跨移动端开发框架了。但是应该不能火过 React Native,除非 Facebook 放弃 React Native。但是明显不会。
也就是说 Flutter 也是你学的最后一个 跨移动端开发框架了。
如果工作上用不到,不建议投入很多精力学,因为可能以后也用不到,不如做点更有意义的事情。
图书推荐
Flutter in Action https://www.manning.com/books/flutter-in-action
中文图书一本也不推荐,看看官方文档就可以了。几乎所有的 Flutter 中文图书都是官方文档及部分官方 Package 的解读而已。
最后
任何技术都用坑,只有你跳的够深,才能很好的避开坑。真要入 Flutter 的坑话,只是会用 Dart 写一些业务,引用一下第三方包是不够的, Flutter 的 engine ,Dart 的 vm 是必要要入的坑。
没有银弹。没有最好,只有一个阶段最合适。
领取专属 10元无门槛券
私享最新 技术干货