Skip to content
CrossFly is 100% open sourceFollow us on GitHub
CrossFlyCrossFly
Get started
One Hello.java → Android · iOS · Windows · macOS · Linux · Web

iOS. Android. Desktop. Web.
From one Java file.

Write in Java with the CrossFly API and take the same code to all four platforms — Android, iOS, the web in Chrome, Firefox, Safari and other browsers, and the desktop on Windows, macOS and Linux. Truly native apps, no rewrites.

Hello.java0.9s build
package app.hello;import dev.crossfly.ui.*;import dev.crossfly.ui.layout.*;public class Hello extends Window {  public void onAdd(boolean first) {    setLayout(new GridLayout(Position.CENTER, Position.CENTER));    add(.8f, new Label("Hello, CrossFly! ✈"));    add(.8f, new Button("Tap me")        .onAction(c -> toast("Native on every screen")));▍  }}
Android
iOS
Desktop
Web
Hello,
CrossFly! ✈
Tap me
LIVE
Built on tech you trust
JavaLibGDXAndroidiOSWindows · macOS · LinuxWeb
Why CrossFly

Everything you need. Nothing you have to relearn.

A complete native UI toolkit — windows, layouts, fields, styles — driven entirely from Java.

Pure Java, end to end

Write your whole app — UI, logic, navigation — in Java. No DSL, no second language, no context switching.

Performance that flies

A LibGDX rendering core delivers native-grade speed and frame rates the alternatives can only envy.

One codebase, 4 targets

Android, iOS, Desktop (Windows, macOS and Linux) and the web (Chrome, Firefox, Safari and other browsers) from a single source. Build once, ship to every screen your users own.

You already know it

If you know the Java API, you already know CrossFly. Reuse the muscle memory of millions of developers.

Native UI toolkit

Windows, TextFields, Buttons, GridLayout, styles, shadows and Material Icons — ready out of the box.

Instant feedback

Sub-second builds and a running app in under a minute keep you in flow instead of waiting.

No surprises

Crystal clear: what CrossFly is — and what it isn't

What CrossFly is

A GPU-native UI engine
Your screens draw straight through LibGDX to the GPU — real, accelerated rendering, not a web view.
100% shared code — UI included
One Java codebase covers logic and interface across Android, iOS, Desktop (Windows, macOS and Linux) and the web (Chrome, Firefox, Safari and other browsers). No platform forks.
Open to the Java ecosystem
Pull in the libraries, tools and patterns you already trust. Mix in native widgets and APIs when you need them.
A complete toolkit
Components, layouts, styles, build tooling and a simulator — everything to go from idea to store.

What CrossFly is not

Not an HTML5 wrapper
CrossFly compiles to native targets and renders on the GPU — it never ships your UI inside a browser shell.
No JavaScript bridge
There's no serialized bridge between your code and the screen, so there's nothing to become the bottleneck.
Not a new language to learn
No Dart, no JSX, no DSL. If you write Java, you're already productive on day one.
Not just native bindings
Beyond thin wrappers over platform widgets, the UI layer is truly cross-platform for real code reuse.
How it works

From zero to running in three steps

1

Install the SDK

Grab CrossFly with a single command. No heavy toolchain to assemble.

$ curl crossfly.dev/up | sh
2

Write a Window

Extend Window, drop in your components, and lay them out in Java.

public class App extends Window { }
3

Run anywhere

One command builds and launches on the target of your choice.

$ crossfly run --target all
Developer experience

Stay in flow. Ship faster.

The whole loop — edit, see, debug — lives inside the IDE you already use, with feedback measured in milliseconds.

Hot reload

Save your Java and watch the running app update instantly — no full rebuild, no lost state.

Live style reload

Tweak a style and the simulator reflects it on the spot, so design iteration never breaks your flow.

Your IDE, your way

First-class support in IntelliJ, Eclipse, VS Code and NetBeans — debuggers, refactors and all.

Built-in simulator

Run and debug on a device simulator straight from the IDE, no native toolchain juggling.

New

Code with an AI pair, right in your editor

Describe a screen in plain language and let CrossFly's assistant scaffold the Window, layout and styles — pure Java you can read and own.

LoginScreen.java
// "a centered login with logo + button"
class LoginScreen extends Window {
add(new Logo());
add(new TextField("user"));
add(new Button("Sign in"));
}
Performance

Performance that feels unfair.

One rendering core, drawn straight to the GPU. Measured against four frameworks on one phone, it holds the lowest memory floor and the lowest ceiling of the five.

132 MB
for 2400 text fields
2.66 MB
release APK, shrunk
216 ms
100 000 SQLite rows
Peak memory, worst scenelower is better
CrossFly135 MB
.NET MAUI203 MB
Kotlin Multiplatform227 MB
Flutter286 MB
React Native591 MB

Measured on one device across five frameworks. The full tables, and everything that qualifies them, are on the benchmark page.

The comparison

How CrossFly stacks up

CrossFly
Codename OneKotlin MPFlutterReact Native
LanguageJavaJava / KotlinKotlinDartJS / TS
Learning curveAlready know itJava-friendlyNew languageNew languageNew paradigm
Rendering coreLibGDX · GPULightweight widgetsNative / ComposeSkiaJS bridge
Shared UI code100%100%Opt-in100%Partial
Mobile + DesktopAll in oneAll in oneYesPartialPlugins
Build setupOne CLICloud buildGradleGradle / CLINode / CLI
Java ecosystemFull accessFull accessJVM onlyNoNo
Pricing

Open source at the core

Start free, forever. Upgrade only when you need a team behind you.

Community
Freeforever

The full open-source framework. Everything you need to ship.

All platforms
Full UI toolkit
Community support
Apache 2.0 license
Start building
POPULAR
Pro
$19/ dev · mo

For teams that want priority support and pro tooling.

Everything in Community
Priority support
Hot-reload tooling
Private build agents
Start free trial
Enterprise
Custom

SLA, training and dedicated engineering for large orgs.

Everything in Pro
Dedicated SLA
On-site training
Custom integrations
Contact sales
FAQ

Questions, answered

Ready for take-off?

Your first multiplatform app is one minute away. If you know Java, you already know how this ends.

Get started free