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)
TDC POA 2017 - Introdução a Kotlin para programadores Java
2: Tipificação de dados
Null safety
Inferência
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
3: Controle de fluxo
If: comando vs. expressão
When: switch...case turbinado
Smart casts
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
4: Constructors
Primary vs. secondary
Init blocks
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
Aprendendo Kotlin
Documentação - kotlinlang.org/docs
Kotlin “Koans” online - try.kotlinlang.org
IDEA
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
Tour sobre Kotlin - parte II
5: Properties vs Fields
Property equivale a field + getter + setter
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
6: Data classes
equals, hashCode, toString(), ... “na faixa”
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
7: Extensions
Como em C#, Gosu, Xtend
Expandir a definição de uma classe sem alterá-la, herança etc.
TDC POA 2017 - Introdução a Kotlin para programadores Java
8: Delegation
Entre classes
Via propriedades
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
9: “objects”
Singletons e companion objects
Anonymous inner classes envenenadas
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
10: Um exemplo Java vs Kotlin
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
TDC POA 2017 - Introdução a Kotlin para programadores Java
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

Mais conteúdo relacionado

KEY
Concorrência no IOS
PDF
Postgres, a "Metamorfose Ambulante"
PDF
Viagem pelas VMs do python
PPTX
Elixir inside out
PDF
Python - Programando em alto nível
PPT
Desenvolvendo aplicativos para iOS 6 - Campus Party 2013
PDF
Spring Roo
PDF
Minha jornada na ciência da computação- do diploma ao Google
Concorrência no IOS
Postgres, a "Metamorfose Ambulante"
Viagem pelas VMs do python
Elixir inside out
Python - Programando em alto nível
Desenvolvendo aplicativos para iOS 6 - Campus Party 2013
Spring Roo
Minha jornada na ciência da computação- do diploma ao Google

Semelhante a TDC POA 2017 - Introdução a Kotlin para programadores Java (20)

PDF
programacao orientada a objetos curso_comparativo_2_5.pdf
PPTX
Facebook Developer Circles SP - Redes neurais convolucionais com PyTorch
PDF
Apostila de dev
PDF
1 ooi introducao
PPTX
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
PPT
Open closed principle - SOLID
PPTX
DotNet Framework e Orientação a Objetos 1 - Introdução
PPTX
Entity Framework 4, Novas funcionalidades
PPTX
Bancos de Dados Orientados a Objetos
PPT
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
PPTX
PDF
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
PDF
REST com JSF 2 e HTML 5
PDF
Os 5 Níveis de Reuso
PDF
Apresentação wpd maceió
PDF
Python na Nuvem
PDF
Microservices em Python: desafios e soluções
PDF
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
ODP
TDC 2012 - JDF
PPTX
programacao orientada a objetos curso_comparativo_2_5.pdf
Facebook Developer Circles SP - Redes neurais convolucionais com PyTorch
Apostila de dev
1 ooi introducao
TDC2016POA | Trilha .NET - .NET Entity Core 1.0
Open closed principle - SOLID
DotNet Framework e Orientação a Objetos 1 - Introdução
Entity Framework 4, Novas funcionalidades
Bancos de Dados Orientados a Objetos
TDC2018SP | Trilha Kotlin - Kodando com Kotlin aplicacoes front-end.
Palestra Tony Rodrigues - OctaneLabs WarpSpeed Project – Computação Forense e...
REST com JSF 2 e HTML 5
Os 5 Níveis de Reuso
Apresentação wpd maceió
Python na Nuvem
Microservices em Python: desafios e soluções
TDCSP2019 - Trilha: Machine Learning - Uso de PyTorch para aplicações de Vis...
TDC 2012 - JDF
Anúncio

Mais de Rafael Chaves (16)

PDF
TDC SP 2016 - Dos requisitos à implantação em uma palestra
PDF
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
PDF
Construindo um micro-serviço Java 100% funcional em 15 minutos
PDF
Dos requisitos à implantação em uma palestra
PPTX
TDC Floripa 2015 Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
PDF
EclipseCon 2015 - Generating business applications from executable models
PDF
Modernização de Sistemas de Gestão
PDF
Separando arquitetura e negócios em sistemas de gestão
PDF
Cloudfier business pitch deck
PDF
Refatorando o software corporativo
PDF
11 Dogmas of model driven development
PPT
Code generation
PDF
MDD with Executable UML Models
PDF
AlphaSimple product pitch
PDF
TextUML Toolkit
PDF
Model Driven Prototyping
TDC SP 2016 - Dos requisitos à implantação em uma palestra
TDC SP 2016 - Construindo um microserviço Java 100% funcional em 30 minutos
Construindo um micro-serviço Java 100% funcional em 15 minutos
Dos requisitos à implantação em uma palestra
TDC Floripa 2015 Desenvolvendo Sistemas de Gestão a partir de Modelos Execut...
EclipseCon 2015 - Generating business applications from executable models
Modernização de Sistemas de Gestão
Separando arquitetura e negócios em sistemas de gestão
Cloudfier business pitch deck
Refatorando o software corporativo
11 Dogmas of model driven development
Code generation
MDD with Executable UML Models
AlphaSimple product pitch
TextUML Toolkit
Model Driven Prototyping
Anúncio

Último (13)

PPT
00_Apresentacao sobre o livro do sommerville_ES.ppt
PPT
06_slide de Arquitetura_de_Software .ppt
PPT
10_ slides de Reuso sommerville cap 10.ppt
PDF
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
PPT
05_slide especificacao de sistemas de software e a uml UML.ppt
PDF
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
PPT
04_slide Requisitos de software_capitulo4
PDF
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
PDF
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
PPT
07_slides de Estilos_Arquiteturais sommerville.ppt
PPT
09_Evolucao de software e_Refatoracao.ppt
PDF
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
PPT
03_slide de Gerenciamento de Projetos .ppt
00_Apresentacao sobre o livro do sommerville_ES.ppt
06_slide de Arquitetura_de_Software .ppt
10_ slides de Reuso sommerville cap 10.ppt
SLIDES - AULA 3 - CLASSES E OBJETOS EM JAVA - Material de Cleyton Souza - IFPB
05_slide especificacao de sistemas de software e a uml UML.ppt
SLIDES - AULA 7 - SWING - Cleyton Souza - IFPB
04_slide Requisitos de software_capitulo4
SLIDES - AULA 2 - INTRODUÇÃO - Material de Cleyton Souza - IFPB
SLIDES - AULA 5 - HERANÇA - Material de Cleyton Souza - IFPB
07_slides de Estilos_Arquiteturais sommerville.ppt
09_Evolucao de software e_Refatoracao.ppt
SLIDES - AULA 1 - APRESENTAÇÃO - Material de Cleyton Souza - IFPB
03_slide de Gerenciamento de Projetos .ppt

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