Flutter-关于Flutter

https://flutter.io

简介

Flutter(项目地址)是由Google推出的跨平台移动应用UI框架,可以快速在iOS和Android上构建高质量的原生用户界面。开发语言使用Dart,基于现代响应式框架以组件(Widget)的方式创建UI。基于BSD风格的协议发布,是完全免费、开源的。它也是构建未来的Google Fuchsia应用的关键方式 。

特性

Flutter并没有替代传统的移动应用开发模式;相反,您可以使用它来嵌入到现有的应用中或者从头开始构建一个完整的应用。它的特点主要体现在以下四个方面:

1. 绚丽视图 — 基于对屏幕元素每一像素的掌控,与强大的混合能力(Compositing capabilities)您可以没有任何限制的覆盖并使图形、视频、文字与控制器动起来。它包含了在iOS与Android上具有像素级别体验的组件集合,并内建启用了质感设计(Material Design)与Cupertino(iOS-flaver)组件。设计师们可以完整实现他们的构想,而不用因为底层框架的限制而缩水。

2. 高效运行 — 基于与Chrome与Android相同的硬件加速的Skia 2D图像引擎。我们将Flutter架构成支持在设备上具有图像处理的原生运行速度。代码是世界级的Dart平台语言赋能的,能够编译输出运行在iOS与Android上32-bit或者64-bit的ARM代码。

3. 快速开发 — 基于状态的热加载技术(Stateful hot reload)允许开发者与设计师能够实时预览应用。当代码发生变更的时候不用重启应用或者丢失应用状态就可以查看变化。这改变了原有的开发方式,使得在开发周期(Development cycle)中拥有更高的效率。

4. 拥抱开源 — 基于BSD风格的协议发布。来自世界各地的成百上千的开发都在为项目贡献力量,更重要的是有一个包含上千插件(Plug-ins)的活跃生态系统。因为使用标准的iOS和Android构建工具,可以轻松的接入底层系统原有的一切内容,包括原本在iOS下使用Swift或者Objective-C亦或在Android下使用Kotlin或者Java开发的框架与视图组件。

将这些与最好的集成开发环境Visual Studio Code, Android Studio, IntelliJ或者其它您选择的工具相结合,就能开发出基于一份代码运行在iOS和Android上的酷炫应用。

成长势头

Flutter在Google已经被广泛应用,《Google Ads》这款应用就已经在iOS与Android平台上切换到Flutter。在1.0版本之前,全球的开发厂商包括Abbey Road Studios, Alibaba, Capital One, Groupon, Hamilton, JD.com, Philips Hue, Reflectly和Tencent就已经在开发或发布它们基于Flutter的应用。

在Flutter Live上,Square发布了两款基于Flutter的支付SDK用于购买商品和服务。Square同时展示了一款使用它们支付SDK由Collins Family Orchards发布的示例应用。

同样在Flutter Live上,2Dimensions发布了立即可使用的Flare,一款允许设计师创建矢量动画的新工具,这些动画可以直接嵌入Flutter应用中或者使用代码操作。

另一家押注在Flutter上的合作厂商是Nevercode,一家快速成长的针对移动应用开发提供持续集成与交付(CI/CD)工具的供应商。在Flutter Live上,它们发布了专门针对Flutter的Codemagic工具,简化了自动化过程,通过一份自动化配置就可以构建并打包可以运现在iOS与Android上的应用。使用现阶段的beta版本,您可以选择一个Flutter项目的GitHub仓库,只需要少量的点击,创建持续构建流程包括运行测试,生成可以上传到Apple与Google Play应用市场的二进制包。

新特性-1.0版本

通过新的组件我们对pixel-perfect iOS应用的支持更加丰满;对接近20项重点服务的支持;提升性能并减小应用的体积。修复社区反馈的数千问题。

升级Dart到最新的2.1版本,通过该次升级可以获取更小的代码体积,更快的类型检查,类型错误更好的可用性。Dart 2.1同样包含新的语言特性可以提高构建用户体验的生产力。升级到Dart 2.1的开发者都说他们迁移到新的引擎后获取到了显著的速度提升。

1.0版本主要关注点在于Bug修复与稳定性。同时引入了两项新的处于预览模式的特性:应用集成(Add to APP)和访问系统(PlatformViews)。

应用集成

当开始构建Flutter的时候,我们的注意力主要集中在从头开始构建一个新的应用这一场景的产出能力。当然并不是所有人都可以享受从一个干净的状态开始。与一些成规模的合作厂商交流之后,很清楚的可以了解到它们希望在现有应用中使用Fluuter来获取新的用户旅程或特性,或者分阶段的将现有应用迁移到Flutter。

Flutter的架构很好的支持了这种模式:毕竟,每一个Flutter应用都包含在一个iOS或者Android的宿主容器中。但是我们仍然在持续更新我们的模版(Templates),工具集(Tooling)和指南文档(Guidance)以期使得在现有应用中适配Flutter更加容易。我们将在Flutter与宿主代码之间共享资源变得更加容易。我们同样重做了工具集,它将使不用启动应用的调试器就附着到既有的Flutter运行进程变得容易。

我们将继续使开发体验变得更加流畅。尽管一部分合作厂商已经根据指导在应用中成功的集成了Flutter,我们将继续添加示例并对可能的复杂应用场景提供支持。我们的指南文档adding Flutter to existing apps are on our wiki了解一下,你也可以在GitHub project board跟踪我们剩余的工作。

访问系统

与将Flutter嵌入到现有应用中相比,有些情况下,相反的将iOS或者Android系统能力嵌入Flutter应用中会更加有用。

所以我们引入了 platform view widgets (AndroidView and UiKitView) ,允许您在各平台上集成这样的内容。我们已经观察对Android支持的情况数个月,但是现在我们也在给iOS提供支持,并且开始添加Google Maps与WebView 这样的插件(Plug-ins)。

在开发者已经在尝试这些功能的时候,我们仍在持续提升性能与硬件设备通用性,因此基于PlatformViews发布应用的需要注意了。我们持续积极优化PlatformViews以期能够在下一个发布季准时发布产品化使用。

更多平台

有一些这类的工作已经在开放状态下展开。Flutter Desktop Embedding就是这样一个处于早期阶段的项目,它将Flutter迁移到包括Windows, MacOS和Linux在内的桌面操作系统。我们最近发布了informal details of using Flutter on Raspberry Pi一种在不具备完整桌面环境的小尺寸(Smaller-scale)设备上使用Flutter的方式。


Flutter-关于Flutter_第1张图片

Hummingbird基于Web的Flutter运行时实现,获益于Dart平台不仅能编译生成原生ARM代码也能生成JavaScript。这允许Flutter代码能够在标准的Web环境中运行而不用做改变。单独的博客文章technical implementation details of Hummingbird描述了更多的技术细节。在Google I/O 2019上我们将进行更多分享。

总结

您可以从我们的官网https://flutter.io/下载Flutter 1.0,这里你可以发现documentation for developers transitioning from other frameworks, code labs, cookbook of common samples和technical videos。

参考:

1. https://flutter.io

2. Flutter 1.0: Google’s Portable UI Toolkit

3. https://github.com/flutter

你可能感兴趣的:(Flutter-关于Flutter)