Desenvolvendo
aplicativos Android
com Kotlin
por Adriel Café
Adriel Café
Mestre em Ciência da Computação @ CIn-UFPE
Desenvolvedor Android @ XARX
Revisor de Projetos @ Udacity
http://adriel.cafe
http://github.com/adrielcafe
http://linkedin.com/in/adrielcafe
0. Java
• Evolução lenta
• Verbosa
• Não possui propriedades, inicialização “lazy” e delegates
• NullPointerException
• Requer o uso de ;
4/34
1. Kotlin
• Conciso
– Seja mais produtivo ao escrevermenos e fazer mais
• Seguro
– Adeus NullPointerException!
• Versátil
– 100% interoperávelcom Java
– Compatível com Android e JavaScript
• Funcionalidades modernas
– Null Safety
– Data Classes
– Extension Functions e Inline Functions
– Delegation
– Default Arguments e Named Arguments
– Coroutines
– Lambdas e High Order Functions
– ...
• Open source (mantida pela JetBrains)
– https://github.com/JetBrains/kotlin
5/34
1. Kotlin: Cases
6/34
2. Básico: Configurando o Ambiente
1. Instalar o Android Studio
– https://developer.android.com/studio/
2. Instalar o plugin do Kotlin
– Configurações > Plugins > Instalar plugin da JetBrains > Kotlin
3. Modificar build.gradle
4. Modificar app/build.gradle
7/34
2. Básico: Olá, mundo!
Java
Kotlin
8/34
2. Básico: Tipos
• String
• Char
• Boolean
• Números
– Double
– Float
– Long
– Int
– Short
– Byte
9/34
2. Básico: Variáveis e Constantes
• Variável
• Constante
10/34
2. Básico: Strings
• String Literals
Java Kotlin
• String Templates / String Interpolation
Java Kotlin
11/34
3. Controle de Fluxo: If
12/34
3. Controle de Fluxo: For
13/34
3. Controle de Fluxo: While
14/34
3. Controle de Fluxo: When
Java
15/34
Kotlin
4. Sistema de Tipos: Null Safety
• Tipo Non-Null
• Tipo Nullable
16/34
4. Sistema de Tipos: Operators
• Operador Safe Call
• Operador Elvis
• Operador Not-null
17/34
4. Sistema de Tipos: Cast
• Safe casts
• Smart casts
Java Kotlin
18/34
5. Funções
• Básico
• Função de expressão única
• Retorno vazio (Unit)
19/34
5. Funções: Argumentos
Java
20/34
Kotlin
5. Funções: Extensions Functions
Java
Kotlin
21/34
5. Funções: Lambdas
Java
Kotlin
22/34
5. Funções: High Order Functions
Java
23/34
Kotlin
6. Classes
24/34
6. Classes: Herança
• Básico
• Constructor e override
25/34
6. Classes: Data Class
Java
26/34
Kotlin
7. Interfaces
27/34
8. Coleções: List
Java
28/34
Kotlin
8. Coleções: Map
Java
Kotlin
29/34
Bônus 1: Kotlin Android Extensions
https://kotlinlang.org/docs/tutorials/android-plugin.html
XML
Java
30/34
Kotlin
Bônus 2: Anko
https://github.com/Kotlin/anko
XML + Java
31/34
Kotlin
Resultado
Bônus 3: RxKotlin
https://github.com/ReactiveX/RxKotlin
32/34
Links Úteis
1. https://try.kotlinlang.org
2. https://blog.jetbrains.com/kotlin
3. https://twitter.com/kotlin
4. https://kotlin.link
5. http://kotlinslackin.herokuapp.com
6. https://github.com/HugoMatilla/KotlinCheatSheet
7. https://github.com/dbacinski/Design-Patterns-In-Kotlin
33/34
OBRIGADO!

Desenvolvendo aplicativos Android com Kotlin