DroDev | Мобильная разработка: мысли вслух
464 subscribers
104 photos
229 links
Обсуждаю и рассказываю как сделать жизнь разработчика в команде интересной, легкой и продуктивной.

По всем вопросам @dilix90
Download Telegram
#Kotlin выкатился в версии 1.4.
Из интересного (ну если опустить о том, что Котлин сам по себе интересен чуть более чем полностью).

👉 Подсветка кода работает быстрее, особенно заметно на больших файлах. Полезно когда комп не очень шустрый.
👉 Базовый отладчик корутин.
👉 Еще больше автозамен и дополнений. У Jetbrains интеллектуальность ввода всегда был прямо магией какой-то.
👉 Еще больше информации по ссылке.

Если вы всё еще используете Java, то таки попробуйте Kotlin, рекомендую! https://bit.ly/2YvWLpf
#Android #Jetpack тут на #SharedPreferences покусился 😱

Представил альфу #DataStore. Внутри #Kotlin #Coroutines и #Flow. Есть две реализации

👉 #Proto Datastore. Позволяет хранить типизированные объекты. Привет Protocol Buffer.
👉 #Preferences Datastore. Тут можно хранить ключ-значение.

Работа с данными асинхронна, консистентна и транзакциональна.
По ссылке там даже табличка сравнений есть. https://bit.ly/35ptvVx
#Kotlin when - прелестная альтернатива цепочки ifов.
К тому же, кроме просто проверки значений можно легко и непринужденно проверить тип переменной через is.
Опа, интересная статья, в которой четко разложили по полочкам с бенчмарками мифы, вида

❌ #Kotlin приложения тяжелее и медленные чем #Java
❌ Геттеры и Сеттеры - это дорого
❌ Лямбды медленнее inner классов

И многое другое, прямо с графиками, картинками.

#Статьи https://bit.ly/3lffiPr
#Kotlin matchers это просто праздник какой-то. #Тесты читаются как рассказ про мечты и надежды вашего кода.

#Код #Тесты
Как в #Kotlin элегантно найти наличие или отсутствие элемента в коллекции? Да запросто!

#Код
В #Java, чтобы проверить строку на "пустоту", нужно будет вызвать isEmpty и не забыть убрать пробелы (если такая логика присутствует). И да, не забыть, что строка может быть null.

В #Kotlin - все тоже самое, только в одном методе.

#Код
В #Kotlin можно легко манипулировать коллекциями.
К примеру - вот метод, который позволяет перевести список в Map.

#Код
Где-то раз в неделю пощу примеры кода и то, как #Kotlin помогает жить #Android программисту.

А вот вам целая статейка на тему #Extension #Functions в Котлине. Очень мощная штука эти расширения. Но не следует ими злоупотреблять, иначе код может быть плохо читаем. Логически. Вроде все лаконично, но скрыто за многоуровневой абстракцией.

#Статьи https://bit.ly/3ei0rBG
Data Class широко (вы ведь правда их используете?) используемая фича в #Kotlin.

В статье рассматривают чем они хороши, какие ограничения и от какого boilerplate кода они вас могут избавить.

#Статьи https://bit.ly/38s6QJu
#Kotlin позволяет определять параметры по умолчанию даже в сигнатуре метода в интерфейсе. Удобно. Мощно.

#Код
Sealed классы в #Kotlin удобно использовать для менеджмента состояний. Удобно обрабатывать, расширять да и вообще использовать.

#Статьи https://bit.ly/38LKouV
#Sealed классы в #Kotlin можно четко использовать для описания состояний вместо #Enum. Такой вот перечислимый тип с возможностью передать параметры.

#Код
#Kotlin #Compose - с одной стороны декларативное описание #UI выглядит интересно, с другой - смущает смешиванием верстки и кода.

В статье показывается какие проблемы потенциально решаются с помощью Compose (не со всем согласен). Пример с бейджем и количеством - кажется его специально сделали максимально некрасивым 😉

Мне, по крайне мере пока, ближе old way создания интерфейсов через XML. Просто в таком случае я НЕ разделяю (логически) View (#Activity/#Fragment/Whatever) с разметкой #XML. ViewModel же ничего про верстку не знает.

А что думаете вы - декларативный или императивный подход описания UI?

#Статьи https://bit.ly/394LYqy
#Kotlin #Synthetic с недавнего времени deprecated. Вместо него можно использовать #ViewBinding.

Если используете Kotlin - то безболезненно перейти можно всего лишь добавив в нужные методы = with(binding). Всё что внутри блока можно вообще будет не трогать.

#Код
Иногда нужно создать пачку фейковых данных.
C #Kotlin это невероятно просто. И красиво.

Знаете как сделать лучше? Го в коменты.

#Код
Какое-то время #Код для маппинга у нас был через #Kotlin #Extension.
Проблемы начались в основном когда начали писать тесты. Экстеншены просто так не замокать. Переход на простые классы мапперов позволило писать более правильные, красивые и понятные тесты.