RSS ленты
Скопировано в буфер обмена

Лента

JetBrains только что анонсировала новую IDE под названием Fleet. Я исследовал внутрянку установщика и рантайма этой IDE: Это просто форк JetBrains Fleet с изменением UI небольшими и редизайном под агентное программирование. Написано на Kotlin + Compose Multiplatform. Для рендеринга используется Skiko.

И у меня для вас другая прекрасная новость. С Kotlin 2.3 вам придется выключить configure on demand, если у вас есть JS target, значительно замедляя время конфигурации. Это просто… опять же у меня нет слов. У команды Kotlin был баг, и они решили его пофиксить, сделав ошибку билда, пока не выключишь configure on demand. Ключевую фичу, ускоряющую Gradle конфигурацию. https://youtrack.jetbrains.com/issue/KT-40822. 🤡

Обновил зависимости в Respawn. Новая версия AGP деприкейтнула старый android плагин. А в новом плагине нет билд тайпов, то есть нет флага BuildConfig.DEBUG. Нет флейворов, нет вообще кодогенерации, нельзя делать плейсхолдеры для ресурсов, и даже тесты по умолчанию не включены. Мне нужно мой глобальный флаг isDebuggable, который я использую в сотнях и сотнях мест, теперь выпиливать, и простой апгрейд андроид градел плагина, как всегда, превратился в миграцию на 2000 строк кода, кодексом, который уже этим пытается заниматься два с половиной часа. У меня нет слов. ОБЯЗАТЕЛЬНО до апдейта на AGP 9.0 (щас УЖЕ в бете), уберите ВСЕ использования BuildConfig из всех модулей кроме :app. В 9.0 тупо перестанет собираться проект уже.

Вторая классная новость – это то, что на прошлой неделе вышел Junie CLI версия, то есть очередной агент для программирования консольный. И я буду тестировать на выхых и вам все отпишу, но сначала статью по кодексу vs Claude. Мне крайне интересно, как выглядит TUI написанный на Kotlin и как он работает.

Сегодня вышел Перплексити под Андроид, точнее вчера вечером получил имейл. Пока не уверен, переходить ли на него, потому что отвалится синхронизация с Гуглом и управление паролями. Но думаю, новость очень хорошая. Протестирую есть ли там агентный режим и отпишу.

НИКОГДА не используйте функцию MutableStateFlow.update в своём Kotlin коде там, где он не идемпотентный. Эта функция запустит бесконечный цикл, который сравнивает старое состояние с новым, и если они не совпадают, весь код, который вы написали в лямбде, будет выполнен повторно. Поверьте, вам это не нужно, когда код снимает деньги со счёта клиента.

Команда Compose депрекейтнули resource accessors для Compose Gradle plugin в версии 1.10-beta. Я никогда не понимал, зачем они нужны. Мб это было для удобства и чтобы выглядеть круто, но теперь мне исправлять 50+ deprecations в 5+ проектах. Почему они их депрекейтнули, хз. Ну, пора снова завалить Claude работой полагаю 🤷🏻.

https://github.com/JetBrains/compose-multiplatform/pull/5462

В релизе 1.10.0-beta01 Compose Multiplatform компания JetBrains добавила возможность отрисовки Compose UI ниже UIKit UI, что означает, что теперь мы можем реализовывать liquid glass компоненты как обычные нативные представления без всех багов и хаков, которые нам раньше приходилось использовать, например инвертирование связи. Это должно сделать внедрение liquid glass невероятно простым теперь.

https://github.com/JetBrains/compose-multiplatform-core/pull/2501

Ребята, интересное обновление. Как вы уже можете видеть, я начал делать небольшие посты чаще. Это потому, что я создал новый отдельный раздел на своем сайте под названием Feed. Все посты теперь переводятся на английский и русский языки автоматически. И вы можете просматривать их в двух версиях на сайте или подписаться на них через RSS feed. Они также теперь публикуются на Twitter, Telegram и еще куда-то автоматически для меня. Так что создавать контент никогда не было для меня так легко. Каждый раз, когда у меня есть для вас какая-то мудрость, я могу поделиться ею за минуту.

В последнем обновлении Claude добавили plan sub-agent, но plan sub-agent — это просто дубликат explore sub-agent. Очевидно, это баг, я уже создал issue на GitHub и он будет исправлен в ближайшее время. Пока что я переименовал своего feature planner agent в plan, чтобы он перекрыл сломанный plan sub-agent моим собственным кастомным agent, который работает лучше в любом случае.