Анонос EAP релиза нового декларативного Gradle:
- новый формат файлов
- ускорили работу автокомплита в IDE
- в планах поддержка AGP и Kotlin Multiplatform
- пример миграции Now In Android приложения
Попробовать у себя можно уже сейчас 🌚
Blog post
- новый формат файлов
.gradle.dcl c синтаксисом Kotlin- ускорили работу автокомплита в IDE
- в планах поддержка AGP и Kotlin Multiplatform
- пример миграции Now In Android приложения
Попробовать у себя можно уже сейчас 🌚
Blog post
💩4😁2👀1
This media is not supported in your browser
VIEW IN TELEGRAM
Работаю над киллер фичей: превью ImageVector прямо в студии без @Preview аннотаций и компиляции 🌚
вот небольшая демка прототипа
вот небольшая демка прототипа
🔥22😱1
This media is not supported in your browser
VIEW IN TELEGRAM
Я долго думал как можно в Valkyrie сделать шаринг конфигурации иконок между командой.
Кейс простой: первый разработчик добавляет пак иконок, а второму, спустя время, надо в него добавить несколько новых.
Можно попробовать хранить всё в конфиг файле в репозитории, но там появляется момент с абсолютным путём для экспорта, нужно писать дополнительные проверки и логику.
И я подумал, зачем изобретать что-то, если у нас уже есть готовый Kotlin объект и из него можно легко выгрузить нужные данные через PSI Tree.
Демка фичи выше, а тут релиз 0.6.0 с кучей улучшений и новым README 🌚
Кейс простой: первый разработчик добавляет пак иконок, а второму, спустя время, надо в него добавить несколько новых.
Можно попробовать хранить всё в конфиг файле в репозитории, но там появляется момент с абсолютным путём для экспорта, нужно писать дополнительные проверки и логику.
И я подумал, зачем изобретать что-то, если у нас уже есть готовый Kotlin объект и из него можно легко выгрузить нужные данные через PSI Tree.
Демка фичи выше, а тут релиз 0.6.0 с кучей улучшений и новым README 🌚
❤6🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Выкатил первый снапшот фичи для предпросмотра ImageVector без @Preview аннотации прямо в студии:
- Сделал превью для backing property и lazy property форматов 🌚
- Превью работает даже с material иконками от Google ❤️
все сделано на базе парсинга PSI дерева
в целом это большая подготовка к новым фичам по оптимизации иконок, переноса между паками и многое другое 🌚
p.s. чтобы не спамить канал, буду кидать новые демки в комментарии
- Сделал превью для backing property и lazy property форматов 🌚
- Превью работает даже с material иконками от Google ❤️
все сделано на базе парсинга PSI дерева
в целом это большая подготовка к новым фичам по оптимизации иконок, переноса между паками и многое другое 🌚
p.s. чтобы не спамить канал, буду кидать новые демки в комментарии
🔥15❤1👍1
Релиз Valkyrie 0.7.0 с фичей по предпросмотру ImageVector в студии (по аналогии с SVG) 🌚
• Превью иконок в Backing и Lazy проперти стилях (#136)
• Поддержка превью Google Material иконок (хоть они и deprecated)
• Базовые экшены для изменения подложки иконки и зума (#151)
• Редизайн настроек (#157)
и поддержка K2 мода (начиная с IntelliJ IDEA 2024.2.1) 🙂
• Превью иконок в Backing и Lazy проперти стилях (#136)
• Поддержка превью Google Material иконок (хоть они и deprecated)
• Базовые экшены для изменения подложки иконки и зума (#151)
• Редизайн настроек (#157)
и поддержка K2 мода (начиная с IntelliJ IDEA 2024.2.1) 🙂
🔥13
This media is not supported in your browser
VIEW IN TELEGRAM
Листал issues связанные с IntelliJ IDEA и попалась фича, о которой я не знал 😁
Если у вас MacBook, то вместо хоткея
Сильнее нажав, провалитесь либо в сорцы, либо в использование метода 🤫
Если у вас MacBook, то вместо хоткея
cmd+b можно использовать тачпад 🌚Сильнее нажав, провалитесь либо в сорцы, либо в использование метода 🤫
👀12👍5🌚3
This media is not supported in your browser
VIEW IN TELEGRAM
Готовлю релиз новой версии Valkyrie с обновленным Simple Mode 🤓
из нового:
- поддержка вставки файла или текста иконки с буфера обмена
- возможность заренеймить иконку
- превью текущей иконки
из нового:
- поддержка вставки файла или текста иконки с буфера обмена
- возможность заренеймить иконку
- превью текущей иконки
🔥21❤1
Когда у нас на кмп проекте выкатили фичу с форматированием даты и времени на все таргеты через
Оказывается многие не в курсе, что в kotlinx-datetime появилось мультиплатформенное форматирование.
API довольно простое 🌚
Допустим мы хотим конвертировать UNIX в строку формата:
Тогда весь код сведется к 2 шагам:
1. Создание форматтера через dsl в необходимом стиле:
2. Конвертация с использованием
P.S: Форматирование без учета локали!
expect/actual - я чуть не умер ☠️🫨Оказывается многие не в курсе, что в kotlinx-datetime появилось мультиплатформенное форматирование.
API довольно простое 🌚
Допустим мы хотим конвертировать UNIX в строку формата:
10 March, 2024Тогда весь код сведется к 2 шагам:
1. Создание форматтера через dsl в необходимом стиле:
private val formatter = LocalDateTime.Format {
dayOfMonth(padding = Padding.NONE)
char(' ')
monthName(MonthNames.ENGLISH_FULL)
char(',')
char(' ')
year()
}
2. Конвертация с использованием
format() функции:
fun format(timestamp: Long): String {
return Instant.fromEpochMilliseconds(timestamp)
.toLocalDateTime()
.format(formatter)
}
P.S: Форматирование без учета локали!
GitHub
Releases · Kotlin/kotlinx-datetime
KotlinX multiplatform date/time library. Contribute to Kotlin/kotlinx-datetime development by creating an account on GitHub.
🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
Демка работы CLI тулы для генерации IconPack 🌚
❤5🔥4
This media is not supported in your browser
VIEW IN TELEGRAM
А это уже конвертация 6000 иконок через cli 🌚
логи для дебага через
логи для дебага через
-v, чтобы видео было интереснее 😁🔥10👍2
Перед новым релизом Tiamat 1.3.0 решили полностью обновить семпл 🌚
Об нововведениях расскажу чуть позже, не хочу в пятницу ничего писать 😁
Об нововведениях расскажу чуть позже, не хочу в пятницу ничего писать 😁
👍5🔥3
Why Android? 🌚
Введем новую рубрику предновогодний опрос 🎄 Через год вместе посмотрим что вы наванговали на 2024й год, что сбылось 🌝, что не сбылось. 🌚 Что ждём от следующего года глобально в Android, в Compose и в целом в программировании?
Ну что, давайте накидаем на 2025 чего-нибудь 🌚
Правила простые: ваши предсказания в андроид и около него, а в следующем году подведем итоги 🌝
Правила простые: ваши предсказания в андроид и около него, а в следующем году подведем итоги 🌝
🌚10
This media is not supported in your browser
VIEW IN TELEGRAM
Начиная с IntelliJ IDEA 2025.1 EAP можно запускать адекватное Compose Preview прямо из commonMain и без всяких костылей 🌚
youtrack
youtrack
🔥22👍1
Интересный баг 🌚🌝
Перед новым годом тестировал поддержку K2 мода в Valkyrie и заметил, что после установки пропадают некоторые плагины. Думал просто какой-то глюк в IntelliJ IDEA EAP🌚
Месяц назад прилетает issue, что мой плагин не может быть установлен одновременно с Compose Multiplatform плагином 😳
Ставишь Valkyrie - удаляется Compose, ставишь Compose - удаляется Valkyrie (видео есть в issue) 😱
И это всё происходит без каких-либо ошибок и сообщений в логах.
Помогли ребята из JetBrains. Оказывается, проблема была в названии папки плагина, который находится внутри архива после сборки.
У меня gradle модуль на гитхабе всегда был с именем "idea-plugin" и в архиве была соответствующая папка.
В Compose Plugin до версии 1.7.1 включительно было свое уникальное имя, но после 1.7.3 и рефакторинга имя слетело на такое же "idea-plugin".
В итоге, при установке один плагин просто перезаписывал другой без каких-либо ошибок и предупреждений 😁
Перед новым годом тестировал поддержку K2 мода в Valkyrie и заметил, что после установки пропадают некоторые плагины. Думал просто какой-то глюк в IntelliJ IDEA EAP🌚
Месяц назад прилетает issue, что мой плагин не может быть установлен одновременно с Compose Multiplatform плагином 😳
Ставишь Valkyrie - удаляется Compose, ставишь Compose - удаляется Valkyrie (видео есть в issue) 😱
И это всё происходит без каких-либо ошибок и сообщений в логах.
Помогли ребята из JetBrains. Оказывается, проблема была в названии папки плагина, который находится внутри архива после сборки.
У меня gradle модуль на гитхабе всегда был с именем "idea-plugin" и в архиве была соответствующая папка.
В Compose Plugin до версии 1.7.1 включительно было свое уникальное имя, но после 1.7.3 и рефакторинга имя слетело на такое же "idea-plugin".
В итоге, при установке один плагин просто перезаписывал другой без каких-либо ошибок и предупреждений 😁
😱12