O que é Kotlin Multiplatform?

Imagine escrever a lógica do seu aplicativo uma única vez e usar esse mesmo código no Android, no iOS, na web e no desktop. Parece bom demais pra ser verdade? Pois é exatamente isso que o Kotlin Multiplatform (KMP) propõe.

Como funciona?

Diferente de frameworks como Flutter ou React Native, que tentam unificar tudo (incluindo a interface), o KMP tem uma abordagem diferente: ele permite compartilhar a lógica de negócio entre plataformas, enquanto a UI continua nativa em cada uma.

Na prática, isso significa:

  • A camada de rede, regras de negócio, validações e modelos de dados são escritos uma vez em Kotlin
  • A interface do Android usa Jetpack Compose nativo
  • A interface do iOS usa SwiftUI nativo
  • Cada plataforma mantém a experiência que o usuário espera

Exemplo de código compartilhado

// Código compartilhado (commonMain)
// Roda tanto no Android quanto no iOS
class CalculadoraFrete {
    fun calcular(distanciaKm: Double, pesoKg: Double): Double {
        val taxaBase = 5.0
        val taxaPorKm = 0.50
        val taxaPorKg = 0.30

        return taxaBase + (distanciaKm * taxaPorKm) + (pesoKg * taxaPorKg)
    }

    fun formatarPreco(valor: Double): String {
        return "R$ ${"%.2f".format(valor)}"
    }
}

// Pode ser usado tanto no Android quanto no iOS!
val calculadora = CalculadoraFrete()
val frete = calculadora.calcular(distanciaKm = 150.0, pesoKg = 3.5)
println(calculadora.formatarPreco(frete)) // R$ 81.05

O que dá pra compartilhar?

  • Modelos de dados: classes, enums, data classes
  • Lógica de negócio: cálculos, validações, regras
  • Camada de rede: chamadas de API com Ktor
  • Persistência local: banco de dados com SQLDelight
  • Gerenciamento de estado: ViewModels compartilhados

E o Compose Multiplatform?

Além de compartilhar a lógica, a JetBrains também desenvolveu o Compose Multiplatform, que leva a API do Jetpack Compose para iOS, desktop e web. Com isso, é possível compartilhar até a interface entre plataformas, se esse for o objetivo do seu projeto.

Quem está usando?

Empresas grandes já adotaram KMP em produção:

  • Netflix: compartilha lógica entre apps mobile
  • Philips: usa KMP em seus produtos de saúde
  • Cash App: um dos primeiros cases de sucesso
  • Forbes, VMware e muitas outras

KMP vs Flutter vs React Native

AspectoKMPFlutterReact Native
UINativa por padrãoPrópria (Skia)Ponte nativa
LinguagemKotlinDartJavaScript/TS
CompartilhamentoLógica (ou tudo com Compose)TudoTudo
PerformanceNativaQuase nativaVariável

Vale a pena investir em KMP?

O KMP alcançou estabilidade em 2023 e desde então o ecossistema amadureceu bastante. Se você já programa em Kotlin, entrar no mundo multiplataforma fica muito mais natural. A tendência é que cada vez mais empresas adotem essa tecnologia, e sair na frente nesse conhecimento é um baita diferencial competitivo.