SlideShare a Scribd company logo
1 of 11
Download to read offline
Introdução ao Kotlin
David Robert
linkedin.com/in/davidrobert
Suelen Carvalho
linkedin.com/in/suelengc
David Robert
linkedin.com/in/davidrobert
davidrobert@gmail.com
❏ Mestre em Inteligência Artificial -
USP
❏ Graduado em Ciência da
Computação - PUC/SP
❏ Oficial da Arma de Comunicações -
Exército Brasileiro
❏ +16 anos trabalhando com
desenvolvimento de software
❏ CTO @ Elo7
Suelen Goularte Carvalho
linkedin.com/in/suelengc
@suelengc | suelengc.com
❏ Mestranda em Ciência da
Computação - USP
❏ Pós-graduada em Gestão
Estratégica de Projetos - ITA
❏ +12 anos trabalhando com
desenvolvimento de software
❏ +7 anos com Android
❏ Agile Coach & Tech Lead @ Moip
❏ Linguagem de programação estaticamente tipada
❏ Funcional e Orientada a Objetos
❏ Lançada em 2011 pela JetBrains
❏ Em 2012 se tornou open source
❏ A versão 1.0 foi lançada em 2016
❏ Google I/O 2017 anuncia suporte oficial do Kotlin no
desenvolvimento Android
Kotlin
Características
LIVE CODE
JVM Android
JavascriptNative
Permite a programação assíncrona
usando estilos de código
sequenciais, removendo a
necessidade de callbacks ou fluxos
complicados
Coroutines
val coroutines = List(1..100_000) {
async(CommomPool) {
delay(1000L)
1
}
}
println(
coroutines.sumBy { it.await() }
)
❏ É possível ter código Java e Kotlin em um mesmo
aplicativo, estes códigos podem inclusive referenciar e usar
um ao outro
❏ Existem funcionalidades no Android Studio para facilitar a
interoperabilidade, como por exemplo, copiar código Java e
ao colar, é automaticamente transformado em Kotlin
❏ Não é necessário reescrever aplicativos em Kotlin!
Kotlin
Desenvolvimento Android
Site oficial Kotlin
kotlinlang.com ou kotl.in
Kotlin para Android Resources
kotl.in/android
Onde começar
Links
David Robert
linkedin.com/in/davidrobert
davidrobert@gmail.com
Obrigado!
Suelen Goularte Carvalho
linkedin.com/in/suelengc
@suelengc

More Related Content

What's hot

MVCSummit - DDD e ASP NET MVC na prática com o LiteFx
MVCSummit - DDD e ASP NET MVC na prática com o LiteFxMVCSummit - DDD e ASP NET MVC na prática com o LiteFx
MVCSummit - DDD e ASP NET MVC na prática com o LiteFx
Douglas Aguiar
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
Pedro Pereira Martins
 

What's hot (20)

MVCSummit - DDD e ASP NET MVC na prática com o LiteFx
MVCSummit - DDD e ASP NET MVC na prática com o LiteFxMVCSummit - DDD e ASP NET MVC na prática com o LiteFx
MVCSummit - DDD e ASP NET MVC na prática com o LiteFx
 
Lidando com Equipes de Desenvolvimento
Lidando com Equipes de DesenvolvimentoLidando com Equipes de Desenvolvimento
Lidando com Equipes de Desenvolvimento
 
Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?Framework Próprio: Vale a Pena?
Framework Próprio: Vale a Pena?
 
Conhecendo Go
Conhecendo GoConhecendo Go
Conhecendo Go
 
Onde posso ir como “dev”
Onde posso ir como “dev”Onde posso ir como “dev”
Onde posso ir como “dev”
 
Introdução a golang
Introdução a golangIntrodução a golang
Introdução a golang
 
Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020Você não faz qualidade em Software - TDC Florianópolis 2020
Você não faz qualidade em Software - TDC Florianópolis 2020
 
Developer Experience no Nubank
Developer Experience no NubankDeveloper Experience no Nubank
Developer Experience no Nubank
 
Domain driven design na Prática
Domain driven design na PráticaDomain driven design na Prática
Domain driven design na Prática
 
#1 - Git - Introdução
#1 - Git - Introdução#1 - Git - Introdução
#1 - Git - Introdução
 
Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020Seu codigo fede e voce nem sabia - 2020
Seu codigo fede e voce nem sabia - 2020
 
Alta produtividade em Java EE com Groovy e Grails
Alta produtividade em Java EE com Groovy e GrailsAlta produtividade em Java EE com Groovy e Grails
Alta produtividade em Java EE com Groovy e Grails
 
Jenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do JavaJenkins - livre-se da parte chata do Java
Jenkins - livre-se da parte chata do Java
 
Agilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba ConferenceAgilidade não é para desenvolvedores - Agile Curitiba Conference
Agilidade não é para desenvolvedores - Agile Curitiba Conference
 
Jenkins
JenkinsJenkins
Jenkins
 
Casperjs-tdc-2016.ppt
Casperjs-tdc-2016.pptCasperjs-tdc-2016.ppt
Casperjs-tdc-2016.ppt
 
PostgreSQL Wonderland TDC-SP 2015
PostgreSQL Wonderland TDC-SP 2015PostgreSQL Wonderland TDC-SP 2015
PostgreSQL Wonderland TDC-SP 2015
 
Introdução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCastingIntrodução ao TDD nas soluções Global AppCasting
Introdução ao TDD nas soluções Global AppCasting
 
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
Testes Exploratórios não são sinônimo de bagunça! (TDC 2016 POA)
 
Apresentação tdc 2016 - trilha de testes
Apresentação tdc   2016 - trilha de testesApresentação tdc   2016 - trilha de testes
Apresentação tdc 2016 - trilha de testes
 

Similar to Introdução ao kotlin

Similar to Introdução ao kotlin (20)

Uma visão única da jornada do cliente pelos diferentes dispositivos
Uma visão única da jornada do cliente pelos diferentes dispositivosUma visão única da jornada do cliente pelos diferentes dispositivos
Uma visão única da jornada do cliente pelos diferentes dispositivos
 
Kotlin on Android
Kotlin on AndroidKotlin on Android
Kotlin on Android
 
O papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de softwareO papel e a carreira do arquiteto de software
O papel e a carreira do arquiteto de software
 
Conquiste Seu Primeiro Emprego em Mobile
Conquiste Seu Primeiro Emprego em MobileConquiste Seu Primeiro Emprego em Mobile
Conquiste Seu Primeiro Emprego em Mobile
 
Como se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhorComo se tornar um desenvolvedor de software melhor
Como se tornar um desenvolvedor de software melhor
 
Introdução ao desenvolvimento Android com Kotlin - Ricardo Robaina - Tchelinu...
Introdução ao desenvolvimento Android com Kotlin - Ricardo Robaina - Tchelinu...Introdução ao desenvolvimento Android com Kotlin - Ricardo Robaina - Tchelinu...
Introdução ao desenvolvimento Android com Kotlin - Ricardo Robaina - Tchelinu...
 
Coding Dojo - Unreal Engine
Coding Dojo - Unreal EngineCoding Dojo - Unreal Engine
Coding Dojo - Unreal Engine
 
Curso Básico Android - Aula 01
Curso Básico Android - Aula 01Curso Básico Android - Aula 01
Curso Básico Android - Aula 01
 
V Café & CODE - Provocações do Mestre - Prof. MSc. Cloves Rocha
V Café & CODE - Provocações do Mestre - Prof. MSc. Cloves RochaV Café & CODE - Provocações do Mestre - Prof. MSc. Cloves Rocha
V Café & CODE - Provocações do Mestre - Prof. MSc. Cloves Rocha
 
Carreira de Desenvolvedor
Carreira de DesenvolvedorCarreira de Desenvolvedor
Carreira de Desenvolvedor
 
Design for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHPDesign for change: Fatores que influenciam na longevidade de um Software PHP
Design for change: Fatores que influenciam na longevidade de um Software PHP
 
Agile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelumAgile br2011 lucabastos-prog10x-noiteagilcaelum
Agile br2011 lucabastos-prog10x-noiteagilcaelum
 
Fatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um SoftwareFatores que influenciam na longevidade de um Software
Fatores que influenciam na longevidade de um Software
 
Slide
SlideSlide
Slide
 
Programadores: Kiln o controle de versão integrado que vocês esperavam
Programadores: Kiln o controle de versão integrado que vocês esperavamProgramadores: Kiln o controle de versão integrado que vocês esperavam
Programadores: Kiln o controle de versão integrado que vocês esperavam
 
Desenvolvimento HTML5 para Smartphones e Tablets BlackBerry
Desenvolvimento HTML5 para Smartphones e Tablets BlackBerryDesenvolvimento HTML5 para Smartphones e Tablets BlackBerry
Desenvolvimento HTML5 para Smartphones e Tablets BlackBerry
 
São Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOpsSão Paulo MuleSoft Meetups - DevOps
São Paulo MuleSoft Meetups - DevOps
 
Refactoring com Padrões de Projeto
Refactoring com Padrões de ProjetoRefactoring com Padrões de Projeto
Refactoring com Padrões de Projeto
 
Google Summer of Code - Campus Party Brasil
Google Summer of Code - Campus Party Brasil Google Summer of Code - Campus Party Brasil
Google Summer of Code - Campus Party Brasil
 
Resumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POAResumo do TheDeveloperConference 2014 - POA
Resumo do TheDeveloperConference 2014 - POA
 

More from David Robert Camargo de Campos

Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014
Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014
Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014
David Robert Camargo de Campos
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
David Robert Camargo de Campos
 

More from David Robert Camargo de Campos (11)

Os desafios de um chat integrado ao checkout
Os desafios de um chat integrado ao checkoutOs desafios de um chat integrado ao checkout
Os desafios de um chat integrado ao checkout
 
Programando em Go
Programando em GoProgramando em Go
Programando em Go
 
An introduction to programming in Go
An introduction to programming in GoAn introduction to programming in Go
An introduction to programming in Go
 
Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014
Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014
Lidando com Java obsoleto: do Struts 1.0 ao CDI - QConSP 2014
 
Como um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenhoComo um grande sistema REST funciona - arquitetura e desempenho
Como um grande sistema REST funciona - arquitetura e desempenho
 
Implementação, design ou arquitetura?
Implementação, design ou arquitetura?Implementação, design ou arquitetura?
Implementação, design ou arquitetura?
 
Construindo um sistema distribuido usando rest
Construindo um sistema distribuido usando restConstruindo um sistema distribuido usando rest
Construindo um sistema distribuido usando rest
 
Como um grande sistema REST funciona
Como um grande sistema REST funcionaComo um grande sistema REST funciona
Como um grande sistema REST funciona
 
Dojo abril
Dojo abrilDojo abril
Dojo abril
 
Dicas para deixar seu código mais Robusto
Dicas para deixar seu código mais RobustoDicas para deixar seu código mais Robusto
Dicas para deixar seu código mais Robusto
 
Robustez de Software - Como ouvir menos reclamações dos seus chefes
Robustez de Software - Como ouvir menos reclamações dos seus chefesRobustez de Software - Como ouvir menos reclamações dos seus chefes
Robustez de Software - Como ouvir menos reclamações dos seus chefes
 

Recently uploaded

Recently uploaded (6)

Boas práticas de programação com Object Calisthenics
Boas práticas de programação com Object CalisthenicsBoas práticas de programação com Object Calisthenics
Boas práticas de programação com Object Calisthenics
 
Padrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemploPadrões de Projeto: Proxy e Command com exemplo
Padrões de Projeto: Proxy e Command com exemplo
 
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docxATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
ATIVIDADE 1 - LOGÍSTICA EMPRESARIAL - 52_2024.docx
 
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docxATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
ATIVIDADE 1 - ESTRUTURA DE DADOS II - 52_2024.docx
 
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docxATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
ATIVIDADE 1 - GCOM - GESTÃO DA INFORMAÇÃO - 54_2024.docx
 
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docxATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
ATIVIDADE 1 - CUSTOS DE PRODUÇÃO - 52_2024.docx
 

Introdução ao kotlin