Flutter 是 Google 维护的开源跨平台 UI 框架,用一套 Dart 代码即可构建 iOS、Android、Web、桌面与嵌入式应用,代码直接编译为 ARM/Intel 机器码与 JavaScript。官网首页已宣布最新稳定版 Flutter 3.47 发布,独立设计包(standalone design packages)改为 opt-in,核心框架进一步精简。对需要一套代码多端上线的团队,Flutter 是当前生态最完整、且有 Google 长期投入的开源选项之一。
Flutter 是什么
Flutter 由 Google 开发并持续维护,定位是从单一代码库构建多平台应用的开源框架。它使用 Dart 语言,包生态托管在 pub.dev。框架本身与代码示例采用 BSD 3-Clause 许可开源,任何团队都可以免费使用和修改。
三大特性:快、高效、灵活
Flutter 官网将自己总结为三个词:Fast、Productive、Flexible。
Fast(性能快)。 Flutter 代码编译为 ARM 或 Intel 机器码(移动端与桌面端),Web 端则编译为 JavaScript。相比解释执行方案,应用启动与交互更接近原生水平。
Productive(开发高效)。 核心是 Hot Reload 热重载:修改代码后几乎立即可见界面变化,且不丢失应用状态。开发者不需要每次调整都重新编译、重启,迭代速度明显高于传统开发流程。
Flexible(界面灵活)。 Flutter 直接控制每一个像素,可以绘制完全自定义的界面,并在不同屏幕上做出一致的适配设计。
一套代码覆盖所有屏幕
Flutter 的目标平台包括 iOS、Android、Web、Windows、macOS、Linux 以及嵌入式设备。同一个代码库可以按需发布到多个平台,不必为每个平台各维护一套原生代码。对同时做 App 和 Web 端的团队,这是减少重复开发量的直接途径。
与 Google 服务深度集成
Flutter 与 Google 的应用生态打通,支持对接 Firebase、Google Ads、Google Play、Google Pay、Google Wallet、Google Maps 等服务。支付、地图、广告、推送等常见能力可以沿用 Google 系方案。官方案例中,Google Pay 的移动支付体验即基于 Flutter 构建。
3.47 版本动态
Flutter 官网已宣布 3.47 发布,主要变化是独立设计包改为 opt-in:相关设计包不再默认捆绑,需要时按项目单独引入。在此之前,Flutter 3.44 与 Dart 3.12 已带来一轮框架与语言更新。从官网发布记录看,Flutter 与 Dart 保持着高频迭代节奏,3.41/Dart 3.11、3.38/Dart 3.10、3.35、3.32 等版本陆续发布。
什么时候适合用 Flutter
Flutter 适合以下场景:
- 需要同时覆盖 iOS 与 Android,希望一套代码维护;
- 需要兼顾 Web 或桌面端,但不打算分别组建团队;
- 对界面定制要求高,需要像素级控制;
- 团队接受 Dart 语言,愿意投入少量学习成本。
如果团队以 Web 为主、原生 App 需求少,或已有成熟的 React Native 技术栈,选型时则需要对比生态与团队技能,而不是默认迁移。Flutter 的价值在于:用一门语言、一个代码库,把多端一致性问题在编译期解决掉。