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
| Aspecto | KMP | Flutter | React Native |
|---|---|---|---|
| UI | Nativa por padrão | Própria (Skia) | Ponte nativa |
| Linguagem | Kotlin | Dart | JavaScript/TS |
| Compartilhamento | Lógica (ou tudo com Compose) | Tudo | Tudo |
| Performance | Nativa | Quase nativa | Variá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.