Comments 8
Какая-то очень скупаю выжимка из стандартной статьи "за что мы любим Котлин". И андроид специфика, на мой взгляд, притянута за уши
Например, прослушивание файла будет выглядеть примерно так:
button.setOnClickListener
что?
почему фильтрация отдельным пунктом, почему не любая другая extenstion-функция для коллекций из десятков имеющихся?
геттеры/сеттеры, дата классы, делегаты — это же просто базовый синтаксис котлина, а не какие-то пасхалки, скрытые в недрах
Для чего вы указываете @SerializedName(«name») если имя переменной и так name (как минимум в случае с Gson это излишне, или я что-то упускаю)? Если из-за proguard, то проще уже было бы весь класс "@Keep" пометить.
К котлине очень делегаты радуют )
class PlanPolygon(): Refreshed, ObservableList by observableArrayList()
class PlanPolygon(): Refreshed, ObservableList by observableArrayList()
MaxRokatansky у вас плохой пример
В случае если с сервера не придет какое то поле, например name, то kotlin не подставит значение по умолчанию и получится нуловое поле, которое при обращении выдаст KotlinNullPointerException
p.s. это кстати распространенная ошибка, которая ломает NullSafety у kotlin'a и решается просто, вот несколько вариантов:
1) конвертацией из Network слоя в Domain, где будет проверка на requiredNotNull
2) все поля где есть SerializedName объявляются nullable (?)
3) добавить проверку полей на соответствие через средства kotlin — copy(), в этом случае kotlin выругается KotlinNullPointerException когда попытается обратиться к полю
data class User(
@SerializedName("name") val name: String = "",
@SerializedName("age") val age: Int = 0
)
В случае если с сервера не придет какое то поле, например name, то kotlin не подставит значение по умолчанию и получится нуловое поле, которое при обращении выдаст KotlinNullPointerException
p.s. это кстати распространенная ошибка, которая ломает NullSafety у kotlin'a и решается просто, вот несколько вариантов:
1) конвертацией из Network слоя в Domain, где будет проверка на requiredNotNull
2) все поля где есть SerializedName объявляются nullable (?)
3) добавить проверку полей на соответствие через средства kotlin — copy(), в этом случае kotlin выругается KotlinNullPointerException когда попытается обратиться к полю
Sign up to leave a comment.
16 советов по разработке для Android на языке Kotlin. Часть 1