Kotlin: Extension Functions para Android

Felipe Arimatéia
CI&T Mobile
Published in
1 min readJun 18, 2016

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.

--

--