Flutter官网 https://flutter.io/
Flutter中文站 https://flutterchina.club/
Flutter中文资源 https://flutter-io.cn/
简介
- Flutter是谷歌的移动UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。
- Flutter由Dart + C++ + Skia 开发。
- 目前已经支持了 iOS、Android、Fuchsia。
开发环境
可以在Android Studio上安装Flutter插件进行开发,开发使用Dart语言。
Dart 官网 https://www.dartlang.org/
Dart中文站 http://dart.goodev.org/
跨平台方案比较
市面上的跨平台解决方案,可以大致归结为:
- 使用平台支持的web技术:这些解决方案基本上加载了应用程序中的移动浏览器,并在该浏览器中执行所有的逻辑
- React Native、Weex跨平台框架
- 微信小程序
但是都存在一些缺陷,比如
- WebView框架有一个致命(在对体验&性能有较高要求的情况下)的缺点,那就是WebView的渲染效率和JavaScript执行性能太差。再加上Android各个系统版本和设备厂商的定制,很难保证所在所有设备上都能提供一致的体验。
- 而React Native ,因为JavaScript访问了原生UI组件,所以它也必须经过这些“桥接器”,界面上的UI控件通常被频繁地访问(在动画、转化或者用户用手指“滑动”屏幕上的某些东西时,每秒被访问高达60次),因此这很可能会导致性能问题
- 微信小程序需要依附于微信生态
Flutter则开辟了一种全新的思路,从头到尾重写一套跨平台的UI框架,包括UI控件、渲染逻辑甚至开发语言。渲染引擎依靠跨平台的Skia图形库来实现,依赖系统的只有图形绘制相关的接口,可以在最大程度上保证不同平台、不同设备的体验一致性,逻辑处理使用支持AOT的Dart语言,执行效率也比JavaScript高得多。
优缺点
优点:
- 响应式视图的优点,不需要JavaScript的桥接器
- 快速,流畅,可预测; 代码将AOT编译为本机(ARM)代码
- 开发人员完全控制UI组件和布局
- 配有美观,可定制的UI组件
- 强大的开发者工具,惊人的热重新加载
- 性能更好,兼容性更好,开发起来更有乐趣
缺点:
- 还没有Release版本
- 过渡原有项目比较复杂