Освой Kotlin играючи

Сайт Александра Климова

Шкодим

/* Моя кошка замечательно разбирается в программировании. Стоит мне объяснить проблему ей - и все становится ясно. */
John Robbins, Debugging Applications, Microsoft Press, 2000

Kotlin

Любой кот линяет. Из выпавшей шерсти можно собрать второго кота. По такой же аналогии из Java можно создать новый язык Kotlin, образованный из двух слов Kot linяет. Есть ещё неправдоподобная версия об острове в Финском заливе, которая просто смешна и не заслуживает внимания.

Kotlin

17 мая 2017 года на Google IO объявили о поддержке Kotlin в Android Studio 3.0. Пора учить новый язык, который заслужил много лестных отзывов от опытных разработчиков.

Что нового

В октябре 2018 года вышла версия Kotlin 1.3. Список новинок здесь.

Корутины вышли из экспериментального статуса.

Функцию main() можно использовать без параметров.

Появились беззнаковые типы: UByte (0...255), UShort (0...65535), UInt (0...2^32 - 1), ULong (0...2^64 - 1).

Новый мультиплатформенный класс kotlin.random.Random: println(Random.nextInt(43))


28 ноября 2017 года вышла новая версия Kotlin 1.2. Список новинок здесь.

Добавлены новые функции для изменяемых списков: fill, replaceAll, shuffle.

Добавлена новая функция shuffled для неизменяемых списков.

Добавлены математические функции. Например, можем узнать, что число является отрицательным.


val item = -100
println("${item.sign}") // вернёт -1

Продолжить изучение Kotlin

Сконвертировать существующий Java-код на Kotlin можно через меню Code | Convert Java File to Kotlin File.

Если скопировать в буфер обмена код на Java и вставить его в kt-файл, то студия автоматически сконвертирует код.

На заметку: Файлы с кодом на Kotlin смотрятся странно в папке java в проекте студии. Открываем файл gradle.build модуля и в секции android добавляем блок:


sourceSets {
    main.java.srcDirs += 'src/main/kotlin'
}

Переключаемся в режим Project и переименовываем папку java. Приложение будет работать по-прежнему. В режиме Android по-прежнему будет видна папка java, это жестко прописано в студии. Может потом поправят этот момент.

Tools | Kotlin

Также в студии есть целый раздел меню для настройки: Tools | Kotlin.

Show Kotlin Bytecode

При выборе Show Kotlin Bytecode можно просматривать любой файл *.kt, в отдельном окне будет виден байткод файла. Если в нём не будет данных, которых нельзя представить в Java, то также будет доступна возможность декомпилировать его в Java-код кнопкой Decompile.

Kotlin REPL

Интересная оболочка в виде командной строки. Можно быстро написать какое-то выражение и получить результат.

Anko

Библиотека Anko была специально разработана для удобного программирования под Android, сокращая количество кода для вызовов намерений, диалоговых окон, журналирования и т.д.


//Java
Toast.makeText(context, "Hello Kitty!", Toast.LENGTH_SHORT).show();

//Anko Kotlin
toast("Hello Kitty!")

// Java style
val intent = Intent(this, SecondActivity::class.java)
startActivity(intent)

// Anko
startActivity<SecondActivity>()

// Anko Intent для звонка
makeCall("911")

Примеры на Kotlin

Android KTX

Hello Kitty

Щелчок кнопки/Счётчик ворон

SharedPreferences: Сохраняем настройки

Переключение между экранами приложения

Счётчик шагов

Запускаем фотосъёмку через Intent

Запускаем съёмку видео через Intent

ShareActionProvider (Провайдер действия передачи информации)

Android: ValueAnimator

RxKotlin

Книги

На русском языке доступна книга Kotlin в действии.

В начале книге перечисляются благодарности, в том числе - Наконец, мы хотели бы поблагодарить наши семьи и котов за то, что они делают этот мир лучше.

Реклама