1.0
Evolua seu código Java!
O Palestrante
Alex Magalhães
◇ Mestre em Sistemas Distribuídos
◇ Profissional JavaEE há 15 anos
◇ Pesquisador das áreas de
Algoritmos e Sistemas Distribuídos
Contato em @PensatoAgile
O Ecossistema
Java:
Um mundo de
linguagens
A Origem de Kotlin1
Objetivos originais do
Projeto Kotlin
◇ Total interoperabilidade com Java
◇ Tão rápida quanto Java
◇ Mais expressiva e enxuta que Java
◇ Mais simples que Scala
◇ Independente do IntelliJ
Apoio da
Comunidade
◇ Projeto iniciado em 2012
◇ Linguagem Open Source
◇ Mais de 100 colaboradores externos
◇ Suportada pelo projeto Spring
Pronta para
Produção
◇ Suporte à JVM, JavaScript e Android
◇ Plugins para Eclipse e Android Studio
◇ Conversor de Java para Kotlin
◇ Compatibilidade reversa a partir do 1.0
◇ Há 2 anos rodando em produção
Gradle Script Kotlin
Adoção de Kotlin
Kotlin in Action
Kotlin for Android Developers
Livros Disponíveis
Experimentando a
Linguagem
2
Experimente Online
http://try.kotlinlang.org/
IntelliJ IDEA
https://www.jetbrains.com/idea/
Exemplos e Referências
https://kotlinlang.org/docs/reference/basic-syntax.html
Básico de
Kotlin
◇ Não é necessário ponto-e-vírgula
◇ Classe e arquivo podem ter nomes
diferentes
◇ Funções fora das classes
◇ String Templates: "$nome"
Tipos e Declarações
◇ Declaração com val e var
◇ Tipo depois do nome
◇ Todos os tipos são classes
◇ Tipos:
Double, Float, Long, Int, Short,
Byte, Char, String, Boolean.
O Fim do
NullPointerException
◇ Kotlin não aceita valores nulos
◇ Mas se você quiser muito, muito, muito,
use o operador ‘?‘
Classes
◇ Filhas de Any
◇ 3 funções:
equals(), hashCode(), toString()
◇ Fim do new
◇ Construtores na declaração
Hierarquia
◇ Classes e funções são finais
◇ Extensão com open
Generics
◇ Modificados em relação à Java
◇ Variância dos tipos
Versão em Java
Memória Estática
◇ Não há funções estáticas
◇ Mas se você quiser muito, muito, muito,
use a anotação @JvmStatic
◇ E como criar Singletons?
Funções de
Alta Ordem,
Funções
Anônimas e
Lambdas
“
Função de Alta Ordem é uma função
que aceita uma ou mais funções
como parâmetros de entrada, ou
retorna outra função na saída.
“
Lambda ou função anônima é uma
função que não é declarada, mas
passada como uma expressão.
Data Classes
◇ Value Objects
◇ Modificador data
◇ Derivação das propriedades:
■ equals() / hashCode() / toString()
■ getters e setters implícitos
■ copy()
Criando uma API3
Motivação
Manter o principal produto da
empresa sempre moderno e
com o menor custo de
manutenção possível.
http://www.fashioncommerce.com.br/
Evolução do Produto
2003 2005 / 2006 2008 2010 2012 / 2013 2016
3
Spring Boot
◇ Aplicações stand-alone
◇ Microsserviços
◇ Suporte à Kotlin
Obrigado!
Perguntas?
Você pode me contactar em:
◇ @PensatoAgile
◇ alex@pensato.com.br

TDC2016SP - Kotlin 1.0: Evolua seu código Java