O CrossFly é um framework open source (Apache 2.0) em que você escreve UI e lógica em Java puro e ele renderiza na GPU via LibGDX/OpenGL, compilando para binários nativos de Desktop (Windows, macOS e Linux), Android e iOS — mais uma build WebGL que roda em qualquer navegador moderno — Chrome, Firefox, Safari e outros. Combine com o CrossFly Sync para dados offline-first.
O React Native é o framework open source (MIT) da Meta em que você escreve JavaScript/TypeScript e ele renderiza usando os widgets nativos de cada plataforma. Sua nova arquitetura (JSI/Fabric/TurboModules) substituiu a ponte antiga. Mira Android e iOS; desktop é da comunidade/out-of-tree.
As diferenças que realmente importam
A nova arquitetura resolveu problemas reais. Veja o que ela não resolveu — e onde o CrossFly é estruturalmente mais simples.
A UI ainda anda sobre uma única thread JavaScript
A nova arquitetura (JSI/Fabric) removeu a antiga ponte de serialização — uma vitória real. O que ela não removeu é que a sua lógica JS roda em uma única thread. Computação pesada, listas grandes ou animações complexas ainda podem sufocar a thread de UI e derrubar frames; a própria resposta do ecossistema, o FlashList, existe justamente porque listas engasgam em Android intermediário.
O CrossFly não tem thread JS alguma no caminho de render. A UI é desenhada na GPU a partir do Java, então toda a classe de problemas “a thread JS está ocupada, então a tela treme” simplesmente não existe.
Módulos nativos são uma matriz de compatibilidade
Tudo que o core não cobre — câmera, mapas, Bluetooth, pagamentos — é um módulo nativo da comunidade. Manter dezenas deles mutuamente compatíveis entre Gradle, CocoaPods e cada release do React Native é, nas palavras da própria comunidade, quase um trabalho de tempo integral; subir de versão raramente é “só mudar o número”.
O CrossFly é dono da sua stack de render e aproveita as bibliotecas maduras da JVM. Não há um zoológico de módulos nativos por plataforma para conciliar, nem quebra nativa de CocoaPods/Gradle toda vez que você muda de versão.
As atualizações têm fama
O React Native é famoso por upgrades dolorosos: as mudanças que quebram abrangem JS e nativo, ajustes de AppDelegate/Gradle podem deixar o app em tela branca, e existe um Upgrade Helper oficial porque comparar versões na mão é trabalhoso assim. Fique um ano para trás e você encara migrações manuais — e a nova arquitetura agora é obrigatória, então módulos não migrados ditam o seu cronograma.
Uma linguagem, um toolchain, uma superfície pequena de dependências e a cultura de retrocompatibilidade da JVM tornam os upgrades do CrossFly muito mais chatos — que é exatamente o que você quer de um upgrade.
Desktop é um apêndice, não um alvo
O desktop do React Native vive em repositórios separados, mantidos pela comunidade/Microsoft (react-native-windows/macOS), em cadência própria, atrás do core e da nova arquitetura. É viável, mas é de segunda classe ao lado de iOS e Android.
Desktop é um alvo de primeira classe do CrossFly, a partir do mesmo renderer de GPU do mobile — um código, um dono, um comportamento entre Windows, macOS, Linux, Android, iOS e o navegador.
Onde o CrossFly se destaca
Onde o React Native é genuinamente forte
CrossFly vs React Native em resumo
| Dimensão | CrossFly | React Native |
|---|---|---|
| Linguagem | Java | JavaScript / TypeScript |
| Renderização | GPU via LibGDX/OpenGL | Widgets nativos da plataforma |
| Threading no caminho de render | GPU, sem thread JS | Uma thread JS orquestra a UI |
| Módulos nativos | Poucos (bibliotecas JVM) | Muitos módulos da comunidade para conciliar |
| Reuso de Java/backend | Direto (é Java) | Via módulos nativos / JS |
| Plataformas | Desktop (Windows, macOS, Linux), Android, iOS, web (qualquer navegador) — todas 1ª classe | Android, iOS; desktop out-of-tree |
| Offline-first | CrossFly Sync (bidirecional) | Pacotes de terceiros |
| Upgrades | Superfície pequena, cadência JVM | Notoriamente trabalhosos (Upgrade Helper) |
| Governança | OpenJDK, múltiplos fornecedores | Meta + comunidade |
| Licença | Open source (Apache 2.0, Core) | Open source (MIT) |