2. whoami
Мамыров Дастан
КГТУ им. Раззакова ПОВТиАС
выпуск 2015 года
Практикую моб разработку с 2014 года
Сейчас работаю в MadDevs 🤘
3. Kotlin.
Начало.
За эти годы создатели упростили|улучшили многое, и сегодня мы с вами разберем одно из
последних добавлений.
Kotlin - статически типизированный язык программирования, работающий поверх JVM и
разрабатываемый компанией JetBrains.
Который с выходом Android Studio 3.0 является официальным языком программирования
для платформы Android.
4. Немного скучной информации…
Язык разрабатывается с 2010 года, представлен общественности в июле 2011.
Исходный код реализации языка был открыт в феврале 2012.
В феврале был выпущен milestone 1, включающий плагин для IDEA.
В июне — milestone 2 с поддержкой Android.
В декабре 2012 года вышел milestone 4, включающий, в частности, поддержку Java 7.
В феврале 2016 года вышел официальный релиз-кандидат версии 1.0, а 15 февраля 2016 года
— релиз 1.0. 1 марта 2017 вышел релиз 1.1.
В мае 2017 года компания Google сообщила, что инструменты языка Kotlin, основанные на
JetBrains IDE, будут по стандарту включены в Android Studio 3.0 — официальный инструмент
разработки для ОС Android
9. Также можно не указывать тип при создании переменной, но порой все же
лучше подстраховаться.
private var imageURL = ""
val maxRetryCount = 3
Еще можно перестать париться с блоками и использовать лямбды.🤘
fruits
.filter { it.startsWith("a") }
.sortedBy { it }
.map { it.toUpperCase() }
.forEach { println(it) }
10. Лямбда, вложенная в лямбду
val months: List<Date> = ...
val hallsRents: Map<Date, Map<String, Int?>> = months
.map { month ->
month to halls
.map { it.name to rent(month, it) }
.toMap()
}
.toMap()
11. Расширения для функций
fun <T> MutableList<T>.swap(index1: Int, index2: Int) {
val tmp = this[index1] // 'this' ссылка на List
this[index1] = this[index2]
this[index2] = tmp
}
Но при этом они не расширяют и не меняют исходный класс, а просто являются статичными
функциями для него.
А если хотите добавить внутрь своего класса статичную функцию то придется добавить его
внутрь companion object
class MyClass {
companion object { }
}
12. Параметры по умолчанию
data class User (
val name: String,
val birthDate: Date,
val created: Date = Date(),
val disabled: Boolean = false
)
val newUser = User("test", SEPTEMBER_1970)
13. apply - блок функции передающий себя в качестве параметра и возвращающий
себя
// Как было
fun createIntent(intentData: String, intentAction: String): Intent {
val intent = Intent()
intent.action = intentAction
intent.data=Uri.parse(intentData)
return intent
}
// Как стало
fun createIntent(intentData: String, intentAction: String) =
Intent().apply { action = intentAction }
.apply { data = Uri.parse(intentData) }
14. геттеры и сеттеры
Kotlin автоматически генерирует геттеры и сеттеры по умолчанию.
В Котлине, вы должны указать специальный сеттер или геттер, только если он у вас есть.
В противном случае, Kotlin автогенерирует его для вас
var a = 1
set(value) { field = Math.abs(value) }
15. И вправду. Очень схож с свифт и Айосникам легче будет перейти на kotlin
пример: Swift is like Kotlin
Меня зовут Дастан и я работаю в MadDevsЕще во время учебы в универе я начал изучать мобильное программирование и продолжаю по сей день.Мы с командой до сих пор вздрагиваем вспоминая те страшные времена с Eclipse.