首先感谢 掘金 帮我们转了这篇文章,并纳入
Google I/O 2018
大会专题页中。不过我们打算自己再发一遍。小集团队会持续跟进
Flutter
的动态,和大家一起来学习并推动Flutter
的发展。我们还和阿里闲鱼团队合作,后期在我们公众号里,会转发他们团队关于Flutter
的分享。欢迎关注我们的公众号,我们每周都会有原创文章分享。我们主要定位在移动开发领域,分享移动开发技术,包括 iOS、Android、小程序、移动前端、React Native、weex 等。
至从 Google 在 2017
年的 Google I/O
上推出 Flutter
以来,Flutter 团队投入了大量的精力来不断完善 Flutter。包括重写引擎的主要部分、发布支持 Android Studio 和 Visual Studio Code 的插件、集成 Dart 2
,增加更多 Firebase API
的支持等等。
进入 2018
年后,Flutter 团队在 github 上开源了 Flutter,并保持一定频率的 beta 版本更新。我们可以看到目前在 github 上,Flutter 的 star 数达到了 23k+
之多,受欢迎程度可见一斑。
这两天 Google I/O 开发者大会,Flutter 也借此发布了 Beta 3
版本,向正式版又迈进了一步。本文就一起来看看,Beta 3 版本新增了哪些特性。
据官方介绍,Beta 3 版本将主要精力放在三个方面:基础建设、生态系统、工具。让我们来一起看看。
基础建设
基础建设方面主要体现在优化内置的 UI Widget,完成 Dart 2 的剩余功能和引入一些新的 API。
1 优化了内置的 UI Widget
,对 Meterial Design widgets
做了许多改进,以实现更大的灵活性和定制化。如:
- 添加新的
BottomAppBar
组件; - 改善和扩展对
Chips
的支持; InputDecorator
现在支持填充/下划线和提纲(outlined)模式;FloatingActionButton
现在提供了更大的定位灵活性;Slider
现在可以定制 thumb 和 value 指示器的颜色和形状;- 增加对
GIF
和WebP
等格式的动图支持;
另外,更新了 Flutter Gallery https://github.com/flutter/flutter/tree/master/examples/flutter_gallery
应用程序,以更好的演示这些新特性。
2 完成 Dart 2 的优化工作,并且在新版本中默认启用。
- 添加新的语法糖来帮助在 Flutter 中实例化小部件,
new
关键字变成可选的,创建 widget 实例比以前更方便:
Widget build(BuildContext context) => Scaffold(
appBar: AppBar(
title: Text(widget.title),
actions: <Widget>[
IconButton(
icon: Icon(Icons.info),
onPressed: _aboutAction,
),
IconButton(
icon: Icon(Icons.share),
onPressed: _shareAction,
)
],
),
body: Center(
child: _body(),
),
floatingActionButton: FloatingActionButton(
onPressed: _refresh,
tooltip: 'Refresh',
child: Icon(Icons.refresh),
),
);
- 在已存在的
const
关键字的范围内,const 关键字在任何子节点中变成可选项,所有子结点自动为 const 。之前的测试版本中,很难从上下文中推断出对象的子对象是不可变的,所以需要给子对象也加上 const。
const comments = <Comment>[
Comment(
"Creating apps is just faster and more fun with Flutter.",
"Posse Inc."),
Comment(
"Yesterday I was trying #Flutter for the first time, today I published an application.",
"@CristianDudca"),
Comment(
"This weekend: Met and fell in love with Flutter.",
"@FIREYOSE"),
];
3 其它基础建设:
- 改进对屏幕阅读器的支持、大文本和对比度功能;
- 提供对从右到左阅读的语言的支持;
- 控件可在适当位置进行镜像;
- 重写 Flutter 的线程模型,以便在单个应用程序中托管多个
FlutterView
;
生态系统
4 Firebase 插件:几款插件将实现 1.0 里程碑:实时数据库(Realtime Database)、Firebase Analytics、Firebase Message、Firebase Core。此外,还为 Remote Config、Cloud Firestore 和 Performance Monitoring 添加了新的功能齐备的插件。
5 对 Google AdMob
的支持将推出 beta 版本,让开发者可以通过 Flutter 应用获利。
6 Flutter 团队和 Flutter 社区都提供了许多其它包供开发者使用。
工具
Flutter 团队持续定期更新 Android Studio
和 IntelliJ
的 Flutter 插件,以改善开发体验。同时加强了对 Visual Studio Code
的支持,Visual Studio Code 最新版本的 Flutter 扩展包含了 Flutter Beta 3 的所有新功能:
7 重新设计了 UI Inspector
,新增 "Just My Widgets
" 功能,可以显示自己代码中创建的 widget,并且可以以树形结构显示 widget 中所有嵌套的 widget 的相关信息。
8 Extract Widget
:对各开发工具提供了更广泛的重构功能,这包括一个 Extract Widget 重构,这个功能将创建一个新的 Widget 类并在原始位置插入一个构造器。
9 热加载(Hot reload)工作流:当重新加载和重新启动时,将这些动作标记在 IntelliJ 的本地文件历史记录中。这使我们可以返回到之前的重新加载点并比较在 UI 上迭代时所做的更改。
10 可在 profile 模式
下运行 Flutter 应用程序,该模式下会显示每秒帧数和内存使用情况
其它一些改进可以查看参考文献 2。
小结
目前国内 Flutter 社区也在慢慢发展起来,也有一些大公司的团队在尝试这项新技术,如阿里闲鱼团队,Google 官方博客也特别提到闲鱼团队的尝试。阿里闲鱼团队在他们的公众号上发布了他们的研究成果,大家可以关注(XYtech_Alibaba
)。
另外 Flutter 团队也非常重视中国开发者,特别提供了一些资源供中国开发者使用:
- Using Flutter in China:
https://github.com/flutter/flutter/wiki/Using-Flutter-in-China
- Flutter Codelabs:
https://codelabs.flutter-io.cn
大家可以参考。
参考
- What’s New in Flutter Beta 3
https://medium.com/flutter-io/flutter-beta-3-7d88125245dc
- New Flutter tooling releases -- Inspector: “Just my Widgets”
https://groups.google.com/forum/#!topic/flutter-dev/N6nOno1m3Mk
- Ready for Production Apps: Flutter Beta 3
https://developers.googleblog.com/2018/05/ready-for-production-apps-flutter-beta-3.html
知识小集 · Flutter 自习室
另外我们拉了一个微信群,有兴趣的童鞋可以加入,和我们一起学习哈。