Impulsojunte-se à Impulso
Kotlin e Koin

09/09/21

6 min de leitura

Kotlin e Koin

Kotlin e Koin: evolução do Java e do Dagger?

Orlando Burli JúniorOrlando Burli Júnior

Entender as principais características e vantagens das linguagens de programação voltadas para desenvolvimento mobile é fundamental para quem deseja atuar com aplicativos. No caso do desenvolvimento Android nativo, uma das principais comparações no meio é Java vs Kotlin.

O primeiro, talvez, seja a linguagem mais famosa do mercado. Enquanto o segundo é mais recente e menos conhecido.

Além disso, o Koin, uma ferramenta de injeção de dependência desenvolvida em Kotlin, também surgiu como alternativa ao Google Dagger. Ambas facilitam a vida de pessoas programadoras.

Todavia, elas têm diferenças. Quer saber quais são? Continue lendo e entenda mais sobre o assunto!

O que é Kotlin

Kotlin é uma linguagem orientada a objetos criada pela JetBrains, em 2011. Entre as suas principais características, temos o fato de ela ser uma linguagem multiplataforma. Visto que é possível desenvolver um aplicativo inteiro com ela. Isto é, desde o back-end até o front-end.

Além disso, ela é estaticamente tipada e compatível com Java. Desse modo, é possível migrar o desenvolvimento de um aplicativo de uma linguagem (Java) para a outra (Kotlin) gradualmente, classe por classe. Isso sem que o funcionamento do app seja prejudicado.

Java Vs Kotlin

Java Vs Kotlin

Existem alguns motivos que tornam essa linguagem vantajosa. Confira alguns dos principais! 👇

1. Mais simplicidade

Para começar, há menos “verbosidade”. Isso porque, em Kotlin, dá para desenvolver funções isoladas, sem a necessidade de uma classe específica para isso. Dessa forma, em relação ao Java, é possível reduzir o número de linhas produzidas por ação.

2. Null Safety

Além disso, o Kotlin é null safety. Isso porque o sistema de tipos é capaz de diferenciar entre referências que não podem conter nulas (não nulas) e aquelas que podem conter (referências anuláveis).

Basicamente, a pessoa desenvolvedora define quais parâmetros ou variáveis podem ou não receber um valor nulo. Portanto, é possível evitar NullPointException. Dessa forma, a linguagem não dá esse erro de compilação.

3. Extensions

Outro ponto interessante é o recurso extension. Por causa dele, não é necessário criar uma classe específica, somente a função. Também não é preciso enviar o valor que se quer modificar ou tratar por parâmetro, pois ele acaba sendo uma extensão de uma string.

Dessa forma, quando você colocar string, “ponto” (o símbolo) e o nome da extension, qualquer string que você pegar depois, e incluir o ponto, permitirá que você consiga acessar a extension que criou.

Basicamente, o recurso extension possibilita ampliar uma classe com funcionalidades novas sem que seja necessário lidar com heranças. Também não é preciso empregar algum padrão Decorator.

4. Detalhes que facilitam a programação

Além disso, há detalhes que tornam mais fácil a vida de uma pessoa programadora no Kotlin, como a exclusão do ponto e vírgula depois da instrução, variáveis não tipadas e o uso da funcionalidade coroutines.

Este recurso permite desenvolver códigos assíncronos com maior facilidade, de modo sequencial e sem empregar o padrão de Callback. Em suma, coroutines são como threads mais leves.

Graças a isso, elas utilizam menos recursos computacionais. São voltadas para tarefas não bloqueantes e paralelas.

Injeção de dependência: Dagger e Koin

Dagger e Koin: Injeção de dependência

A injeção de dependência é uma técnica útil e muito usada em desenvolvimento Android, devido à possibilidade de reutilização de objetos. Essa técnica passa para o software a responsabilidade de inicializar dependências.

Ao utilizar um framework de injeção de dependência, ele próprio ficará encarregado, por exemplo, de instanciar as dependências em determinado momento do código.

O uso de injeção de dependência proporciona algumas vantagens para um projeto, como, baixo acoplamento, facilidade de refatoração e de testar unitariamente. Além, é claro, da reutilização de código.

O Dagger é uma ferramenta de injeção de dependência desenvolvida pelo Google. Como alternativa à ela, temos o Koin, desenvolvido em Kotlin.

Koin vs Dagger

Koin vs Dagger

Apesar de ser uma ferramenta “poderosa”, o Dagger é mais complexo de configurar. Isto, em projetos de software menores e mais simples, pode atrapalhar.

O mesmo vale para sua grande capacidade. Afinal, às vezes uma solução simples acaba sendo mais útil do que uma com mais recursos do que o necessário.

Essa maior complexidade também gera uma alta curva de aprendizagem. Ou seja, tende a demorar mais para aprender a mexer em suas configurações. Além disso, essa ferramenta pode ser encarada, de certo modo, como “verbosa”.

O Koin funciona basicamente por declarações de módulos. Além disso, ele apresenta alguns pontos positivos em relação ao Dagger, como facilidade de aprender sobre a ferramenta e de usá-la. No entanto, ele também apresenta desvantagens.

Por exemplo, certos erros relacionados a injeção de dependência poderão passar durante o processo de “buildar” o aplicativo, resultando em fechamento abrupto do app posteriormente quando você estiver nos fluxos relacionados a esses erros.

Por outro lado, no Dagger, eventuais esquecimentos poderão ser mostrados no tempo de compilação. Ou seja, quando você for “buildar” o app, ele dará erro e você poderá entender o que houve a fim de consertar.

Todavia, a utilização de Dagger tende a aumentar o processo de build de um app, pois todas as dependências seriam resolvidas no tempo de compilação.

Hilt e KMM

Vale destacar que o Kotlin e o Koin não significam o “fim” do Java e do Dagger. No caso do Java, é importante lembrar que ele é usado não só no desenvolvimento mobile, mas também para outros tipos de projetos. O próprio Kotlin roda em cima de uma JVM.

O Google, recentemente, lançou o Hilt, um “novo” Dagger. Uma das pretensões da ferramenta é simplificar a infraestrutura do Dagger.

Além disso, ela também tem o intuito de desenvolver um conjunto padrão de escopos e componentes para tornar mais fácil a legibilidade, a configuração e o compartilhamento de códigos entre aplicativos.

No entanto, há certos plugins no mercado que já fazem algumas funções que o Hilt se propõe a fazer. Por exemplo, o plug-in Anvil, uma biblioteca feita em cima do Dagger, justamente para facilitar a comunicação entre a ferramenta e o Android.

O Kotlin, por sua vez, tem um projeto chamado de “Kotlin Multiplatform Mobile” (KMM). Com ele, a pretensão é conquistar mais profissionais de desenvolvimento híbrido pois, com o KMM, será possível desenvolver apps tanto para Android quanto para iOS.

Na hora de comparar Java vs Kotlin e Koin vs Dagger para escolher quais dessas opções usar, lembre-se de testar todas. Dessa forma, você poderá tomar uma decisão mais acertada.

➕ Aproveite agora para conhecer mais sobre modularização Android e melhore seus conhecimentos sobre desenvolvimento mobile!

Nós usamos cookies para melhorar sua experiência no site. Ao aceitar, você concorda com nossa Política de Privacidade

Assine nossa newsletter

Toda semana uma News com oportunidades de trabalho, conteúdos selecionados, eventos importantes e novidades sobre o Mundo da Tecnologia.

Pronto, em breve você vai receber novidades 👍