怎样评价谷歌推出的 Flutter 框架和 Dart 语言( 二 )
配置此部分针对 Mac 平台,Windows 平台的安装配置,Linux 平台的安装配置。由于笔者主要做移动端开发,如果想使用 Flutter 进行 iOS 和 Android 全平台的开发,环境也建议是 Mac 平台,毕竟 iOS 只能在 Mac 下进行模拟调试。
安装 Fluttergit clone -b beta https://github.com/flutter/flutter.gitexport PUB_HOSTED_URL=https://pub.flutter-io.cn //国内用户需要设置export FLUTTER_STORAGE_BASE_URL=https://storage.flutter-io.cn //国内用户需要设置export PATH=`pwd`/flutter/bin:$PATH
iOS 设置brew updatebrew install --HEAD libimobiledevicebrew install ideviceinstaller ios-deploy cocoapodspod setup
Android 设置下载 Android Studio,安装 Flutter 插件,会将 Dart 插件也一起安装。
体验 FlutterIDE 建议选择 Android Studio,安装了 Flutter 插件后,Flutter 的开发跟 Android开发类似,附带三种模版工程、断点调试等。在 Android Studio 里面新建一个 Flutter Application 的项目,选择模拟器或者直接连接真机运行,就可以看到一个简单的 Flutter 应用了,可以在 Android 和 iOS 不同平台下看看差异。
Flutter 架构Flutter 是一款移动应用程序 SDK,一份代码可以同时生成 iOS 和 Android 两个高性能、高保真的应用程序。
Flutter 对于移动开发人员,最诱惑的能力是其完全的跨平台特性,不同于 RN 这种一处学到处写,它是一处写到出跑,但是他跟其他的跨平台有何区别呢?
跨平台解决方案
市面上的跨平台解决方案,可以大致归结为两类:
使用平台支持的 web 技术:这些解决方案基本上加载了应用程序中的移动浏览器,并在该浏览器中执行所有的逻辑,例如 PhoneGap。本地跨平台:程序员编写的代码自动转换为 Native 代码,这种方式的优点是近乎原生的性能,例如 RN、Weex、Xamarin 等。这些方案是否真正的解决了跨平台问题呢?从目前的状况来看,很显然是没有的,因为它们都始终逃不开性能、包大小、流畅性、内存、平台特性等问题。
RN 单独拧出来说,是因为它们并不是追求的一次写到处跑,FB 自己也知道不现实,所以把口号改成一次学到处写,去考虑平台的特性,去考虑这个被跨平台方案经常忽略的问题。但是 RN 也并没有被广泛的接纳,从阿里开始使用到放弃,里面的很多坑都绕不过去。写一次到处跑确实很诱人,从企业角度讲,可以节省大量的人力,但是却忽略了一个很基础的问题,不同平台是否希望如此,苹果是否会愿意自己的生态被打破,不同平台的特性是否应该被归为一致。
Flutter 的跨平台解决方案上面简单说了传统跨平台解决方案,我们再回过头看看 Flutter 的解决方案,Flutter 跨平台最核心的部分,是它的高性能渲染引擎( Flutter Engine )。Flutter 不使用浏览器技术,也不使用 Native 的原生控件,它使用自己的渲染引擎来绘制 widget。说到 widget,就要说一句 Flutter 的一切皆为 widget
理念。widget 是 Flutter 应用程序用户界面的基本构建块。每个 widget 都是用户界面一部分的不可变声明。与其他将视图、控制器、布局和其他属性分离的框架不同,Flutter 具有一致的统一对象模型:widget。在更新widget 的时候,框架能够更加的高效。对于 Android 平台,Flutter 引擎的 C/C++ 代码是由 NDK 编译,在 iOS 平台,则是由 LLVM编译,两个平台的 Dart 代码都是 AOT 编译为本地代码,Flutter 应用程序使用本机指令集运行。Flutter 正是是通过使用相同的渲染器、框架和一组 widget,来同时构建 iOS 和 Android 应用,而无需维护两套独立的代码库。
推荐阅读
- 聪明人养花,这3种“花”怎样也要养一盆,每年能省不少医药费
- 互联网怎样解决“家政服务上门速度慢”的问题
- 怎样看待从1月8号起,QQ钱包开始提现收费
- 银行it人怎样转型
- 汽车|冬天怎样让车内温度快速升高?座椅加热的最佳使用方式二,外循环的作用总结
- 怎样进入通信行业
- 怎样评价扶他柠檬茶的小说《云养汉》的结尾
- 怎样成为一名合格的Python程序员?
- 怎样评价华为、诺基亚、中兴中标中国移动高端路由交换设备扩容集采
- 怎样评价类似前橙会、百老汇、南极圈这样类型的离职帮抱团,对企业的积极意义和消极意义