Kotlin
in a real-world project

Anton Rutkevich

JunoLab

Witaj, Kraków!

Hello, Krakow!

Who's out there? :)

About me

  • Android
  • Java, Kotlin, Groovy
  • Gradle, mobile CI

Anton Rutkevich

Based on

6 months of production Android app development

FAQ

or

Why should you care at all?

Kotlin

  • Open source, statically typed JVM language by JetBrains
  • Built with "Effective Java" in mind
  • Good support / community

History

  • Announced in 2011
  • Currently 1.0 Beta 2 (Dec 2015)
  • 1.0 coming soon
  • Bundled with IntelliJ IDEA 15

For Android

  • Native support in Android Studio
  • Strong Android support
  • Java interop is seamless
  • Existing Java libraries can be used
  • < 1Mb library size; ~ 8.5 K Methods

Shut up and take my money method count

Library Size Method count
scala-library-2.11.7 5.7 Mb 50811
groovy-2.4.4 4.6 Mb 28768
kotlin-runtime-1.0.0-beta-2423 231 Kb 1102
kotlin-stdlib-1.0.0-beta-2423 730 Kb 7337

Safety
&
Clean code

Safety

Compile time safety

Compile time safety

Null safety

( Demo 1 )

Easy immutability

( Demo 2 )

Clean code

Higher order functions

( Demo 3 )

Extension functions

( Demo 4 )

Inlined functions

( Demo 5 )

Extension functions
+ RxJava

( Demo 6 )

A lot of other features

  • Inferred types
  • String templates
  • Properties
  • When (upgraded switch)
  • Return if / when / try
  • Ranges
  • Unchecked exceptions
  • Delegates
  • Operator overloading
  • Type-safe builders
  • ...

Downsides

Tooling

  • Compiles a bit slower than Java
  • Android Studio is less smart than with Java
  • No Lint

Code

  • Harder to write hacky tests
  • Must be careful when interacting with Java

Dziękuję!

 

Thank you! 

Question? 

Anton Rutkevich,

Blog: kotlin4android.com

@AntonRutkevich

+AntonRutkevich

anton.rutkevich

  • http://kotlinlang.org
  • Google "Kotlin Koans" - nice Kotlin exercises
  • YouTube "Andrey Breslav - Flexible Types in Kotlin"
  • http://www.slideshare.net/intelliyole/kotlin-why-do-you-care
  • https://slides.com/antonrutkevich/kotlin-real-world-droidcon

Kotlin in a real-world Android project

By Anton Rutkevich

Kotlin in a real-world Android project

Kotlin in a real-world Android project, Droidcon Krakow 2015

  • 1,737