Котлин
в реальном Android проекте

Антон Руткевич

Привет, Яндекс!

Как у вас
дела-то ? :)

Обо мне

  • Работал в Яндексе :)
  • Android
  • Java, Kotlin, Groovy
  • Gradle, mobile CI

Антон Руткевич

Котлин-опыт

9 месяцев
Андроид разработки
на Котлине 
в команде из 8 человек

Да ладно,

 

еще один JVM язык?

Зачем?

Kotlin

  • Open source, статически-типизированный JVM язык от JetBrains
  • "Effective Java" на уровне языка
  • Хорошая поддержка/community

История

  • Анонсирован в 2011
  • Сейчас 1.0-RC (Февраль 2015)
  • 1.0 вот уже совсем скоро :)

Для Android

  • Android Studio - "родная" IDE
  • Хороший саппорт от JB
  • Просто работать с Java
  • Java библиотеки работают
  • < 1Mb jar ; ~ 8 K методов

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-rc-1036 225 Kb 924
kotlin-stdlib-1.0.0-rc-1036 705 Kb 6961

Безопасность
&
Чистый код

Безопасность

Compile time безопасность

Compile time safety

Null safety

( Демо 1 )

Простая иммутабельнсть

( Демо 2 )

Чистый код

Функции высших порядков

( Демо 3 )

Extension функции

( Демо 4 )

Inlined функции

( Демо 5 )

Extension функции
+ RxJava

( Демо 6 )

Много других плюшек

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

Недостатки

Tooling

  • Компилируется чуть медленнее Java
  • Android Studio чуть менее умна чем с Java
  • Нету Lint

Код

  • Тяжелее писать "кривые" тесты
  • Нужно быть аккуратным при работе с Java

Спасибо! 

Вопросы? 

Антон Руткевич,

Блог: kotlin4android.com

@AntonRutkevich

+AntonRutkevich

anton.rutkevich

  • http://kotlinlang.org
  • Google "Kotlin Koans" - отличные упражнения
  • YouTube "Andrey Breslav - Flexible Types in Kotlin"
  • http://www.slideshare.net/intelliyole/kotlin-why-do-you-care

Kotlin in a real-world Android project @ Yndx

By Anton Rutkevich

Kotlin in a real-world Android project @ Yndx

Kotlin in a real-world Android project @Yndx Feb 2016

  • 1,077