Criando sua primeira aplicação Android com Kotlin
Recentemente a Google anunciou o suporte para criação de Apps Android utilizando o Kotlin que, consequente, causou um grande impacto na comunidade Android. Nesse meio tempo, diversas dúvidas foram surgindo, e dentre elas, uma bem comum é:
“Como posso criar minhas Apps utilizando o Kotlin?”
Pensando justamente nesse cenário, veremos como é possível desenvolver Apps com Kotlin e alguma das novidades que acabam mudando em relação ao que fazíamos apenas com Java. Vamos lá?
Quer aprender mais sobre Kotlin tanto no mundo mobile como no back-end? Então confira este agregador de conteúdo onde listo todos os conteúdos que escrevi de Kotlin e os que serão publicados mais pra frente 😉
Nesse artigo, irei considerar que você já tenha tido o mínimo de contato com a linguagem Kotlin.
Caso não tenha tido nenhum contato, aproveite para dar uma olhada neste artigo que ensina como criar o seu primeiro código em Kotlin.
Preparando o ambiente
Como é de se esperar, foi disponibilizado o suporte da linguagem Kotlin direto no Android Studio, ou seja, a partir da versão 3.0 já temos o plugin de suporte ao Kotlin instalado. Portanto, como ponto de partida, vamos criar o projeto com o suporte ao Kotlin utilizando o AS 3.+.
Criando o projeto no Android Studio 3.+
Com o AS aberto, crie um novo projeto:
Observe que agora aparece o item no checklist para criar um projeto com suporte ao Kotlin. Deixaremos o suporte ao Kotlin marcado e continuaremos com o setup.
Para este exemplo, iremos criar uma App similar ao Google Keep, é exatamente por isso do nome Ceep. 😃
Em seguida, precisamos apenas indicar o SDK que daremos suporte assim como fazíamos em um projeto Android com Java:
Então podemos criar uma Empty Activity:
Por fim, daremos o nome de NoteListActivity, justamente por que o nosso objetivo será criar uma lista com as notas:
Agora é só clicarmos em Finish e, depois do Gradle processar, o AS vai abrir o nosso projeto com a nossa Activity pronta!
Entendo o primeiro código criado
Vamos dar uma olhada como ficou a nossa Activity:
Repara que agora, temos algumas mudanças na implementação de uma Activity em relação à syntax:
- A extensão para a
AppCompatActivity
não é mais feita com a keywordextends
, ou seja, basta apenas usar o:
. - Estamos utilizando a keyword
override
ao invés da annotation@Override
para sobrescrever um método, no caso do Kotlin, uma função. - O nosso bundle está concatenado com
?
(Um dos principais pontos do Kotlin que não veremos neste post, mas deixo a referência sobre o assunto).
Se compararmos esse código em Kotlin com o que fazemos em Java, percebemos que não temos muitas mudanças… Sendo assim, vamos avançar um pouco mais, isto é, o nosso próximo passo será uma tarefa bem comum no Android, que é justamente a busca de uma view dentro do código.
Buscando views com o Kotlin
Como sabemos, a forma como buscamos uma view (desconsiderando bibliotecas como o ButterKnife ou o Data Binding da Google) é por meio dos famosos findViewById
, como por exemplo, para buscarmos o TextView
do nosso layout activity_note_list
:
Faríamos da seguinte maneira:
val mensagem = findViewById<TextView>(R.id.note_list_textview)
É válido notar que no Kotlin o
findViewById
da suporte ao famoso generics, logo, não é mais necessário fazer o cast! 😄
Então basta apenas a gente inserir o valor na property text
do objeto mensagem
:
val mensagem = findViewById<TextView>(R.id.note_list_textview)
mensagem.text = "Bem vindo ao Ceep"
Que temos o seguinte resultado:
Nesse instante percebemos que existem algumas mudanças entre o código Kotlin e Java, entretanto, olhando por cima, não temos grandes diferenças…
“Então o que o Kotlin tem de diferente que vale a pena?”
Felizmente, a equipe da JetBrains também desenvolveu um plugin conhecido como Kotlin Android Extension, com o objetivo de facilitar a nossa vida como desenvolvedores Android quando utilizamos o Kotlin.
Conhecendo o Kotlin Android Extensions
A partir desse plugin, temos a capacidade de buscar as nossas views de uma maneira mais objetiva, por exemplo, para buscar aquele nosso TextView
faríamos da seguinte maneira:
Repara que agora estamos buscando a view diretamente pelo id do TextView
, logo, não precisamos mais do findViewById
, como também, podemos simplesmente usar o TextView
diretamente pelo seu id:
note_list_textview.text = "Bem vindo ao Ceep"
Nesse trecho de código temos o mesmo resultado conforme fizemos anteriormente, porém, de uma forma bem mais resumida, concorda? Mas, esse tipo de solução “mágica” nos deixa na seguinte situação:
“Como isso foi possível?”
Entendendo o Synthetic do Kotlin Android Extensions
Quando buscamos uma view dessa maneira, perceba que aparece o seguinte import
:
import kotlinx.android.synthetic.main.activity_note_list.*
Esse import
trata-se de uma feature conhecida como Synthetic. A partir dele, todos os componentes de uma view (no caso a do layout activity_note_list) se tornam propriedades da Activity, é justamente por esse motivo que conseguimos acessar uma view pelo seu id diretamente.
É válido lembrar que o plugin do Kotlin Android Extensions pode não vim habilitado por padrão caso não tenha criado o projeto via AS 3.+. Mas não se preocupe! É possível adicioná-lo.
Para isso, é preciso incluí-lo no arquivo build.gradle do módulo app a partir do script apply plugin: 'kotlin-android-extension'
:
Para saber mais
O Synthetic não é exclusivo para Activities, isto é, temos a capacidade de utilizá-lo também em outras entidades que tenham um objetivo do tipo View
disponível, como é o caso de Fragments, Adapters, Dialogs entre outros…
Para isso, basta apenas adicionar o trecho view.*
no import:
import kotlinx.android.synthetic.main.activity_note_list.view.*
Então, dessa forma, temos acesso aos componentes desse layout por meio do objeto do tipo View
.
Código fonte
Caso queira verificar o código fonte do projeto Android com Kotlin, deixo aqui o repositório do mesmo.
Conclusão
Neste aritgo vimos como é possível criar um projeto Android com o suporte para a linguagem Kotlin e criamos nossa primeira Activity.
Também vimos como o Kotlin nos ajuda com o Synthetic quando precisamos buscar views na Activity.
Claro, ainda é só o começo! Ou seja, no próximo artigo, veremos como implementamos a lista de notas com a API RecyclerView
:
O que achou do Kotlin no Android? Aproveite e deixe o seu comentário! 😆