Slide 1

Slide 1 text

Kotlin 1.4 Preview: O que vem por aí? Walmyr Carvalho Mobile Technical Leader @ idwall, Founder @ Kusudama Google Developer Expert, Android @walmyrcarvalho

Slide 2

Slide 2 text

Olá, pessoal! Meu nome é Walmyr Carvalho, muito prazer! :)

Slide 3

Slide 3 text

Trabalho com desenvolvimento Android há 10 anos e sou um Google Developer Experts de Android no Brasil há 4 anos. Além disso, estou muito próximo da comunidade nacional de Android, sendo organizador do Kotlin Meetup São Paulo e do Android Dev BR, a maior comunidade lusófona de Android do mundo, com mais de 6700 pessoas! Também apoio o empreendedorismo nacional, sendo mentor de Android e mobile no Google for Startups Accelerator e na ACE Startups.

Slide 4

Slide 4 text

Já ajudei a evoluir produtos mobile para empresas como Loggi, 99, Cielo, CI&T, Hotel Urbano e Globo Esporte, durante mais de 9 anos de carreira como especialista em Android. Fonte: Google Play

Slide 5

Slide 5 text

Nesse ano fundei a Kusudama, um estúdio de desenvolvimento e design de produtos digitais para Android e iOS, que tem como seu objetivo criar experiências que tratem seus usuários com respeito dentro do universo mobile.

Slide 6

Slide 6 text

Recentemente me juntei ao grande time da idwall como Mobile Technical Leader, com o objetivo de criar a próxima plataforma de identidade digital brasileira no mobile, além de soluções para empresas que buscam aumentar a confiança na identificação dos seus usuários.

Slide 7

Slide 7 text

Evolução da linguagem Kotlin! Como estamos nesse aspecto?

Slide 8

Slide 8 text

A linguagem Kotlin começou seu desenvolvimento em 2011, tendo a sua versão 1.0 lançada há 3 anos e 4 meses atrás, em Fevereiro de 2016!

Slide 9

Slide 9 text

Fonte: JetBrains

Slide 10

Slide 10 text

De lá pra cá, ela vem evoluindo muito bem desde, o que é um ótimo sinal! ❤

Slide 11

Slide 11 text

Kotlin (JetBrains) - GitHub github.com/jetbrains/kotlin

Slide 12

Slide 12 text

A empresa vem colhendo uma série de feedbacks com a comunidade de pessoas profissionais Kotlin, o que acaba ajudando a guiar o futuro da linguagem também!

Slide 13

Slide 13 text

Kotlin Census 2018 Resultado da pesquisa jetbrains.com/research/kotlin-census-2018/ Fonte: JetBrains

Slide 14

Slide 14 text

Kotlin Census 2019: Call for Respondents Resultados em breve! tinyurl.com/kotlin-census-c4r Fonte: JetBrains

Slide 15

Slide 15 text

Um ponto importante de se mencionar: qualquer pessoa pode fazer contribuições ou propostas para a linguagem, o que é algo ótimo! ✨

Slide 16

Slide 16 text

KEEP - Kotlin Evolution and Enhancement Process (GitHub) Repositório de propostas para a evolução da linguagem github.com/kotlin/KEEP

Slide 17

Slide 17 text

E recentemente a JetBrains anunciou o 1.4 Preview, trazendo uma série de novidades tanto pela empresa quanto por pessoas contribuidores externas! ✨

Slide 18

Slide 18 text

Kotlin 1.4-M1 Preview Artigo no blog oficial da empresa tinyurl.com/blog-kotlin-1-4-m1 Fonte: JetBrains

Slide 19

Slide 19 text

Kotlin 1.4! O que temos de legal?

Slide 20

Slide 20 text

SAM (single abstract method) para interfaces: fun interface Action { fun run() } fun runAction(a: Action) = a.run() fun main() { runAction { println("Hello, Kotlin 1.4!") } }

Slide 21

Slide 21 text

Melhorias nos algoritmos de type inference: val rulesMap: Map Boolean> = mapOf( "weak" to { it != null }, "medium" to { !it.isNullOrBlank() }, "strong" to { it != null && "^[a-zA-Z0-9]+$".toRegex().matches(it) } )

Slide 22

Slide 22 text

Acceso a membros via Smart Cast: fun perform(animal: Animal) { val kFunction: KFunction<*> = when (animal) { is Cat -> animal::meow is Dog -> animal::woof } kFunction.call() }

Slide 23

Slide 23 text

fun foo(i: Int = 0): String = "$i!" fun apply1(func: () -> String): String = func() fun apply2(func: (Int) -> String): String = func(42) fun main() { println(apply1(::foo)) println(apply2(::foo)) } Melhorias na referência de callables:

Slide 24

Slide 24 text

fun foo(i: Int = 0): String = "$i!" fun apply1(func: () -> String): String = func() fun apply2(func: (Int) -> String): String = func(42) fun main() { println(apply1(::foo)) println(apply2(::foo)) } Melhorias na referência de callables:

Slide 25

Slide 25 text

package blogpost @JsExport class KotlinGreeter(private val who: String) { fun greet() = "Hello, $who!" } @JsExport fun farewell(who: String) = "Bye, $who!" fun secretGreeting(who: String) = "Sup, $who!" // only from Kotlin! Export de declarações para JS

Slide 26

Slide 26 text

Como utilizar a nova versão? Tools > Kotlin > Configure Kotlin Plugin Updates Update Channel > Early Access Preview 1.4.x E é só instalar! :)

Slide 27

Slide 27 text

Se eu quiser aprender mais sobre, onde eu posso encontrar material?

Slide 28

Slide 28 text

Kotlin - JetBrains Página oficial kotlinlang.org Fonte: JetBrains

Slide 29

Slide 29 text

KEEP - Kotlin Evolution and Enhancement Process (GitHub) Repositório de propostas para a evolução da linguagem github.com/kotlin/KEEP

Slide 30

Slide 30 text

Android Dev BR - Comunidade Maior comunidade lusófona de Android no Slack, com mais de 6.700 pessoas! ❤✨ slack.androiddevbr.org

Slide 31

Slide 31 text

Perguntas? Ficou alguma dúvida?

Slide 32

Slide 32 text

Muito obrigado! Se tiver qualquer dúvida ou sugestão, pode falar comigo. ❤ @walmyrcarvalho /walmyrcarvalho walmyr@kusudama.com.br