Flutter官方发布了2024的路线图,明确2024年将完成的目标,这个路线图是有抱负的;它代表了 Flutter 和 Dart 最活跃的贡献者告诉我们他们今年计划开展的一些工作。一般来说,很难对工程工作做出任何保证,对于拥有数百名贡献者的开源项目来说更是如此。
我们继续关注叶轮的质量和性能。我们计划通过删除 iOS 上的 Skia 后端来完成 iOS 到 Impeller 的迁移。在 Android 上,我们预计 Impeller 将支持 Vulkan 和 OpenGLES;在短期内,我们还可以选择退出使用 Skia。此外,我们希望改进叶轮测试基础设施,以减少生产中的回归。
对于核心框架,我们期望完成完全支持 Material 3 的工作。我们还在研究通用化核心框架的选项,以更好地支持满足 Apple 设备设计期望所需的调整,例如应用栏和选项卡栏。
2023 年,我们启动了一项支持多个 Flutter 视图的计划 - 2024 年,我们的计划是将这种支持扩展到 Android 和 iOS。我们还致力于提高平台视图的性能和测试覆盖率/可测试性。
我们将继续通过启用/支持最新的 Apple 标准(例如隐私清单和Swift Package Manager)来实现 iOS 产品的现代化。我们还将调查未来 Android 版本所需的支持。
在 Android 上,我们将研究在 Android 构建文件中支持 Kotlin。
互操作对于与 Dart 的本机代码交互非常重要。我们期望完成支持直接从 Dart调用 Objective C代码的工作,并且我们将研究直接调用 Swift 代码的支持。同样,对于 Android,我们将继续致力于支持调用Java 和 Android。我们还将研究对只能在主操作系统/平台线程上调用的 API 的更好支持。
我们看到越来越大的趋势是,较大的 Flutter 应用程序通常以混合应用程序(包含 Flutter 代码和一些 Android/iOS 平台代码/UI 的应用程序)开始。我们将研究如何在性能/开销和开发人员人体工程学方面更好地支持这一点。
我们将继续关注性能和质量,包括研究减少整体应用程序大小、更好地使用多线程、支持平台视图、改进应用程序加载时间、使 CanvasKit 成为默认渲染器、改进文本输入以及研究支持选项Flutter 网络的 SEO。
我们期望完成将 Dart 编译为 WasmGC 的工作,并支持Flutter Web 应用程序的 Wasm 编译。这还包括Dart 的新 JS 互操作机制,支持 JS 和 Wasm 编译。
我们还计划恢复支持网络热重载。
虽然我们预计大部分时间都花在移动和网络平台上(如上所述),但我们仍在计划在桌面平台上进行一些改进:
- 我们希望在支持macOS和Windows上的平台视图方面取得进展,从而实现对 webview 等内容的支持。
- 在 Linux 上,我们的重点将是 GTK4 支持和可访问性。
- 在所有平台上,我们将继续支持来自一个 Dart 隔离的多个视图,最终目标是支持从一个小部件树渲染多个窗口。
我们计划与 AI 框架合作,支持 AI 驱动的 Flutter 应用程序的新时代。
我们不打算扩展我们维护的flutter.dev 插件集,而是专注于提高现有插件的质量,并解决核心功能差距(例如,研究更新的shared_preferences API,以更好地支持使用isolates和添加到应用程序用例)。我们还将支持Flutter favorites等社区计划。
我们还将与Flame社区共同努力,继续增加对使用 Flutter 构建休闲游戏的支持。
我们希望与人工智能解决方案集成,为核心编程任务提供人工智能帮助。
我们还将继续与 Google 的IDX 团队合作,并探索与设计工具的集成。
Dart 团队预计完成对 Dart 中支持宏的可行性的评估,并在 2024 年交付支持它们的第一阶段,或者如果我们发现无法缓解的架构问题,则放弃这项工作。宏的关键用例包括序列化/反序列化、数据类和一般可扩展性。
我们将研究一些更多的增量语言功能,例如为了减少冗长而进行的语法更改(例如,主构造函数和导入语法简写),以及对静态检查方差的更好支持。
最后,我们将研究在更多地方重用 Dart 业务逻辑,以及 Dart 的更多可插入性/可扩展性(例如,在 DevTools 和 Analyzer 中)。
我们计划在 2024 年发布 4 个稳定版本和 12 个测试版,与 2023 年类似。
我们仍然不打算投资对代码推送或热更新的内置支持。对于代码推送,我们shorebird.dev的朋友可能会提供感兴趣的产品。对于 UI 推送(也称为服务器驱动的 UI),我们推荐rfw包。