Image for post
Image for post
Andre Ikeda Lima | Android Especialist | everis Brasil

Kotlin, overview da nova linguagem para Android

Em meados de 2009, eu começava a trilhar, lentamente, meu caminho no desenvolvimento de aplicações para celulares. Ainda na época do J2ME, e em seguida no Java Android, sentia a necessidade de uma linguagem menos verbosa e que a curva de aprendizado não fosse tão íngreme (especialmente no caso do J2ME). Foi um longo caminho até o ingresso do Kotlin na minha vida, mas definitivamente foi a melhor linguagem que conheci até hoje.

Em 2010 que um grupo de engenheiros da JetBrains iniciou o desenvolvimento da linguagem Kotlin com o intuito de suprir as carências da empresa que eram originadas de outras linguagens, com exceção da linguagem Scala. Contudo, o tempo de compilação da Scala sempre foi uma deficiência óbvia.

Em Fevereiro de 2016, a linguagem foi lançada sob a alcunha de Kotlin v1.0, sendo o primeiro lançamento oficial e estável. Pouco mais de um ano após o lançamento, o Google anunciou no evento Google I/O o suporte oficial da linguagem para Android.

Quando iniciei os estudos em Kotlin, tinha a noção das dificuldades que surgiriam no caminho, mas me surpreendi com a rápida curva de aprendizado da linguagem e neste artigo, trago um pouco desse conhecimento adquirido.

Interoperabilidade com Java

Para começar, o Kotlin é 100% interoperável com Java, o que significa que é possível ter as duas linguagens conversando em um mesmo projeto. Outra grande vantagem é o plugin do Android Studio que converte o código Java para o seu respectivo em Kotlin.

Figura 1. Através do menu Code é possível encontrar a opção para converter código Java em Kotlin.

Simplicidade

Para quem programa há muito tempo linguagens verbosas como o Java, tratar com naturalidade a grande quantidade de linhas de código para executar funções, muitas vezes, simples. Contudo, quando colocamos as duas linguagens (Java/Kotlin) lado a lado, vemos o quanto um programador Java digita a mais do que um programador Kotlin para que a aplicação realize a mesma função.

Image for post
Image for post
Figura 2. Método onCreate do template de criação de uma NavigationDrawerActivity em Java
Image for post
Image for post
Figura 3. Método onCreate do template de criação de uma NavigationDrawerActivity em Kotlin

Como podemos ver nas figuras 3 e 4, Kotlin possui uma dinâmica de programação mais concisa, e graças a isso torna mais fácil o entendimento.

Null-safety

Um dos maiores problemas na linguagem Java, se não o maior, são os NullPointerExceptions, carinhosamente apelidados de NPE. Em Java, para cada acesso em um objeto, o programador deve verificar se o mesmo é nulo. Já o Kotlin disponibiliza uma forma mais eficiente de fazer a verificação pois a própria linguagem distingue referências que podem ser nulas (nullable references) de referências não nulas (non-null references).

Image for post
Image for post
Figura 4. Declaração de um tipo não nulo.
Image for post
Image for post
Figura 5. Para permitir que a variável seja nula, basta declará-la de forma a ter ? ao final.

Na figura 4, temos a declaração de uma variável que não pode ser nula. Quando tentamos atribuir nulo para essa variável, o compilador informa a inviabilidade dessa ação. Já na figura 5, já declaramos a variável como possível nulo. Nesse caso, ao atribuirmos nulo à variável, o aplicativo é compilado normalmente.

Extensions

Uma das funcionalidades mais interessantes do Kotlin é a utilização de extensions para adicionar novos métodos a uma classe sem a necessidade de herdar (isso inclui implementar todos os métodos) da mesma. Pensando dessa forma, qual a motivação por trás dessa abordagem? A resposta é simples: evitar a verbosidade característica das chamadas em Java.

Image for post
Image for post
Figura 6. Trecho de código para trocar o maior elemento de cada lista.
Image for post
Image for post
Figura 7. Extension do método para trocar elementos de uma lista.
Image for post
Image for post
Figura 8. Em Kotlin, como ficaria o mesmo trecho de código da figura 6.

Existem outras vantagens e também limitações do Kotlin em relação ao Java que podem ser encontradas no próprio site do Kotlin. Finalizo dizendo que a utilização do Kotlin como linguagem principal no desenvolvimento de aplicações Android, não só me trouxe um gás novo no sentido de aprendizado como também tornou minha vida de desenvolvedor mais simples e menos verbosa.

By: André de Lima

Written by

Exponential intelligence for exponential companies

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store