前言
Flutter诞生于2018年,谷歌出品,应该是属于最新的移动跨平台开发框架了。从React Native自身框架的一些问题导致的用户量降低后,有很多小伙伴便转战Flutter战场。Flutter作为最新的跨移动平台开发框架,自然是汲取了以往框架很多教训,同时集成了Dart语言作为开发语言,Dart语言的AOT和JIT,有效的保证了开发效率。
框架优势
-
快速开发
Flutter的热重载可帮助您快速地进行测试、构建UI、添加功能并更快地修复错误。在iOS和Android模拟器或真机上可以在亚秒内重载,并且不会丢失状态
-
富有表现力,漂亮的用户界面
使用Flutter内置美丽的Material Design和Cupertino(iOS风格)widget、丰富的motion API、平滑而自然的滑动效果和平台感知,为您的用户带来全新体验
-
现代的,响应式框架
使用Flutter的现代、响应式框架,和一系列基础widget,轻松构建您的用户界面。使用功能强大且灵活的API(针对2D、动画、手势、效果等)解决艰难的UI挑战
-
访问本地功能和SDK
通过平台相关的API、第三方SDK和原生代码让您的应用变得强大易用。 Flutter允许您复用现有的Java、Swift或Oc代码,访问iOS和Android上的原生系统功能和系统SDK
其实,Flutter和以往的React-native等框架相比,个人认为出类拔萃在两点:
- 构建界面风格统一的UI,真正保证了Android和IOS的双端表现一致型,例如同一个Button不会出现在IOS和Android上显示形式不统一的问题
- 和原生交互方面,采用了MethodChannel,简单快捷,只需要定义一个消息渠道,原生端添加渠道监听,在Flutter中调用invokeMethod即可
上手难度如何
dart语法
Flutter采用dart作为开发语言,dart作为强类型语言(但是却可以用var和dynamic来声明),采用面向对象编程。所以,如果有同学是Java或者其他面向对象的过来的话,语法理解上问题不大,上手较快。若没有面向对象的思想的同学,可能需要花些时间在理解概念上后,才能更好的进行理解开发
widget组件
Flutter自带组件整体感觉比较多且一时间难以全部掌握,不像采用css布局这种的React-native容易较快上手布局,这种散装组件的感觉特别像Native开发中的原生组件学习,非一日之功,需要慢慢积累摸索,上手难度,中等
其他
比如环境搭建,项目运行,插件组装等,整体来说,跑起来不会有大问题
在性能和兼容性方面,Flutter表现是目前表现的最好得一款框架了。如果项目中要考虑使用跨平台开发,建议使用Flutter来开发,毕竟React-native确实问题太多,毕竟到现在还没有正式版本,官方也在准备内部代码重构。