A bit deeper – Telegram
A bit deeper
203 subscribers
23 photos
2 videos
28 links
Админ: @ilyagulya
Английская версия: @abitdeeper_en
Download Telegram
Channel created
Т.к. мне надоело форвардить интересную инфу каждому по отдельности, сделал канал 🙂
Channel name was changed to «Caffeine & Code»
Channel photo updated
Всем привет!
Это Илья Гуля 🙂 (@ilyagulya)
Уже несколько лет у меня появляются мысли о том что я хочу в каком-то виде заниматься блогерством или около него.
Также, достаточно часто у меня возникает потребность поделиться какими-то интересными инструментами, мемами, событиями из моей жизни.
В связи с этим я решил наконец начать делать попытки двигаться в эту сторону.
Таким образом, я возрождаю и переквалифицирую этот канал в мой личный блог обо всём.
Посмотрим, сколько продлится эта попытка 🙂
Добро пожаловать!
👍3
Подрубил в канале комментарии к постам
👍1
С этой недели начинает сбываться моя давняя мечта - работать не 5 дней в неделю, а поменьше.
Пока что сбывается она вынужденно (из-за проблем со здоровьем), но всё равно я доволен, очень надеюсь что это повысит продуктивность и качество жизни 🙂
Работать теперь буду 4 дня в неделю, с перерывом в среду 🙂

(на картинке изображён wednesday holiday по мнению Midjourney)
👍1
#android #kotlin #compiler
Уже больше года я использую в своих проектах библиотеку с иммутабельными коллекциями для Kotlin.
Всё радует, всем рекомендую, иммутабельность - залог отсутствия боли при дебаге 🙂

Однако была проблема - у меня в проекте много где ещё используется сериализация доменных сущностей в Bundle.
Соответственно, их нужно делать Parcelable.
И этот факт добавляет большую проблему - kotlinx-parcelize плагин (который даёт нам возможность аннотацией @Parcelize сгенерить реализацию Parcelable для класса) не поддерживает эти иммутабельные коллекции.

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

По сути всё что нужно было сделать - добавить генерацию вызова ,toPersistent(List|Set|Map) тогда когда нужно.
Ну и по пути порефакторил ещё слегка.
А сегодня наконец-то случился мердж моего пулл реквеста! (https://github.com/JetBrains/kotlin/pull/5184#issuecomment-1743915972)

Так что я теперь официально могу называть себя контрибутором в компилятор котлина 😁)

Вероятно в Kotlin 2.0 Beta 1 мой контрибушен будет доступен всем пользователям.
5