Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Kotlin: The "New" Kid On The Block!

Kotlin: The "New" Kid On The Block!

This talk was held on the Mobile track of The Developer Conference São Paulo 2017, which happened on July 20th. The talk was an introduction to the Kotlin language, with steps about how to start to use it, which companies are using and what are the most benefits of using it on Android, backend, game development and such!

More details about the event: www.thedevelopersconference.com.br/tdc/2017/saopaulo/trilha-mobile

B567f69eed037ed20536fc825305a38d?s=128

Walmyr Carvalho

July 20, 2017
Tweet

Transcript

  1. Walmyr Carvalho #TrilhaMobile #TheDevConf Kotlin: The “New" Kid On The

    Block
  2. Walmyr Carvalho @walmyrcarvalho

  3. None
  4. None
  5. Kotlin! Por que esse buzz todo?

  6. • Criada pela JetBrains • Open source <3 • Compila

    para JVM e JS • Null safety • Suporta OO e FP (kinda)
  7. None
  8. Kotlin na 99

  9. Usamos Kotlin em produção há mais de um ano em

    dois projetos Android:
  10. None
  11. Somos 7 desenvolvedores Android, com experiências distintas, trabalhando com Kotlin

    diariamente.
  12. Quem mais tá usando?

  13. None
  14. None
  15. A oficialização da linguagem pelo Google é só um reflexo

    de uma vontade que a comunidade já tinha há muito tempo.
  16. None
  17. Onde eu posso usar Kotlin?

  18. None
  19. Kotlin and Android - Android Developers goo.gl/JzeMwI

  20. None
  21. Introducing Kotlin support in Spring Framework 5.0 goo.gl/6t2qsE

  22. None
  23. Kotlin/Native Tech Preview - Kotlin Without a VM goo.gl/kUe7d7

  24. TL;DR: Se você hoje trabalha com JVM, seja no Android,

    backend ou em jogos, muito provavelmente você pode usar Kotlin
  25. Overview da linguagem

  26. Funções

  27. fun sum(a: Int, b: Int): Int { return a +

    b }
  28. fun sum(a: Int, b: Int) = a + b

  29. Variáveis

  30. val a: Int = 1 // valor associado e tipagem

    definida val b = 2 // Tipo `Int` inferido val c: Int // Tipo é requerido c = 3
  31. var x = 5 // `Int` é inferido x +=

    1
  32. String templates

  33. var a = 1 // nome simples no template: val

    s1 = "a is $a" a = 2 // expressão arbitrária template: val s2 = "${s1.replace("is", "was")}, but now is $a"
  34. Condicionais

  35. fun maxOf(a: Int, b: Int): Int { if (a >

    b) { return a } else { return b } }
  36. fun maxOf(a: Int, b: Int) = if (a > b)

    a else b
  37. Loops

  38. val items = listOf("apple", "banana", "kiwi") for (item in items)

    { println(item) }
  39. val items = listOf("apple", "banana", "kiwi") for (index in items.indices)

    { println("item at $index is ${items[index]}") }
  40. val items = listOf("apple", "banana", "kiwi") var index = 0

    while (index < items.size) { println("item at $index is ${items[index]}") index++ }
  41. when

  42. fun describe(obj: Any): String = when (obj) { 1 ->

    "One" "Hello" -> "Greeting" is Long -> "Long" !is String -> "Not a string" else -> "Unknown" }
  43. when { "orange" in items -> println("juicy") "apple" in items

    -> println("apple is fine too") }
  44. Nulabilidade

  45. var a: String = "abc" a = null // erro

    de compilação
  46. var b: String? = "abc" b = null // ok

  47. Elvis operator

  48. // Como melhorar esse código? val l: Int = if

    (b != null) b.length else -1
  49. // yay! <3 val l = b?.length ?: -1

  50. Legal, bora ver mais?

  51. Demo!

  52. Considerações finais

  53. Dúvidas?

  54. Links úteis

  55. Kotlin - Página Oficial kotlinlang.org

  56. Kotlin Meetup São Paulo meetup.com/kotlin-meetup-sp

  57. Talking Kotlin - Podcast talkingkotlin.com

  58. Kotlin Conf 2017 kotlinconf.com

  59. Kotlin - Android Developers developer.android.com/kotlin

  60. Android Dev BR - Slack slack.androiddevbr.org

  61. Temos muitas vagas! carreiras.99taxis.com

  62. Kotlin is Awesome kotlin.link Swift is like Kotlin nilhcem.com/swift-is-like-kotlin/

  63. Muito obrigado! Walmyr Carvalho @walmyrcarvalho

  64. Fonte das imagens e conteúdo utilizado: developer.android.com/kotlin twitter.com/kotlin kotlinlang.org kotlinconf.com

    blog.jetbrains.com