Idio~ma~tic Kotlin (droidcon Vienna 2019)

4047c64e3a1e2f81addd4ba675ddc451?s=47 Marton Braun
September 20, 2019

Idio~ma~tic Kotlin (droidcon Vienna 2019)

‘Idiomatic’ is a word often used by Kotlin experts to describe elegant patterns or solutions that make excellent use of Kotlin’s features. Let’s turn this attitude around for a change, and have some fun by taking a look at the worst ways you can twist and abuse language features to take shortcuts, create tricky solutions, achieve exciting syntax, or confuse others who dare enter your codebase.

Talk recording: https://www.youtube.com/watch?v=XzBhrNq0nvQ

4047c64e3a1e2f81addd4ba675ddc451?s=128

Marton Braun

September 20, 2019
Tweet

Transcript

  1. tic Kotlin ma Idio Márton Braun zsmb.co zsmb13 braun.marton@autsoft.hu

  2. Idiotic Kotlin Márton Braun zsmb.co zsmb13 braun.marton@autsoft.hu

  3. Odd operations

  4. None
  5. None
  6. None
  7. None
  8. None
  9. None
  10. None
  11. None
  12. None
  13. None
  14. https://leanpub.com/effectivekotlin

  15. https://leanpub.com/effectivekotlin

  16. https://leanpub.com/effectivekotlin

  17. https://leanpub.com/effectivekotlin

  18. https://leanpub.com/effectivekotlin

  19. https://leanpub.com/effectivekotlin

  20. https://leanpub.com/effectivekotlin

  21. https://leanpub.com/effectivekotlin

  22. https://leanpub.com/effectivekotlin

  23. https://todd.ginsberg.com/post/kotlin-random-extension/

  24. \ ツ / https://todd.ginsberg.com/post/kotlin-random-extension/

  25. \ ツ / \ ツ / https://todd.ginsberg.com/post/kotlin-random-extension/

  26. \ ツ / \ ツ / https://todd.ginsberg.com/post/kotlin-random-extension/

  27. \ ツ / \ ツ / \ ツ / https://todd.ginsberg.com/post/kotlin-random-extension/

  28. \ ツ / https://todd.ginsberg.com/post/kotlin-random-extension/ \ ツ /

  29. https://todd.ginsberg.com/post/kotlin-random-extension/ \ ツ /

  30. https://todd.ginsberg.com/post/kotlin-random-extension/ \ ツ /

  31. https://todd.ginsberg.com/post/kotlin-random-extension/ \ ツ /

  32. https://todd.ginsberg.com/post/kotlin-random-extension/ \ ツ /

  33. Spam

  34. https://zsmb.co/talks/#typical-kotlin

  35. https://zsmb.co/talks/#typical-kotlin

  36. https://zsmb.co/talks/#typical-kotlin

  37. https://zsmb.co/talks/#typical-kotlin

  38. https://zsmb.co/talks/#typical-kotlin

  39. https://zsmb.co/talks/#typical-kotlin

  40. https://zsmb.co/talks/#typical-kotlin

  41. https://zsmb.co/talks/#typical-kotlin

  42. https://zsmb.co/talks/#typical-kotlin

  43. https://zsmb.co/talks/#typical-kotlin

  44. https://zsmb.co/talks/#typical-kotlin

  45. https://zsmb.co/talks/#typical-kotlin

  46. https://zsmb.co/talks/#typical-kotlin

  47. https://zsmb.co/talks/#typical-kotlin

  48. https://zsmb.co/talks/#typical-kotlin

  49. https://zsmb.co/talks/#typical-kotlin

  50. None
  51. None
  52. None
  53. None
  54. None
  55. None
  56. None
  57. None
  58. None
  59. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

  60. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

  61. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

  62. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

  63. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

  64. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

  65. Wishlist features

  66. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  67. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  68. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  69. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  70. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  71. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  72. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  73. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  74. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  75. https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

  76. https://twitter.com/marcinmoskala/status/1007640373970329600

  77. https://twitter.com/marcinmoskala/status/1007640373970329600

  78. https://twitter.com/marcinmoskala/status/1007640373970329600

  79. https://twitter.com/marcinmoskala/status/1007640373970329600

  80. https://twitter.com/marcinmoskala/status/1007640373970329600

  81. https://twitter.com/marcinmoskala/status/1007640373970329600

  82. https://twitter.com/marcinmoskala/status/1007640373970329600

  83. https://twitter.com/marcinmoskala/status/1007640373970329600

  84. https://twitter.com/marcinmoskala/status/1007640373970329600

  85. None
  86. None
  87. None
  88. None
  89. None
  90. None
  91. None
  92. None
  93. None
  94. None
  95. None
  96. JavaScript

  97. None
  98. None
  99. None
  100. None
  101. None
  102. None
  103. None
  104. None
  105. None
  106. None
  107. None
  108. None
  109. Puzzlers

  110. None
  111. None
  112. None
  113. None
  114. None
  115. None
  116. None
  117. None
  118. None
  119. None
  120. None
  121. None
  122. None
  123. https://stackoverflow.com/q/48037330/4465208

  124. https://stackoverflow.com/q/48037330/4465208

  125. https://stackoverflow.com/q/48037330/4465208

  126. https://stackoverflow.com/q/48037330/4465208

  127. https://stackoverflow.com/q/48505963/4465208

  128. https://stackoverflow.com/q/48505963/4465208

  129. https://stackoverflow.com/q/48505963/4465208

  130. https://stackoverflow.com/q/48505963/4465208

  131. https://stackoverflow.com/q/48505963/4465208

  132. https://stackoverflow.com/q/48505963/4465208

  133. https://stackoverflow.com/q/48505963/4465208

  134. https://stackoverflow.com/q/48505963/4465208

  135. https://stackoverflow.com/q/48505963/4465208

  136. https://stackoverflow.com/q/48505963/4465208

  137. https://stackoverflow.com/q/48505963/4465208

  138. https://stackoverflow.com/q/48505963/4465208

  139. https://stackoverflow.com/q/48505963/4465208

  140. Sources • Effective Kotlin - Marcin Moskala  https://leanpub.com/effectivekotlin •

    Abusing Kotlin's Unicode Support for Fun - Todd Ginsberg  https://todd.ginsberg.com/post/kotlin-random-extension/ • Typical Kotlin - Márton Braun  https://zsmb.co/talks/#typical-kotlin • Dealing with the absence of value - Roman Elizarov  https://medium.com/@elizarov/dealing-with-absence-of-value- 307b80534903
  141. Sources • Reddit post - /u/Tok-A-Mak  https://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/ • Tweet

    - Marcin Moskala  https://twitter.com/marcinmoskala/status/1007640373970329600 • Stack Overflow question – Hi Lo  https://stackoverflow.com/q/48037330/4465208 • Stack Overflow question - cuihtlauac  https://stackoverflow.com/q/48505963/4465208
  142. Image credits • First cover  https://unsplash.com/photos/Co_hWX_XtEk • Second cover

     https://www.pexels.com/photo/brown-tabby-cat-lying-on-sofa-755834/ • Questions slide  https://unsplash.com/photos/9SWHIgu8A8k
  143. zsmb.co/talks zsmb13

  144. Questions? Márton Braun zsmb.co zsmb13 braun.marton@autsoft.hu