老孟导读:回顾一下Flutter 2020年的重大事件。 作者:LeanCode的Flutter开发人员RobertOdrowąż- Sypniewski。 原文链接:https://medium.com/flutter-community/7-most-important-flutter-updates-for-2020-you-cannot-miss-b4ec11cc4a41
总体而言,2020年是非常艰难的一年,但是就Flutter的发展而言,这是非常好的一年。就在今年年初,Flutter取得了象征性的里程碑,其 GitHub star 超过了其最接近的竞争对手React Native。2020年发布了该框架的三个主要(次要)版本。在本文中,我将回顾Flutter生态系统中最重要的变化以及相关变化。
Navigator 2.0
今年最重要的新功能可能是Navigator 2.0。新的导航器实际上是对现有命令式导航引入附加声明式API的扩展。新API有两个主要优点。第一个是对导航堆栈的更多控制。
使用旧的命令式API很难或难以执行某些导航操作。这些困难的行动包括:
- push多页
- 在中间修改导航堆栈
- 处理可以启动应用程序的事件,即 intents 和推送通知。
现在,使用新的声明性API可以轻松处理所有这些情况。对堆栈的访问允许在任意位置添加任意数量的页面,以解决前两个问题。导航堆栈和导航器之间的反向依赖关系解决了应用程序启动时导航器不可用的问题,从而消除了在应用程序运行和启动时以不同方式处理 intents 和推送通知的需求。
第二个优点是可以更好地与平台路由集成,这在Flutter for Web中尤其有用。在Flutter for Web应用程序中,用户可以使用导航栏随意更改路线。多亏了单独的RouteInformationParser,这些意外的路由更改的处理更加干净。
自动填充
今年添加的另一个新功能是对表单自动填充的支持。自动填充是为数不多的特定于平台的API之一,现在仅需几行代码,我们就可以允许平台服务保存和填充用户输入的凭据和其他数据。
Material 风格组件更新
新功能并不是框架中唯一值得注意的更改。在这一年中,Material 包已经增加了新的小部件,并进行了更新以匹配新的Material指南。今年推出的新小部件是:
- NavigationRail
- InteractiveViewer
而更新的小部件包括:
- DatePicker
- TimerPicker
- Slider
- RangeSlider
其他已更新的小部件是“Material”按钮。在Flutter 1.22中,扩展了Flutter中可用的标准“Material”按钮集,并修改了它们的主题。
Windows和Linux alpha支持
2020年Flutter框架的另一项重大改进是增加了对另外两个桌面平台(Linux和Windows)的alpha支持。对这些平台的支持以及2019年底引入的macOS支持意味着Flutter现在支持所有主要的台式机平台。重要的是要记住,将Flutter桌面合并到稳定分支尚需时日,但是它已经可以很好地工作并且可以考虑用于生产用途。
iOS改进
还引入了有关iOS平台的许多改进。该框架已更新,以使其与iOS 14的新策略和功能兼容*。cupertino_icons*程序包已扩展为带有新图标,并且现有图标已更新为与最新的iOS 14样式匹配。Flutter 1.22版本还支持iOS 14的新App Clip功能。
扩展方式
扩展方法已在2019年末添加到Dart中,但是它们的引入在2020年期间对程序包进行了重大更改。由于扩展方法的存在,rxdart程序包已重构为使用标准Dart流。自定义可观察类型已替换为具有使用扩展方法添加的其他功能的流。许多软件包(其中最著名的可能是provider和flutter_bloc)在BuildContext上引入了扩展方法,以更简洁地访问注入的依赖项。
软件包
同样在框架之外,在这一年中,Flutter和Material团队发布了两个重要的软件包,简化了开发过程*-google_fonts和动画。* google_fonts包允许动态加载和缓存字体。animations软件包包含可以使用的常见过渡效果的动画。
2021年会有什么期望?
Null-safety
预计将于2021年发布的最令人兴奋的功能是Null-safety。空安全性,尤其是Dart中与线程安全性相关的内容,将使开发人员可以编写许多更安全的代码。整整一年来,程序包开发人员一直在更新其程序包,以使它们从一开始就与null安全兼容。因此,开发人员的过渡将更加轻松。
3.03.2021事件
@FlutterDev最近在3.03.2021上宣布了一个神秘事件。许多用户一直在Twitter上猜测,最流行的猜测可能会在活动中宣布:
- Web稳定Flutter
- beta /稳定Flutter桌面
- Fuchsia 系统
在我看来,Flutter桌面合并到Beta频道的可能性最大。
尽管2020年出现了种种障碍,但Flutter社区还是取得了丰收的一年,并具有令人敬畏的功能(已在开发中),将于2021年发布,我们可以期待它会变得更好。