Kotlin для Android, или лёгкий способ перестать программировать на Java

  • Tutorial
На нашей конференции мобильных разработчиков #MBLTDev, которая прошла в конце октября в Москве, продуктолог компании JetBrains Илья Рыженков рассказал доклад о языке программирования под Android Kotlin.

Kotlin был разработан в компании JetBrains и публично представлен в 2011 году. В 2012 был открыт исходный код.


Презентация

Илья рассказал про историю создания языка, преимуществах программирования на Kotlin, отличия Kotlin от Java и о том, что на нем можно делать. А также показал несколько примеров кода на Kotlin для платформы Android.

Предыдущие видеозаписи вы можете найти по ссылкам:
  1. «Автоматическое тестирование Android приложений c любовью»
  2. «Опыт использования MVVM в реальных проектах»
  3. «Реактивное программирование на Swift»
  4. «Core Data: особенности использования и синхронизация в iCloud»

На следующей неделе мы выложим доклады про безопасность iOS-устройств, современные способы аутентификации и трилатерацию с помощью iBeacon.
e-Legion
92.15
Лидер мобильной разработки в России
Share post

Similar posts

Comments 14

    0
    Простомтрел только половину видео, но уже хочу попробовать Kotlin. Очень крутая штука.
      +4
      В целом прикольная тема. Но как геймдевелопер не особо вижу зачем kotlin мне нужен.
      Все таки игры пишем кроссплатформенными, чтобы и на iOS без проблем собиралось.
      В итоге java прослойка получается достаточно мелкая и она практически не напрягает.
      Вот была бы возможность kotlin под iOS пускать — тогда можно было бы смотреть в сторону разработки игр на этом языке.
        0
        RoboVM
          0
          У вас есть опыт работы с RoboVM? Если да, то расскажите о плюсах/минусах.
            +1
            То есть тащить с собой виртуальную машину ради… чего, кстати?
          +3
          Однажды на квартирнике в рамках Code Fest 2014 я задал такой вопрос Филиппу Торчинскому:

          «Привносит ли Kotlin какие-то свои идеи поверх Java, как это делает, например, Scala, или же Kotlin является лишь синтаксической реинкарнацией Java?»

          Филипп ответил, что да, такие идеи в их языке есть, но раскрыть тему не смог. Поэтому вопрос остается открытым, — презентация тоже на него не отвечает.
            0
            А Kotlin тянет за собой библиотеку на несколько мегабайт, как Scala?
              0
              в видео говорится что либа занимает всего 800кб
                +1
                Подтверждаю, что на kotlin компилится и деплоится быстрее. Я пробовал чисто java, java + retrolambda, kotlin, scala и scala + scaloid. И kotlin был на равне с java, что меня очень удивило.
                +3
                kotlin клёвая штука! Иногда пописываю под android на java (хотя сам дотнетчик), и очень хотел бы заменить яву на котлин полностью (ибо боль писать на яве после шарпа в плане синтаксического сахара, уж простите).
                  +6
                  Сейчас пишу qwerty поиск в AppDialer-е частично на Kotlin. Это праздник какой-то. Компилится быстро, поддержка в IDEA шикарная, gradle собирается на раз два. Получается очень плотный код. Что мне особенно понравилось пока что:
                  • Extensions. Получаю float из xml ресурсов через «отсутствующий» API Resources.getFloat(resId)
                    //Define somewhere
                    public fun Resources.getFloat(resourceId: Int): Float {
                        val outValue = TypedValue() ;
                        getValue(resourceId, outValue, true)
                        return outValue.getFloat() ;
                    }
                    //Use
                    val w = resources.getFloat(R.fraction.qw_extra_space_along_edges)
                    
                  • Lambdas. Получить из массива хитрый HashMap вместо пол страницы кода на Java
                    keys.toMap { it }.mapValues {
                                it.value.toString()
                                        .plus(keyMapEn[it.key])
                                        .toCharArray()
                            }
                    
                  • Elvis operator.Использовать пустую строку если переменная null
                    keyLabelLoc.setText(labelLoc ?: "")
                    
                  • Delegated properties.Ленивая инициализация свойства класса
                     val keyMapLocal: Map<Char, String> by Delegates.lazy {
                            when (langCode) {
                                "ru" -> qwertyMapRu
                                else -> mapOf<Char, String>()
                            }
                        }
                    


                  Все примеры прямо из проекта. Пробовал и Scala еще до серьезного развития Kotlin. Но Scala в Android как Винни в Кроликовой норе.
                    0
                    Но Scala в Android как Винни в Кроликовой норе.

                    Просто вы тянете весь рантайм за собой, но реально нужно 5% от всего объёма. Proguard справляется с задачей, но стандартных средств в компиляторе scala для отслеживания зависимостей классов конечно не хватает.
                      0
                      Это правда. Т.е. если Винни долго подержать то он из норы вылезет. Что-то proguard отрезает, но время компиляции/дексинга увеличивается значительно.
                    0
                    У вас там на главной, Expressive-} see example, опечатка, надо
                    println("${person} is ${age} years old")
                    (сейчас in вместо is)

                    Only users with full accounts can post comments. Log in, please.