← voltar para guias
IntermediárioBack-End

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.

capa Kotlinautas

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.

Menu de criação do projeto com os campos preenchidos

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

Segundo menu de criação do 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.

← voltar para o início