Globalcode – Open4education
Introdução a Kotlin para
programadores Java
Rafael Chaves
rafael@abstratt.com - @abstratt
Tópicos
• Histórico
• Filosofia
• Tour acelerado (parte I)
• Aprendendo Kotlin
• Tour acelerado (parte II)
Histórico
• 2010 - desenvolvimento para uso interno na JetBrains
• 2012 - licenciada em código-aberto (APL)
• 02/2016 - 1.0 - JVM e Android, suporte a Spring Boot
• 03/2017 - 1.1 - Javascript
• 05/2017 - linguagem oficial para Android
• 09/2017 - 1.2 beta
• OO e funcional
• Influências: Java, Scala, C#, Groovy
• Tipada estaticamente
• Fácil de ler, escrever, e aprender
• Multi-plataforma*
• Interopera com ferramentas/culturas existentes
Filosofia
Tour sobre Kotlin - parte I
1: Classes e funções
Top-level functions (funções)
Member functions (métodos)
2: Tipificação de dados
Null safety
Inferência
3: Controle de fluxo
If: comando vs. expressão
When: switch...case turbinado
Smart casts
4: Constructors
Primary vs. secondary
Init blocks
Aprendendo Kotlin
Documentação - kotlinlang.org/docs
Kotlin “Koans” online - try.kotlinlang.org
IDEA
Tour sobre Kotlin - parte II
5: Properties vs Fields
Property equivale a field + getter + setter
6: Data classes
equals, hashCode, toString(), ... “na faixa”
7: Extensions
Como em C#, Gosu, Xtend
Expandir a definição de uma classe sem alterá-la, herança etc.
8: Delegation
Entre classes
Via propriedades
9: “objects”
Singletons e companion objects
Anonymous inner classes envenenadas
10: Um exemplo Java vs Kotlin
Kotlin com Spring Boot
Palestrante
1994-2004: Bacharel e mestre em Computação pela UFSC
2002-2012:
• OTI/IBM Canada: Eclipse (2002-2005), Rational Team Concert
(2005-2006)
• Genologics: Desenvolvedor Senior/Arquiteto (2008-2012)
Desde 2013: Abstratt
• EasyAlpha: serviço de desenvolvimento expresso de MVPs, back-ends e
aplicações sob medida
Globalcode – Open4education
Introdução a Kotlin para
programadores Java
Rafael Chaves
rafael@abstratt.com - @abstratt

TDC POA 2017 - Introdução a Kotlin para programadores Java