Kotlin: Extension Functions para Android
Durante o Google IO 2016 foi confirmado que o Android terá suporte para Java 8, mas nem tudo são flores. Por exemplo, default e static interface methods não será suportado por versões que vieram antes da versão N (será que é Nutella?).
Assim, Kotlin vem conquistando vários desenvolvedores Android, por ser uma linguagem funcional, 100% interoperável com Java. E com alguns recursos sonhados por todo Developer Android:
- Lambdas
- Nullable (NonNull)
- Higer-Order Functions (Stream)
- Extension Functions
E a partir de agora daremos foco às Extension Functions, que é a capacidade estender uma classe atribuindo uma nova funcionalidade sem precisar criar uma herança.
Vamos ao primeiro exemplo:
Em Java para cada Activity criada você teria que extender de BaseActivity para utilizar a função toast(). Já em Kotlin crie um arquivo com a extensão .kt e escreva as suas extensions, em seguida qualquer Activity que você criar poderá usar a função toast().
Você deve ter percebido que em Kotlin eu não passei o parâmetro duration para executar o método, é que Kotlin permite definir um valor default para parâmetros, assim você pode ignorar o parâmetro duration.
O exemplo com Toast foi muito simples. Vamos para algo que é mais chato de fazer no dia-a-dia do desenvolvimento, como por exemplo, trabalhar com Cursor. Veja como as extension functions podem ajudar:
Extension em Kotlin vai além de criar novas funcionalidades, você também pode criar extension properties que ficará para o próximo artigo ou conferir na documentação da linguagem.