Flutter 3.47

Flutter 3.47 再次引发对 Google 跨平台 UI 框架的讨论:许多开发者称赞它的生产力、性能,以及仅用一份 Dart 代码库就能覆盖移动端、桌面端、Web 乃至嵌入式系统的能力,并指出它已被多家大型公司真实采用。另一些人则仍对 Google 的长期承诺、Flutter 较弱的 Web 叙事,以及渲染怪癖或缺少平台原生行为等粗糙边缘心存顾虑,转而偏好围绕 Kotlin、React Native,或结合 AI 的完全原生开发生态。总体而言,Flutter 被视为一个成熟且使用广泛的选项,其主要风险更多是战略层面而非技术层面。

项目状态与生命周期

  • 许多人认为,考虑到 Google 关闭受欢迎工具的历史,Flutter 作为 Google 的一个项目竟然如此有韧性,出人意料。
  • 讨论中给出的解释包括:内部使用强劲(例如 Google 产品、AdWords 用 Dart 重写)、单一移动代码库带来的成本节省,以及路径依赖。
  • 有人认为,即使 Google 退缩,生态系统的势头以及转交给基金会的可能性也足以让它继续存活。
  • 但也有人因为担心最终会被“突然抽走支持”而仍然避开它。

采用情况与真实世界使用

  • 一派人声称“没人用它”。
  • 其他人则反驳道:
    • 大型消费者应用(银行、中国科技公司、汽车制造商等)。
    • Google 内部的 dogfooding。
    • 线程中分享的第三方统计:约 16% 的 iOS 应用和约 24% 的 Android 应用在使用 Flutter SDK。
  • 几位开发者表示,他们已经成功上线了拥有大量用户的生产应用。

被强调的优势

  • 用单一代码库同时覆盖 Android、iOS、桌面和 Web,且 UI 相对一致。
  • 开发体验强:热重载、快速迭代、工具完善,以及与 Firebase 集成直接方便。
  • Dart 被称赞为简单、静态类型、空安全,并且具备良好的 FFI 以及 AOT/JIT 工具链。
  • 很适合“业务 CRUD”和跨平台应用,尤其是在不那么看重平台原生极致体验的场景下。

批评与痛点

  • 对 Google 承诺程度的担忧,以及在 Android 官方文档中可见度不足。
  • Web 支持被形容为对传统网站来说“基本不可用”;下载包大、基于 canvas 的渲染损害了工具和可访问性。
  • 有人指出桌面性能和滚动行为(尤其在 iOS 和 Web 上)较弱或不一致。
  • 开发者提到某些工作流中编译时间很长、Impeller 引擎的发布过程磕磕绊绊,以及多窗口和 HDR/广色域等功能到来缓慢。
  • 有些人非常不喜欢 Dart 的语法和语义;另一些人则认为与更新的 UI 框架相比,Flutter 代码显得冗长且“古老”。

Flutter 与替代方案

  • React Native:有些人因为 TypeScript/招聘、与原生 UI 的映射更接近、生态更广而更偏好它;另一些人则表示它性能更差、依赖地狱严重,并且应用架构不佳。
  • Kotlin Multiplatform/Compose:被视为很有前景,但仍不够成熟且更复杂;工具链和 Gradle 生态受到批评。
  • 原生 + AI:多条评论认为,AI 辅助的原生开发正在削弱跨平台框架的传统优势。