Andre Ikeda Lima | Android Especialist | everis Brasil

Kotlin, overview da nova linguagem para Android

everis Brasil
Sep 3, 2018 · 4 min read

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.

Figura 2. Método onCreate do template de criação de uma NavigationDrawerActivity em Java
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).

Figura 4. Declaração de um tipo não nulo.
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.

Figura 6. Trecho de código para trocar o maior elemento de cada lista.
Figura 7. Extension do método para trocar elementos de uma lista.
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

everis Brasil

Written by

Exponential intelligence for exponential companies

Welcome to a place where words matter. On Medium, smart voices and original ideas take center stage - with no ads in sight. Watch
Follow all the topics you care about, and we’ll deliver the best stories for you to your homepage and inbox. Explore
Get unlimited access to the best stories on Medium — and support writers while you’re at it. Just $5/month. Upgrade