CrossFly 是一个开源框架(Apache 2.0),你用纯 Java 编写 UI 和逻辑,它通过 LibGDX/OpenGL 在 GPU 上渲染,并编译为桌面端(Windows、macOS 和 Linux)、Android 和 iOS 的原生二进制文件,以及可在 Chrome、Firefox、Safari 等任何现代浏览器中运行的 WebGL 构建。搭配 CrossFly Sync 即可实现离线优先的数据。
Flutter 是 Google 的开源(BSD)UI 工具包,你用 Dart 编写,它通过自家的 Skia/Impeller 引擎在 GPU 上渲染,面向移动、桌面和 Web。平台功能和许多高级控件都来自第三方 pub.dev 包。
真正重要的差异
不是一张规格表——而是决定你的应用如何老化、扩展和交付的那些因素。
每一项高级功能都是别人的包
Flutter 的核心绘制控件,但一旦你需要通知、相机、后台定位、蓝牙、支付或富文本编辑器,你就得去用一个 Google 并不拥有的 pub.dev 包。维护者在追赶两个原生平台的过程中精疲力竭,于是包被废弃——甚至包括 Flutter 团队自己推荐过的,比如 flutter_adaptive_scaffold。当一个包停止更新,未来某次 Flutter 或 Gradle 升级就可能让你的构建崩溃,却没有负责人来修。
CrossFly 用 Java 绘制自己的 UI,并倚靠成熟的 JVM 生态系统,那里的核心库已经稳定了十年甚至更久。你的关键路径上没有一批轮换上阵的社区插件,所以“一个废弃的包毁了我们的发布”从结构上就不是 CrossFly 应用失败的方式。
升级的成本会不断累积
Flutter 以固定的节奏推出破坏性变更——Color API 重写、edge-to-edge 和 Gradle 变更等等。dart fix 能自动处理一部分,却不是全部。真正的痛苦在于累积:当 SDK 破坏了一个 API,你还得等每一个第三方包跟上,才能真正升级。
你按照 JVM 缓慢且向后兼容的节奏升级,卡住升级的外部包要少得多。一门语言、一套工具链、要等的维护者也更少。
Dart 是一门你不得不为之招人的语言
Dart 几乎只在 Flutter 内部使用。其人才储备只是主流语言的一小部分,因此招聘更慢、更贵,当你撞上边界情况时,可用的久经考验的库和答案也更少。
CrossFly 就是纯 Java——地球上最庞大、最稳定的人才储备之一,拥有数十年的库积累,以及你的企业很可能早已雇用的开发者。如果你的团队懂 Java,那它就已经懂 CrossFly。
触达你的 Java 后端意味着要写一座桥
Flutter 无法直接调用 Java 或 JVM 代码。要复用你现有的后端模型、校验或 SDK,你就得为每个平台编写并维护异步的“平台通道 (platform channel)”——用一门你团队别处不用的语言写的代码,还需要运行应用的集成测试来保证其安全。
CrossFly 就是 Java。你现有的 Java 库、领域模型和校验直接在应用中复用——没有桥要写,没有第二门语言要照看。
路线图掌握在单一厂商手里
Flutter 和 Dart 由单独一家公司掌舵。Google 2024 年的裁员波及了 Flutter 和 Dart 团队,一个社区团体以沟通迟缓为由将 Flutter 分叉为“Flock”——对于一个你要押上产品的技术栈而言,这是治理和推进速度风险的真实信号。
CrossFly 运行在多厂商、基于标准的 OpenJDK 生态系统上——没有任何单一公司能抽走你脚下的地毯。Core 采用 Apache 2.0,开放可供审计。
CrossFly 领先之处
Flutter 真正强大之处
CrossFly 对比 Flutter 一览
| 维度 | CrossFly | Flutter |
|---|---|---|
| 语言 | Java | Dart |
| 渲染 | 通过 LibGDX/OpenGL 在 GPU 上 | 通过 Skia/Impeller 在 GPU 上 |
| 核心 UI 依赖 | 由框架绘制 | 核心控件 + pub.dev 包 |
| 平台功能 | JVM 库 + 原生访问 | 社区 pub.dev 插件 |
| Java/后端复用 | 直接(它就是 Java) | 通过手写的平台通道 |
| 平台 | 桌面端(Windows、macOS、Linux)、Android、iOS、网页(任意浏览器) | 移动、桌面、Web |
| 离线优先 | CrossFly Sync(双向) | 第三方包 |
| 语言人才储备 | 非常庞大(Java) | 小众(Dart) |
| 治理 | 多厂商 OpenJDK | 单一厂商(Google) |
| 许可 | 开源(Apache 2.0,Core) | 开源(BSD) |