Idio~ma~tic Kotlin (droidcon London 2019)

Idio~ma~tic Kotlin (droidcon London 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.

4047c64e3a1e2f81addd4ba675ddc451?s=128

Marton Braun

October 25, 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. None
  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://leanpub.com/effectivekotlin

  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. https://todd.ginsberg.com/post/kotlin-random-extension/ \ ツ /

  34. Spam

  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. https://zsmb.co/talks/#typical-kotlin

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

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

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

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

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

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

  57. None
  58. None
  59. None
  60. None
  61. None
  62. None
  63. None
  64. None
  65. None
  66. https://medium.com/@elizarov/dealing-with-absence-of-value-307b80534903

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

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

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

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

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

  72. Wishlist features

  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://www.reddit.com/r/Kotlin/comments/cdotu0/intellectuals_will_understand/

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  94. None
  95. None
  96. None
  97. None
  98. None
  99. None
  100. None
  101. None
  102. None
  103. None
  104. None
  105. JavaScript

  106. None
  107. None
  108. None
  109. None
  110. None
  111. None
  112. None
  113. None
  114. None
  115. None
  116. None
  117. None
  118. None
  119. Puzzlers

  120. None
  121. None
  122. None
  123. None
  124. None
  125. None
  126. None
  127. None
  128. None
  129. None
  130. None
  131. None
  132. None
  133. None
  134. https://stackoverflow.com/q/48037330/4465208

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

  153. 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
  154. 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
  155. zsmb.co/talks zsmb13

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