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

CrossFly vs Kotlin Multiplatform

Esta é a comparação mais próxima da lista — tanto o CrossFly quanto o Kotlin Multiplatform vêm do mundo JVM e compilam para binários nativos, então “desempenho nativo” é empate. As diferenças reais são linguagem e modelo de UI: o CrossFly é Java puro com uma UI desenhada na GPU em toda parte; o KMP é Kotlin que compartilha a sua lógica de negócio enquanto a UI permanece nativa por plataforma (ou usa o Compose Multiplatform, cujo suporte a iOS só ficou estável em 2025).

Direto ao ponto — o KMP é excelente quando você é uma casa Kotlin/Android que quer compartilhar lógica e manter UIs nativas. O CrossFly ganha quando você quer ficar em Java, entregar uma UI única em desktop e mobile e evitar a interop iOS do Kotlin/Native e o atrito de build Gradle/CocoaPods.

Fica em Java
sem migrar o time inteiro para Kotlin
1 UI única
não “compartilhe lógica, refaça UI por plataforma”
Sem ponte ObjC
sem imposto de tradução Kotlin→ObjC→Swift
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.

Kotlin Multiplatform · Kotlin

O Kotlin Multiplatform (KMP) é a tecnologia open source (Apache 2.0) da JetBrains para compartilhar código — lógica, rede, dados — entre Android, iOS, desktop e web, enquanto a UI fica nativa por plataforma. O Compose Multiplatform é o seu toolkit opcional de UI compartilhada (renderizado com Skia), estável no iOS desde maio de 2025.

As diferenças que realmente importam

Dois primos da JVM, duas apostas bem diferentes em linguagem, UI e ferramental.

01 · Diferença

É Kotlin-first, não Java

O problema com Kotlin Multiplatform

O código compartilhado do KMP é Kotlin. O Kotlin tem ótima interop com Java na JVM, mas Kotlin/Native (iOS) e Kotlin/Wasm são toolchains Kotlin — não “rode o seu Java existente”. Um time corporativo puramente Java precisa se comprometer com Kotlin como linguagem compartilhada.

Com o CrossFly

O CrossFly mantém você em Java de ponta a ponta. Não há migração de linguagem para o time todo — seus desenvolvedores, bibliotecas e idiomas Java entram direto no app em toda plataforma.

02 · Diferença

A camada de interop no iOS tem perdas

O problema com Kotlin Multiplatform

No iOS, o Kotlin fala com o Swift só por uma ponte Objective-C gerada. É nessa tradução que moram as arestas: inteiros anuláveis viram boxed, sealed classes perdem o switch exaustivo, o Kotlin Flow vira callbacks desajeitados, genéricos colapsam para Any?. A correção idiomática da JetBrains, o Swift Export, ainda não está pronta.

Com o CrossFly

O CrossFly tem um único caminho de renderização e lógica desenhado na GPU — não há fronteira Kotlin→Obj-C→Swift para atravessar, então nenhuma dessas perdas de interop aparece, para começar.

03 · Diferença

A UI compartilhada no iOS é jovem

O problema com Kotlin Multiplatform

Se você quer compartilhar também a UI, isso é o Compose Multiplatform — que só ficou estável no iOS em maio de 2025, com acessibilidade de campos de texto chegando ainda depois, e web/Wasm ainda em beta. É renderizado com Skia (não widgets nativos), então no iOS parece Material, não Cupertino.

Com o CrossFly

O modelo de desenhar a própria UI do CrossFly é o framework inteiro, não uma camada recém-estabilizada — uma UI consistente em desktop e mobile desde o dia um. (Se você precisa da aparência nativa por plataforma, a opção de UI nativa do KMP é uma força real — veja a coluna de fair play.)

04 · Diferença

A matriz de build é o imposto

O problema com Kotlin Multiplatform

O KMP significa Gradle-multiplatform — que a própria JetBrains chama de “overwhelming” — mais a integração frágil com CocoaPods, um plugin de iOS que só funciona no macOS e compilações Kotlin/Native lentas. Espere atrito real de configuração e iteração, sobretudo no lado iOS.

Com o CrossFly

O modelo de linguagem única e toolchain único do CrossFly mantém a história de build muito mais simples — menos peças móveis entre você e um app rodando nas três plataformas.

Onde o CrossFly se destaca

Java puro — seu time Java entrega multiplataforma sem adotar Kotlin como linguagem compartilhada.
Uma UI desenhada na GPU para todo alvo, em vez de compartilhar lógica e refazer a UI por plataforma.
Sem camada de interop Kotlin→Objective-C→Swift, então nenhuma das suas perdas de boxing/sealed class/Flow.
História de build mais simples — sem a matriz Gradle-multiplatform + CocoaPods para domar.
O CrossFly Sync entrega dados offline-first como produto, não como uma biblioteca que você monta.

Onde o Kotlin Multiplatform é genuinamente forte

Construído pela JetBrains e oficialmente apoiado pelo Google para compartilhar lógica Android/iOS.
Kotlin é uma linguagem moderna e querida, com excelente interop com a JVM.
UI unicamente flexível: entregue 100% SwiftUI/UIKit nativos, ou Compose Multiplatform compartilhado.
Desktop maduro e provado em produção via Compose for Desktop; adotado por Netflix, McDonald's e Cash App.

CrossFly vs Kotlin Multiplatform em resumo

DimensãoCrossFlyKotlin Multiplatform
LinguagemJavaKotlin
RuntimeBinários nativos (herança JVM)Binários nativos (Kotlin/Native, herança JVM)
O que é compartilhadoUI + lógica, um código sóLógica por padrão; UI nativa ou via Compose MP
Modelo de UIUma UI na GPU em toda parteNativa por plataforma, ou Compose MP (Skia)
Maturidade da UI no iOSFramework centralCompose MP iOS estável desde maio de 2025
Interop no iOSUm caminho, sem ponte ObjCPonte Kotlin↔Objective-C (Swift via camada gerada)
Build/ferramentalToolchain JVM únicoGradle-multiplatform + CocoaPods; plugin iOS só no macOS
Offline-firstCrossFly Sync (bidirecional)Montar a partir de bibliotecas
DesktopPrimeira classe (Win/mac/Linux)Maduro via Compose for Desktop
LicençaOpen source (Apache 2.0, Core)Open source (Apache 2.0)

Escolha o CrossFly quando

Seu time está em Java e não quer padronizar em Kotlin.
Você quer uma UI única em desktop e mobile, não trabalho de UI por plataforma.
Você prefere evitar a interop iOS do Kotlin/Native e a matriz Gradle/CocoaPods.

Escolha o Kotlin Multiplatform quando

Você é uma casa Kotlin/Android e quer compartilhar lógica mantendo UIs nativas.
Aparência nativa por plataforma (SwiftUI/UIKit) é prioridade.
Você valoriza o apoio de JetBrains/Google e um grande histórico em produção.
O veredito

O Kotlin Multiplatform é uma forma excelente de times Kotlin e Android compartilharem lógica e manterem UIs nativas, com JetBrains e Google por trás. O custo é que ele é Kotlin-first, sua interop no iOS e a UI compartilhada carregam atrito real, e a matriz de build é pesada. O CrossFly faz uma aposta diferente: ficar em Java, desenhar uma UI na GPU para toda plataforma e manter o toolchain simples. Se o seu mundo é Java e você quer uma UI única em toda parte, o CrossFly é o caminho mais direto.

CrossFly vs Kotlin Multiplatform — perguntas frequentes

Uma linguagem. Uma UI. Toda plataforma.

Fique em Java, desenhe uma vez na GPU e entregue em Desktop (Windows, macOS e Linux), Android, iOS e a web (Chrome, Firefox, Safari e outros navegadores) — sem a matriz de build do Kotlin/Native.

Começar agoraVer todos os comparativos