O quê é Kotlin Native?
Explica o que é Kotlin Native, como criar um projeto no IntelliJ, escrever código e gerar um binário executável sem precisar de JVM.
Kotlinautas
Esse conteúdo é oferecido e distribuído pela comunidade Kotlinautas, uma comunidade brasileira que busca oferecer conteúdo gratuito sobre a linguagem Kotlin em um espaço plural.

Kotlin Native
Kotlin Native é uma tecnologia criada pela JetBrains pra compilar código Kotlin em binários nativos do sistema. Esses binários podem ser executados sem precisar de uma máquina virtual , o próprio sistema cuida de rodar.
Kotlin Native suporta as seguintes plataformas:
- macOS
- iOS, tvOS, watchOS
- Linux
- Windows
- Android
O executável criado pelo Kotlin Native pode rodar em todas as plataformas ao mesmo tempo , exceto se você usar alguma biblioteca exclusiva de uma plataforma, como uma biblioteca pra criar apps iOS.
Materiais
Será necessário ter o IntelliJ instalado na máquina e um conhecimento básico sobre a linguagem Kotlin.
Criando projeto
Primeiro precisamos criar o projeto. Esse projeto pode ser criado em em File > New > Project, depois, vá á seção Kotlin, e preencha o campo Name com o nome do projeto, como native, selecione a localização do projeto, e na seção Project Template selecione Native Application.

Após isso,clique em Finish no proximo menu para criar o projeto.

Após isso, o projeto foi criado com Kotlin Native.
Criando nosso código
Por padrão, há um arquivo em src/NativeMain/kotlin/main.kt que é o arquivo principal da aplicação. Nesse arquivo há apenas um println que mostra a string Hello, Kotlin/Native! na tela:
fun main() {
println("Hello, Kotlin/Native!")
}
Vamos modificar esse código. Vamos criar uma variável texto que irá armazenar uma string. Depois vamos mostrar algumas informações sobre essa string, como a quantidade de letras, quantidade de palavras,etc. E vamos mostrar essas informações na tela.
Primeiro, vamos criar essa variável texto:
fun main() {
val texto = "Essa string é fixa"
}
Agora vamos criar uma série de variáveis que vão representar fatos sobre essa string, como o seu tamanho por exemplo:
fun main() {
val texto = "Essa string é fixa"
val tamanho = texto.length
val quantidadeDePalavras = texto.split(" ").size
val primeiraPalavra = texto.split(" ").first()
val ultimaPalavra = texto.split(" ").last()
val maiúsculo = texto.uppercase()
}
Agora vamos mostrar na tela essas variáveis que criamos de uma maneira intuitiva, usando as Template Strings:
fun main() {
val texto = "Essa string é fixa"
val tamanho = texto.length
val quantidadeDePalavras = texto.split(" ").size
val primeiraPalavra = texto.split(" ").first()
val ultimaPalavra = texto.split(" ").last()
val maiúsculo = texto.uppercase()
println("O tamanho do texto é $tamanho, a quantidade de palavras é $quantidadeDePalavras, a primeira palavra é $primeiraPalavra, a ultima palavra é $ultimaPalavra, e o texto em maíúsculo é $maiúsculo")
}
Rodando o código
Podemos rodar o código atual clicando na seta verde ao lado da função main. Rodando esse código, o resultado será:
> Task :runDebugExecutableNative
O tamanho do texto é 18, a quantidade de palavras é 4, a primeira palavra é Essa, a ultima palavra é fixa, e o texto em maíúsculo é ESSA STRING É FIXA
Deprecated Gradle features were used in this build, making it incompatible with Gradle 8.0.
You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins.
See https://docs.gradle.org/7.1/userguide/command_line_interface.html#sec:command_line_warnings
BUILD SUCCESSFUL in 8s
3 actionable tasks: 3 executed
Task execution finished 'runDebugExecutableNative'.
Podemos ver a parte referente ao nosso código na segunda linha, informando sobre o texto que criamos.
Binário Final
O binário final está localizado em /build/bin/native/debugExecutable/native.kexe, esse binário pode ser executado diretamente via linha de comando com native.kexe no Windows e ./native.kexe no Linux/MacOS.
Finalização
Neste artigo você aprendeu como usar Kotlin Native pra criar binários nativos e rodar programas feitos em Kotlin sem precisar de uma JVM.
Agora vai lá: faz uns exercícios ou testa ideias próprias usando Kotlin Native. A melhor forma de fixar é na prática.