Why Android? 🌚 – Telegram
Why Android? 🌚
420 subscribers
217 photos
60 videos
10 files
250 links
"Why Android?" is an informal community to share with everyone personal development experience in different areas, latest news, or just talk about everything :)
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
Я долго думал как можно в Valkyrie сделать шаринг конфигурации иконок между командой.

Кейс простой: первый разработчик добавляет пак иконок, а второму, спустя время, надо в него добавить несколько новых.

Можно попробовать хранить всё в конфиг файле в репозитории, но там появляется момент с абсолютным путём для экспорта, нужно писать дополнительные проверки и логику.

И я подумал, зачем изобретать что-то, если у нас уже есть готовый 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. чтобы не спамить канал, буду кидать новые демки в комментарии
🔥151👍1
Релиз Valkyrie 0.7.0 с фичей по предпросмотру ImageVector в студии (по аналогии с SVG) 🌚

• Превью иконок в Backing и Lazy проперти стилях (#136)
• Поддержка превью Google Material иконок (хоть они и deprecated)
• Базовые экшены для изменения подложки иконки и зума (#151)
• Редизайн настроек (#157)

и поддержка K2 мода (начиная с IntelliJ IDEA 2024.2.1) 🙂
🔥13
Круто-круто, плагин используют в VK ❤️🌚

https://habr.com/ru/companies/vk/articles/840862/
9🔥3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
а че так можно было? 🌚
🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
Листал issues связанные с IntelliJ IDEA и попалась фича, о которой я не знал 😁

Если у вас MacBook, то вместо хоткея cmd+b можно использовать тачпад 🌚
Сильнее нажав, провалитесь либо в сорцы, либо в использование метода 🤫
👀12👍5🌚3
This media is not supported in your browser
VIEW IN TELEGRAM
Готовлю релиз новой версии Valkyrie с обновленным Simple Mode 🤓

из нового:
- поддержка вставки файла или текста иконки с буфера обмена
- возможность заренеймить иконку
- превью текущей иконки
🔥211
Раз у Valkyrie 400 ⭐️ звездочек, то держите небольшой анонс - CLI тула для конвертации 🌚🤓

пока на уровне прототипа 🌚
🔥15
Когда у нас на кмп проекте выкатили фичу с форматированием даты и времени на все таргеты через 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: Форматирование без учета локали!
🔥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
Хотите новость? 🌝
в macOS 15.2 обновили Safari и в нем теперь работает Compose WASM 🌚
👍14🔥52
This media is not supported in your browser
VIEW IN TELEGRAM
Начиная с IntelliJ IDEA 2025.1 EAP можно запускать адекватное Compose Preview прямо из commonMain и без всяких костылей 🌚

youtrack
🔥22👍1
Такой вот подарок от жены на 512 звёздочек в Valkyrie ☺️
🔥24
Интересный баг 🌚🌝

Перед новым годом тестировал поддержку 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
Она Он сказал да 😍🌚

Главная новость недели заключается в том, что в Valkyrie законтрибьютил разработчик, который тоже пишет свою конвертацию noscript/xml в ImageVector.

Я как-то натыкался на его решение, но особо не смотрел реализацию)
А тут глянул и немного офигел. Если коротко он написал свой кастомный мультиплатформенный парсер напрямую SVG -> ImageVector и XML -> ImageVector.

Ключевое и самое интересное это мультиплатформенный, потому что у меня давно есть идеи выйти за пределы плагина и запилить WASM/CMP приложение, но писать с нуля парсер нету времени.

Так вот, дальше всё как в тумане 🌚
Я создаю issue, пару дней взаимных подписок и обдумываний, в итоге он соглашается, я добавляю его в mainteiners и мы уже начали миграцию 😏
🔥12👍2😁1
Сделал прожарку канала через @ScratchAuthorEgoBot 😁

И да, пост пятничный🌚

Слушай, ты, наш главный "Иконочник" и "Навигатор" всея Руси, ну и затейник же ты! Вечно ты там что-то "киллер-фичами" называешь, а на деле просто пишешь то, что Google или JetBrains должны были сделать пять лет назад. И ладно бы молча, но нет же – сначала "подгорает", потом "сгораешь", а потом выпускаешь свою "Valkyrie", которая, конечно, лучше, но эмоций-то сколько! Тебе бы в стендап, а не в разработчики.

И этот твой смайлик 🌚 – это уже отдельная песня! Его больше, чем кода в твоих проектах. Кажется, если бы ты его не использовал, то сообщения просто не отправлялись бы. Он у тебя и вместо запятой, и вместо точки, и вместо мата, когда очередной баг ловишь. Вот кто твой личный мем-генератор? Или это у тебя встроенный эмодзи-плагин, который ты, конечно же, сам написал, потому что "на рынке не было нормальных решений"?

Твоя одержимость Compose – это что-то! Кажется, если бы тебе предложили выбрать между едой и новой фичей в Compose, ты бы голодал, но изучал бы "shared element transition" или "Lookahead". И эти постоянные "вечерние" и "пятничные" посты с мемами и всякой крипотой из Android SDK – ты что, забыл, что люди по пятницам отдыхают, а не сидят и не гуглят "SexualActivityRecord"? Или это твой способ убедиться, что никто не расслабляется, пока ты работаешь?

А эти твои "баги" – вечно ты вляпываешься в самые неочевидные. Ну кто, скажи на милость, додумается, что плагин не ставится из-за названия папки "idea-plugin", а не потому что ты что-то там накосячил?! И потом еще JetBrains виноваты. А то, что Koin issues закрывает, а не фиксит – ну это вообще святое! Сам-то небось тоже свои баги в Valkyrie так "фиксишь" – просто ждешь, пока люди перестанут на них жаловаться!

И еще ты любишь поныть, что "не было нормальных простых решений" – да ты сам эти "простые" решения потом так усложняешь, что тебе приходится свою навигацию писать, свою CLI тулу, и вообще весь мир переделывать под себя. В общем, ты наш местный супергерой, который спасает мир от "консольной шляпы" и "ужасного выравнивания", но в процессе сам же и генерирует новые мемы для нашего чатика! Ну а что, главное, чтобы "по фактам", да? 🌚
🤣11