Pular para o conteúdo
CrossFly é 100% open sourceSiga no GitHub
CrossFlyCrossFly
Começar
Comparar frameworks

CrossFly vs React Native

CrossFly e React Native prometem um código só para muitas plataformas, mas os motores são opostos. O CrossFly escreve Java e desenha a própria UI direto na GPU. O React Native escreve JavaScript que orquestra os widgets nativos de cada plataforma — poderoso, mas tudo ainda passa por uma única thread JS e uma pilha de módulos nativos da comunidade.

Direto ao ponto — o React Native brilha para times JavaScript/React e produtos mobile-first com um ecossistema gigante. O CrossFly ganha para times JVM que querem uma UI consistente desenhada na GPU, desktop de primeira classe e nada do imposto da thread JS única nem do upgrade de módulos nativos.

Sem thread JS
no caminho de render — sem teto de thread única
1ª classe
desktop do mesmo renderer, não um repo à parte
Java
mesma linguagem do backend, sem troca para JS/TS
CrossFly · Java

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.

React Native · JavaScript / TypeScript

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.

01 · Diferença

A UI ainda anda sobre uma única thread JavaScript

O problema com React Native

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.

Com o CrossFly

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.

02 · Diferença

Módulos nativos são uma matriz de compatibilidade

O problema com React Native

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”.

Com o CrossFly

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.

03 · Diferença

As atualizações têm fama

O problema com React Native

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.

Com o CrossFly

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.

04 · Diferença

Desktop é um apêndice, não um alvo

O problema com React Native

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.

Com o CrossFly

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

Desenha a própria UI na GPU — sem JS de thread única travando rolagem, animação ou trabalho pesado.
Java na JVM — a mesma linguagem e ferramental do backend, sem troca de contexto para JS/TS.
Desktop (Windows, macOS e Linux), Android, iOS e a web (Chrome, Firefox, Safari e outros navegadores) são todos de primeira classe, de um renderer e um único dono.
Muito menos módulos nativos para manter mutuamente compatíveis a cada atualização de SDK.
O CrossFly Sync entrega dados offline-first bidirecionais de fábrica.

Onde o React Native é genuinamente forte

O maior ecossistema de linguagem do mundo — talento JavaScript/React e pacotes npm por toda parte.
Renderiza widgets nativos reais, combinando com a aparência e a acessibilidade de cada SO.
Expo + EAS dão setup quase sem configuração, builds na nuvem e atualizações over-the-air.
Compartilha conhecimento e parte do código com o React na web; ótimo DX de Fast Refresh.

CrossFly vs React Native em resumo

DimensãoCrossFlyReact Native
LinguagemJavaJavaScript / TypeScript
RenderizaçãoGPU via LibGDX/OpenGLWidgets nativos da plataforma
Threading no caminho de renderGPU, sem thread JSUma thread JS orquestra a UI
Módulos nativosPoucos (bibliotecas JVM)Muitos módulos da comunidade para conciliar
Reuso de Java/backendDireto (é Java)Via módulos nativos / JS
PlataformasDesktop (Windows, macOS, Linux), Android, iOS, web (qualquer navegador) — todas 1ª classeAndroid, iOS; desktop out-of-tree
Offline-firstCrossFly Sync (bidirecional)Pacotes de terceiros
UpgradesSuperfície pequena, cadência JVMNotoriamente trabalhosos (Upgrade Helper)
GovernançaOpenJDK, múltiplos fornecedoresMeta + comunidade
LicençaOpen source (Apache 2.0, Core)Open source (MIT)

Escolha o CrossFly quando

Seu time está em Java/JVM e você quer pular o toolchain JS/TS.
Você quer uma UI consistente na GPU e desktop de primeira classe, não um repo à parte.
Você precisa de upgrades previsíveis e dados corporativos offline-first.

Escolha o React Native quando

Seu time já escreve JavaScript/React e valoriza o ecossistema npm.
Você quer widgets nativos reais e um produto mobile-first.
O fluxo do Expo, as atualizações OTA e o compartilhamento de código com a web importam para você.
O veredito

O React Native encaixa fantasticamente para times JavaScript-first construindo produtos mobile sobre o maior ecossistema do software. Mas se você é um time JVM, o CrossFly entrega uma UI consistente na GPU, desktop de primeira classe e liberdade do teto da thread JS única e da esteira de upgrade de módulos nativos — na linguagem que o seu backend já fala.

CrossFly vs React Native — perguntas frequentes

Um código Java. Sem ponte. Toda tela.

Pule a thread JS e a matriz de módulos nativos. Escreva Java, desenhe na GPU, entregue em Desktop (Windows, macOS e Linux), Android, iOS e a web (Chrome, Firefox, Safari e outros navegadores).

Começar agoraVer todos os comparativos