Why Android? 🌚 – Telegram
Why Android? 🌚
419 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
если баг репорты - то только такие 🌚

Issue
😁10
Анонос EAP релиза нового декларативного Gradle:
- новый формат файлов .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 🌚
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