Kotlin é uma linguagem de programação open source lançada em 2010 que pode ser usada para construir aplicativos Android, além de serviços backend e frontend. Kotlin é mais conciso que Java, com estimativas de redução de até 40% no número de linhas de código. Kotlin também oferece recursos como coroutines para programação assíncrona sem bloqueio e higher-order functions que permitem "injetar" métodos como parâmetros.
4. Kotlin
Projeto open source iniciado em 02/2010,
pode ser utilizado para construir serviços
Back-end, transpila para JavaScript, constrói
aplicações Android, Windows, Linux, MacOS,
iOS e WebAssembly.
5. Kotlin é uma linguagem orientada a objetos
e também funcional?
9. Getters e Setters
• Java
TextView text = findViewById(R.id.textView);
text.setVisibility(View.VISIBLE);
int textVisibility = text.getVisibility();
• Kotlin
text.visibility = View.VISIBLE
val textVisibility = text.visibility
10. Coroutines
Coroutines executam tarefas de execução longa e intensas
suspendendo a execução em um determinado ponto sem
bloquear o encadeamento e, em seguida, retomando essa
função posteriormente, possivelmente em outro
encadeamento. Isso permite que você crie um código
assíncrono sem bloqueio que pareça síncrono e, portanto, mais
claro, conciso e legível. Coroutines também não criam pilhas,
então eles têm um uso de memória menor comparado com
threads, e eles abrem a porta para estilos adicionais de
programação assíncrona sem bloqueio, como async/await.
11. val deferred = (1..1_000_000).map { n ->
async {
delay(1000)
n
}
}
10 SEGUNDOS!!!
12. Injeção de funções
Podemos “injetar” um método como um parâmetro,
assim podemos deixar de lado alguns callbacks durante
o desenvolvimento
14. Kotlin é uma linguagem muito elegante e direta
ao ponto!
15. val users: List<User> = arrayListOf()
users.forEachIndexed { index, user ->
Log.d("Nosso index é:".plus(index.toString()),
"E meu nome é".plus(user.firstName))
}
List<User> users = new ArrayList<>();
for (int i = 0; i < users.size(); i++) {
Log.d("Nosso index é:" + String.valueOf(i),
"E meu nome é" + users.get(i).getFirstName());
}