Т.к. мне надоело форвардить интересную инфу каждому по отдельности, сделал канал 🙂
Подробно о том как работает Jetpack Compose внутри от одного из его разработчиков.
https://www.youtube.com/watch?v=6BRlI5zfCCk
https://www.youtube.com/watch?v=6BRlI5zfCCk
YouTube
KotlinConf 2019: The Compose Runtime, Demystified by Leland Richardson
Recording brought to you by American Express. https://americanexpress.io/kotlin-jobs
Jetpack Compose is an ambitious multi-team effort to reimagine Android's UI Toolkit more than 10 years after the Android Platform launched with the original UI Toolkit.
…
Jetpack Compose is an ambitious multi-team effort to reimagine Android's UI Toolkit more than 10 years after the Android Platform launched with the original UI Toolkit.
…
Канал про декларативный UI в Android
https://news.1rj.ru/str/android_declarative
https://news.1rj.ru/str/android_declarative
Telegram
Android Declarative
Чат русскоязычного Android-сообщества, посвящённый декларативным UI-фреймворкам, таким как Jetpack Compose и другим.
📌 Для жалоб на спам - используйте команду /report
🚫 За оффтоп - бан и отправка в @android_ru
🧪 @xofftop - бета-чат для оффтопа
📌 Для жалоб на спам - используйте команду /report
🚫 За оффтоп - бан и отправка в @android_ru
🧪 @xofftop - бета-чат для оффтопа
Всем привет!
Это Илья Гуля 🙂 (@ilyagulya)
Уже несколько лет у меня появляются мысли о том что я хочу в каком-то виде заниматься блогерством или около него.
Также, достаточно часто у меня возникает потребность поделиться какими-то интересными инструментами, мемами, событиями из моей жизни.
В связи с этим я решил наконец начать делать попытки двигаться в эту сторону.
Таким образом, я возрождаю и переквалифицирую этот канал в мой личный блог обо всём.
Посмотрим, сколько продлится эта попытка 🙂
Добро пожаловать!
Это Илья Гуля 🙂 (@ilyagulya)
Уже несколько лет у меня появляются мысли о том что я хочу в каком-то виде заниматься блогерством или около него.
Также, достаточно часто у меня возникает потребность поделиться какими-то интересными инструментами, мемами, событиями из моей жизни.
В связи с этим я решил наконец начать делать попытки двигаться в эту сторону.
Таким образом, я возрождаю и переквалифицирую этот канал в мой личный блог обо всём.
Посмотрим, сколько продлится эта попытка 🙂
Добро пожаловать!
👍3
С этой недели начинает сбываться моя давняя мечта - работать не 5 дней в неделю, а поменьше.
Пока что сбывается она вынужденно (из-за проблем со здоровьем), но всё равно я доволен, очень надеюсь что это повысит продуктивность и качество жизни 🙂
Работать теперь буду 4 дня в неделю, с перерывом в среду 🙂
(на картинке изображён
Пока что сбывается она вынужденно (из-за проблем со здоровьем), но всё равно я доволен, очень надеюсь что это повысит продуктивность и качество жизни 🙂
Работать теперь буду 4 дня в неделю, с перерывом в среду 🙂
(на картинке изображён
wednesday holiday по мнению Midjourney)👍1
#android #kotlin #compiler
Уже больше года я использую в своих проектах библиотеку с иммутабельными коллекциями для Kotlin.
Всё радует, всем рекомендую, иммутабельность - залог отсутствия боли при дебаге 🙂
Однако была проблема - у меня в проекте много где ещё используется сериализация доменных сущностей в
Соответственно, их нужно делать
И этот факт добавляет большую проблему -
Я с этим мирился до начала сентября, когда решил взять дело в свои руки и запилил эту поддержку самостоятельно.
Весь процесс был не сильно сложным, но жутко интересным, рекомендую покопаться в компиляторе котлина на досуге 🙂
По сути всё что нужно было сделать - добавить генерацию вызова
Ну и по пути порефакторил ещё слегка.
А сегодня наконец-то случился мердж моего пулл реквеста! (https://github.com/JetBrains/kotlin/pull/5184#issuecomment-1743915972)
Так что я теперь официально могу называть себя контрибутором в компилятор котлина 😁)
Вероятно в Kotlin 2.0 Beta 1 мой контрибушен будет доступен всем пользователям.
Уже больше года я использую в своих проектах библиотеку с иммутабельными коллекциями для 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
А ещё для поста выше пришлось таки купить подписку в телеге, оказывается тут есть ограничение на количество символов в постах с медиаконтентом.
Так что премиумные подписчики теперь могут БУСТИТЬ этот канал.
Велкам, если есть желание 🙂
Так что премиумные подписчики теперь могут БУСТИТЬ этот канал.
Велкам, если есть желание 🙂
#kotlin #compiler
Заметка для себя в будущем, но пригодится и вам, если вдруг придётся подебажить компилятор котлина в реальном проекте, использующем
Для того чтобы подключиться дебаггером к компилятору котлина вам нужно:
Подготовить проект котлина
1. Склонировать репозиторий котлина
2. Переключиться в гите на тег использующейся в вашем проекте версии котлина:
3. На сегодняшний день обязательно нужно отрубить поддержку Java 1.6/1.7, добавив в
Подготовить ваш проект к дебагу
1. Сделать всё как описано в гайде Gradle по дебагу билд логики
2. Добавить в
3. Остановить все демоны
Теперь любой билд запущенный в вашем проекте можно будет продебажить из IDE в которой у вас открыт проект компилятора.
При следующем запуске любой
Заметка для себя в будущем, но пригодится и вам, если вдруг придётся подебажить компилятор котлина в реальном проекте, использующем
Gradle.Для того чтобы подключиться дебаггером к компилятору котлина вам нужно:
Подготовить проект котлина
1. Склонировать репозиторий котлина
2. Переключиться в гите на тег использующейся в вашем проекте версии котлина:
v1.8.20 или другой.3. На сегодняшний день обязательно нужно отрубить поддержку Java 1.6/1.7, добавив в
local.properties cледующую строку:kotlin.build.isObsoleteJdkOverrideEnabled=true4. Открыть проект котлина в IDE (IDEA / Android Studio).
Подготовить ваш проект к дебагу
1. Сделать всё как описано в гайде Gradle по дебагу билд логики
2. Добавить в
local.properties конфигурацию для компилятора котлина, которая говорит ему запускаться внутри процесса Gradle: kotlin.compiler.execution.strategy=in-processТаким образом, вы, подключившись дебаггером к Gradle, сможете дебажить ещё и компилятор котлина.
3. Остановить все демоны
Gradle прежде чем дебаг заработает:./gradlew --stopВ целом это всё, вы великолепны!
Теперь любой билд запущенный в вашем проекте можно будет продебажить из IDE в которой у вас открыт проект компилятора.
При следующем запуске любой
Gradle таски в вашем проекте Gradle будет ожидать дебаггер, прежде чем начать любую работу.⚡2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
На просторах твиттера нашёл офигенную штуку - безопасные треугольники при разработке popup менюшек.
Если применить такой алгоритм, то юзеру будет намного более комфортно взаимодействивать с подменю.
Без лишних слов, всё достаточно очевидно по видео.
Вот статья про подход
Кстати, В IDE от JetBrains такое поддерживается с февраля 2022
Если применить такой алгоритм, то юзеру будет намного более комфортно взаимодействивать с подменю.
Без лишних слов, всё достаточно очевидно по видео.
Вот статья про подход
Кстати, В IDE от JetBrains такое поддерживается с февраля 2022
🔥5
#intellij #internals
Исправлял сейчас баг в автоматическом форматтере котлина.
В процессе пришлось много изучать внутренности Intellij IDEA.
Собственно, мне показалось интересным то, как выглядят тесты на перемещение каретки.
Той самой, что показывает положение в тексте.
Первый скрин это состояние до.
Второй скрин это состояние которое ожидается после нажатия клавиши Enter.
Тег
А вот сам фикс, если кому интересно (второй коммит, первый делал человек который пытался починить до меня)
https://github.com/JetBrains/intellij-community/pull/2156
Исправлял сейчас баг в автоматическом форматтере котлина.
В процессе пришлось много изучать внутренности Intellij IDEA.
Собственно, мне показалось интересным то, как выглядят тесты на перемещение каретки.
Той самой, что показывает положение в тексте.
Первый скрин это состояние до.
Второй скрин это состояние которое ожидается после нажатия клавиши Enter.
Тег
<caret>, собственно, говорит тестовому фреймворку где изначально стояла каретка, и где она ожидается после нажатия Enter.А вот сам фикс, если кому интересно (второй коммит, первый делал человек который пытался починить до меня)
https://github.com/JetBrains/intellij-community/pull/2156
А вот и бета котлина с моей фичой 😁
https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta1
https://github.com/JetBrains/kotlin/releases/tag/v2.0.0-Beta1
🔥10🤯1
Небольшой апдейт!
В данный момент занимаюсь достаточно масштабным проектом для самообразования.
Пишу собственную реализацию виртуальной машины Dalvik на языке Rust. 🙂
По пути набирается достаточно много контента для блогпостов, так что в скором времени тут будет первая статья из цикла про Dalvik VM.
Статья будет у меня в блоге, а тут краткая выжимка и ссылка на статью.
Попутно делаю ребрендинг. Канал и блог теперь называются "A bit deeper" - таким образом пытаюсь подчеркнуть что я стараюсь писать контент как минимум чуть более глубокий чем большая часть условного "контента с медиума" или современного хабра.
В данный момент занимаюсь достаточно масштабным проектом для самообразования.
Пишу собственную реализацию виртуальной машины Dalvik на языке Rust. 🙂
По пути набирается достаточно много контента для блогпостов, так что в скором времени тут будет первая статья из цикла про Dalvik VM.
Статья будет у меня в блоге, а тут краткая выжимка и ссылка на статью.
Попутно делаю ребрендинг. Канал и блог теперь называются "A bit deeper" - таким образом пытаюсь подчеркнуть что я стараюсь писать контент как минимум чуть более глубокий чем большая часть условного "контента с медиума" или современного хабра.
👏4❤3⚡1💩1
