Flutter常见问题答疑

Flutter是什么?

Flutter是一个移动应用SDK,包含着完整的控件和工具链,能够让开发者非常轻松地同时开发支持Android和iOS两个平台的应用。

Flutter的意义?

对于用户,Flutter能够提供优美的UI和流畅的使用体验。
对于开发者,Flutter降低了开发App的门槛,加速移动应用的开发速度,并且能够降低同时开发Android和iOS应用的成本和复杂度。
对于设计者,Flutter能够轻松做出原型并且能够保持相当高还原度。

使用Flutter需要哪些方面的经验?

Flutter框架对于熟悉面向对象编程和命令编程的开发者门槛是相当低的,并不需要有移动应用的开发经验,我们已经见过编程经验不多的人都能学习并使用Flutter开发应用。

Flutter能够开发哪些类型的App?

Flutter能够开发Android和iOS上2D(不支持3D)界面的移动应用。
你可以使用Flutter开发具有全特性的应用(包含支持照相,定位,网络连接,存储,第三方SDK等等)。

是哪些人开发Flutter?

Flutter是开源项目,由谷歌和社区的小伙伴在支持。

哪些人在使用Flutter?

谷歌在使用Flutter构建一些business-critical(业务相关的)移动应用,例如,谷歌的移动销售工具应用就是使用Flutter开发的,还有Google Shopping Express的Store Manage应用,还有一些应用处于开发中。

Flutter有什么独特之处?

Flutter跟大部分构建移动应用的技术或者框架不同的是,Flutter没有使用WebView或者平台自带的控件,相反Flutter使用自身的高性能渲染引擎绘制自己的控件。
另外,Flutter仅仅只有小部分C++代码,Flutter使用Dart实现了它自身大部分功能(控件,动画,手势,compositing等等)。这样开发者能够容易阅读,修改Flutter的实现,所以这里提供开发者相当大的空间去控制整个框架而且显著降低入门门槛。

可以使用Flutter开发生产环境的应用了吗?

Flutter仍然处于开发当中,而且还没有到1.0版本。
Flutter的API已经开始稳定,并且我们在根据用户的反馈改进Flutter某些模块。
Flutter正在谷歌内部使用,并且这些应用已经交付给用户使用。
所以你自己决定吧,如果你成功使用Flutter开发应用,请务必告诉我们团队,我们也会感到高兴的。

Flutter可以提供什么?

Flutter SDK包含哪些东西尼?

  • 深度优化,移动优先的2D渲染引擎而且对文本支持非常出色

  • react风格的框架

  • 丰富的控件并且同时支持Android和iOS

  • 支持单元和集成测试的API

  • 支持与系统平台和第三方SDK交互的插件API

  • 支持Windows,Mac和Linux的Headless test runner

  • 支持创建,构建,测试和编译应用的命令行工具

有哪些editor或者IDE支持Flutter?

我们提供了IntelliJ IDEA插件,能够完全支持Flutter的应用开发。
或者你可以使用普通的编辑器搭配命令行工具开发。

Flutter有控件支持吗?

Flutter提供了一系列高质量的Android风格和iOS风格控件,布局和主题。当然,这些控件仅仅只是一个开端,Flutter本身就非常容易创建你自己的控件或者修改已存在的控件。

Flutter有测试框架支持吗?

Flutter提供一系列的API帮你编写单元和集成测试,了解更多
我们使用自己测试API去测试SDK,我们每次的代码提交都会生成一份测试覆盖率报告。

Flutter支持依赖注入吗?

我们暂时还不支持这个功能。

技术

Flutter是由哪些技术构建而成的?

Flutter由C, C++,Dart和Skia(2D渲染引擎)构建的,了解更多

在Android上Flutter是怎样运行的?

引擎的C或C++代码是由Android NDK编译的,而框架的主要代码和应用的代码由Dart compiler编译成native code执行的。

在iOS上Flutter是怎样运行的?

引擎的C或C++代码是由LLVM编译的,而所有Dart的代码会被AOT编译成native code,整个APP运行时使用的是机器指令(并不是拦截器)。

Flutter是否使用了平台的控件?

Flutter自身提供了一系列的控件,这都是由Flutter自己创建和绘制的。
如果我们使用平台提供的控件,整个应用的质量和性能就会被这些控件所限制(RN的缺点)。
由于因为是由同一个渲染引擎渲染,这些控件无论在Android或者iOS上都能保持高度一致,无需小心翼翼布局或者分出两个CodeBase。
由于使用的是同一种语言开发,这极大降低开发门槛和成本。

如果我的系统更新或引入新的控件会怎样尼?

Flutter团队会观察Android和iOS平台新控件的需求,并会打算与社区一起构建支持这些新控件;这些工作可能会给框架带来一些新的特性,一些新的控件或者控件新的实现。
Flutter本身自带了许多控件,而且我们鼓励社区去构建自己的控件库。

如果我的系统更新并引入新的功能会怎样尼?

Flutter的插件系统一开始就被设计为支持开发者自己去开发插件使用系统新功能的特性和能力,开发者无需等待Flutter团队去开发插件暴露系统新的功能或特性。

Flutter能在那些操作系统上开发应用?

Flutter支持Windows,Mac和Linux。

Flutter能否运行所有Dart代码

Flutter只能能够运行大部分Dart代码(不能引入dart:mirrors或dart:html库)

Flutter引擎多大?

截止2017年6月,我们测试Android平台最小的Flutter应用(仅仅只有一个Center控件)大约为6.7MB。
核心引擎 3.3MB
框架+应用代码 1.26MB
LICENSE 55KB
java代码(classes.dex) 40KB
ICU data 2.1MB

相关文章

这篇文章主要讲解了“FlutterComponent动画的显和隐怎么实现...
这篇文章主要讲解了“flutter微信聊天输入框功能如何实现”,...
本篇内容介绍了“Flutter之Navigator的高级用法有哪些”的有...
这篇文章主要介绍“Flutter怎么使用Android原生播放器”,在...
Flutter开发的android端如何修改APP名称,logo,版本号,具体...
Flutter路由管理初识路由概念一.路由管理1.1.Route1.2.Mater...