Hello Kotlin!

Thais Aquino
luizalabs

--

Aprender uma linguagem nova nunca é uma tarefa fácil. Assim como minha transição do mundo .Net/C# para Java/Android na carreira, vejo agora com Kotlin um outro marco para mim. Mas tudo fica mais fácil quando a linguagem é gostosa de aprender! Kotlin é vida, é amor 😍

Características da linguagem

  • Mais prática, concisa, produtiva e segura do que o Java (sem boilerplate desnecessário)
  • Usa tipos estáticos: conhecidos em tempo de compilação
  • Tem inferência de tipos: o compilador determina os tipos pelo contexto e há mais segurança na garantia dos tipos
  • Tipos nullable: torna mais fácil achar possíveis NPE (NullPointerException) no seu código
  • Programação funcional e orientada a objetos
  • Curva de aprendizado menor, devido a conceitos semelhantes a outras linguagens modernas. A IDE ajuda também, com dicas de melhoria/correções do código.
  • Kotlin Standard Library com métodos prontos e úteis para não haver reinvenção da roda
  • Suporte a lambda, possibilita códigos mais enxutos, produtivos e mais fáceis de dar manutenção
  • Executa na JVM (garantindo segurança de memória, prevenção contra buffer overflows, alocação de memória)
  • Possui Smart Casts, ajuda na prevenção de ClassCastExceptions
  • Interoperabilidade: Você pode ter classes java e Kotlin coexistindo num mesmo projeto e pode usar bibliotecas java que já está habituado
  • Kotlin depende totalmente da standard-library do Java
  • Recursos da IDE são os mesmos para ambas as linguagens
  • Você pode usufruir do recurso de conversão da IDE, de Java para Kotlin

Kotlin + Android

  • Chega de parar a aplicação por NPE \o/
  • ANKO: possibilidade de criar seus layouts via código kotlin, para quem está exausto de escrever os xml borings (e ainda ter o plus de desempenho por não precisar do parse de xml 🙂)
  • É compatível com Java 6, então mesmo em devices antiguinhos você consegue ter um código moderno e decente com todos os recursos de Kotlin
  • Não afeta o desempenho do seu app, tem um runtime pequeno e não aumenta consideravelmente o tamanho do apk
  • O uso de lambdas melhora o desempenho, com código inline a aplicação sofre menos com as pausas extras do GC

Compilando Kotlin x Compilando Java

Todo o processo de compilação é praticamente idêntico. A diferença é que no final sua aplicação tem que ser distribuída acrescentando a biblioteca de runtime do Kotlin. Normalmente você usará o Gradle (ou outro build system) então não terá que se preocupar com isso!

Os próximos posts terão mais código, essa foi só uma introdução básica para se ter uma idéia da linguagem 😉

Referências:

Kotlin in Action, autores: Dmitry Jemerov e Svetlana Isakova

Programming Kotlin, autores: Stephen Samuel e Stefan Bocutiu

--

--

Thais Aquino
luizalabs

Senior Software Engineer (Flutter | React Native | Android | iOS)