🤯 Dagger Hilt блокирует переход на AGP 9.0
Android Gradle Plugin 9.0 официально зафиксировал новый стабильный конфигурационный API (вышла стабильная версия с релизом AS Otter FD 3) — это одно из самых значимых изменений в инфраструктуре Android и Kotlin Multiplatform за последние годы. Цели понятны и правильные лучше работа с кэшем и общая скорость сборок. Подробнее про все изменения я писал в отдельном посте
Google несколько релизов подряд аккуратно готовил экосистему к этому переходу, заранее добавив новый API и дав время авторам плагинов адаптироваться. Но на практике всё упирается в плагины.
Я столкнулся с тем, что Gradle-плагин Dagger Hilt до сих пор использует старую модель конфигурации и несовместим с новым DSL из AGP 9.0. В результате проект нельзя перевести на новую версию без отключения Hilt или включения режим совместимости. Иронично, что именно официальный инструмент от Google сейчас становится блокером для обновления.
Да, в AGP оставили compatibility-флаги, позволяющие продолжать сборку по старым правилам. Это спасает проекты от немедленного падения, но полностью отключает все ключевые преимущества AGP 9.0 — configuration cache, ускоренную конфигурацию и новую модель плагинов.
💬 Вы уже пробовали миграцию на AGP 9.0? Что блокирует? Делитесь в комментариях мнением.
UPD. По заявлениям подписчиков также есть проблемы в работе KAPT и KSP
#Android #AndroidDev #Gradle #Dagger #Hilt
UPD. 21 января вышел Dagger 2.59 с поддержкой AGP
Android Gradle Plugin 9.0 официально зафиксировал новый стабильный конфигурационный API (вышла стабильная версия с релизом AS Otter FD 3) — это одно из самых значимых изменений в инфраструктуре Android и Kotlin Multiplatform за последние годы. Цели понятны и правильные лучше работа с кэшем и общая скорость сборок. Подробнее про все изменения я писал в отдельном посте
Google несколько релизов подряд аккуратно готовил экосистему к этому переходу, заранее добавив новый API и дав время авторам плагинов адаптироваться. Но на практике всё упирается в плагины.
Я столкнулся с тем, что Gradle-плагин Dagger Hilt до сих пор использует старую модель конфигурации и несовместим с новым DSL из AGP 9.0. В результате проект нельзя перевести на новую версию без отключения Hilt или включения режим совместимости. Иронично, что именно официальный инструмент от Google сейчас становится блокером для обновления.
Да, в AGP оставили compatibility-флаги, позволяющие продолжать сборку по старым правилам. Это спасает проекты от немедленного падения, но полностью отключает все ключевые преимущества AGP 9.0 — configuration cache, ускоренную конфигурацию и новую модель плагинов.
UPD. По заявлениям подписчиков также есть проблемы в работе KAPT и KSP
#Android #AndroidDev #Gradle #Dagger #Hilt
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯34👎6❤3👍2🎉1
This media is not supported in your browser
VIEW IN TELEGRAM
Инженеры из Block (бывший Square) открыли исходники Trailblaze — фреймворка, который позволяет писать Android UI-тесты на естественном языке.
Идея заключается в том, чтобы вместо классического "найди кнопку по id, кликни, проверь текст" пишешь: "Открой экран профиля, измени имя на John, сохрани изменения". AI-агент сам понимает, как это сделать.
Как это работает:
👉 Встраивается в обычные instrumentation-тесты
👉 Под капотом используется Maestro для отправления UI команд
👉 Под капотом использует кастомный on-device драйвер для Maestro
👉 Можно расширять функциональность через свои TrailblazeTool
👉 Генерирует детальные отчёты с трейсами выполнения
👉 Можно использовать разные модели через провайдеров
// Пример теста
@Test
fun myTest() {
trailblaze.execute(
"""
Open profile,
change name to John,
save
"""
)
}
Подход не заставляет перестраивать CI/CD с нуля — используешь существующую инфраструктуру (Gradle, Espresso, UiAutomator). Постепенное внедрение AI-тестов рядом с обычными.
Проект свежий, но за ним стоит опыт команды из крупной финтех-компании. Посмотрим, как будет развиваться.
📄 Документация
#AI #тестирование
Please open Telegram to view this post
VIEW IN TELEGRAM
❤17👎15🔥9👍2
В Ergostol решили прокачать ваши рабочие места 🔧✨
Открыт предзаказ со скидкой –20% на обновлённый хит Ergostol Optima 3.0 и станцию продуктивности Ergostol Combo в интернет‑магазине ergostol.ru 🚀
Optima 3.0 — регулируемый стол с облегчённой рамой и пультом нового поколения:
🔵 3 запоминаемые высоты
🔵 защита от детей
🔵 гироскоп от столкновений
🔵 USB Type‑C для зарядки гаджетов 💡
Combo — рабочая станция с регулировкой по высоте, выдвижным ящиком, таймером активности и USB‑портами для ваших устройств 📚⚡️
🎁 С промокодом
Не тяните, предзаказ по суперцене действует ограниченное время 🆕📦
Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262
Открыт предзаказ со скидкой –20% на обновлённый хит Ergostol Optima 3.0 и станцию продуктивности Ergostol Combo в интернет‑магазине ergostol.ru 🚀
Optima 3.0 — регулируемый стол с облегчённой рамой и пультом нового поколения:
Combo — рабочая станция с регулировкой по высоте, выдвижным ящиком, таймером активности и USB‑портами для ваших устройств 📚⚡️
🎁 С промокодом
ANDROID10 — ещё –10% на все столы и опции к ним! Не тяните, предзаказ по суперцене действует ограниченное время 🆕📦
Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262
Please open Telegram to view this post
VIEW IN TELEGRAM
👎23🔥5👍2
PiP на Android долго был зоопарком: разный API на версиях, разный UI‑стейт, много
if (SDK_INT…) и бойлерплейта. Новая Jetpack‑библиотека androidx.core:core-pip как раз и создана, чтобы это спрятать: она выравнивает вызовы PiP между версиями Android, даёт единый способ задавать параметры (особенно для видео/плееров), объединяет разрозненные колбэки состояния PiP и уменьшает количество кода за счёт готовых пресетов действий для типовых сценариев.Требования: обновляем Activity
Чтобы всё это заработало, мало просто подключить
core-pip — нужно обновиться до свежей Activity 1.13.0 (пока в альфе). В этой версии есть новые API для отслеживания состояния PiP (PictureInPictureUiStateCompat и слушатели), на которых удобно строить логику поведения UI, когда окно уходит в PiP или, например, «прячется» в угол.// Пример кода: реагируем на состояние PiP
class PlayerActivity : ComponentActivity() {
private val pipUiStateListener =
Consumer<PictureInPictureUiStateCompat> { state ->
if (state.isStashed) {
/* спрятать контролы плеера */
} else {
/* показать контролы плеера */
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ... инициализация UI / плеера ...
addOnPictureInPictureUiStateChangedListener(pipUiStateListener)
}
override fun onDestroy() {
removeOnPictureInPictureUiStateChangedListener(pipUiStateListener)
super.onDestroy()
}
}
🔗 Подробности про библиотека в документации
#Android #AndroidDev #AndroidJetpack #PIP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍45🔥9👎6❤1
На скриншоте к посту Linux, запущенный на Pixel Tablet.
#Android #Linux
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥39👎4🤔4👍2❤1
Android Broadcast
🤯 Dagger Hilt блокирует переход на AGP 9.0 UPD. 21 января вышел Dagger 2.59 с поддержкой AGP Android Gradle Plugin 9.0 официально зафиксировал новый стабильный конфигурационный API (вышла стабильная версия с релизом AS Otter FD 3) — это одно из самых значимых…
🔥 В Dagger 2.59 добавили поддержку AGP 9.0. Одним блокером для миграции на AGP 9.0 стало меньше
#Android #Gradle
#Android #Gradle
🔥50👍16👎5🤯2🎉1
Android Broadcast
🔥 В Dagger 2.59 добавили поддержку AGP 9.0. Одним блокером для миграции на AGP 9.0 стало меньше #Android #Gradle
Сразу после выхода Dagger с поддержкой AGP стал пробовать миграцию на AGP 9.0. Блокером послужил baselineprofile Gradle plugin. Текущая его стабильная версия 1.4.1 не поддерживает новый DSL, но зато альфа версия 1.5.0-alpha01 (вышла 17 декабря 2025) уже работает.
Учитывая, что это не влияет на код в рантайте, то я бы обновился в проде.
#Android #Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍9👎7🔥3
Современный флагманский смартфон — это система из взаимосвязанных компонентов:
- Большой экран с высоким разрешением и 120+ Гц
- Мощная камера с 4K/60FPS видео и многокадровой обработкой
- On-device ИИ без интернета
- Топовый процессор от Qualcomm
Когда ты покупаешь такой телефон, ты ожидаешь, что ничего не будет тормозить. И вот беда — для этого нужна оперативная память. Много....
Помните, когда Google представили Pixel 8? Фишка была в том, что ИИ работает прямо на устройстве, без облака. Звучало отлично. Но Pixel 8 получил эту фичу только в виде бета-версии. Полноценно она работала только на Pixel 8 Pro.
Причина одна: памяти не хватает.
Pixel 8 Pro имеет 12 ГБ оперативной памяти. Pixel 8 имеет 8 ГБ. Разница в одной цифре, но это критично.
Вот как распределяется память:
- Android ОС: 4 ГБ (обязательно)
- Google Play Services: 1 ГБ (постоянно работает)
- Фоновые процессы: 2-3 ГБ (система держит приложения в памяти)
- On-device ИИ: 3-4 ГБ (чтобы работал всегда готов)
Итого базовые: 12 ГБ
На Pixel 8 просто нечем запустить ИИ, не ломая остальное. На Pixel 8 Pro есть запас. Вот и вся история.
Кстати, есть ещё один момент, который все игнорируют. Разработчики приложений не спешат оптимизировать код.
Почему? Потому что нет критических проблем или потерь репутации. Это затратно — нужны хорошие специалисты, исследования, тестирование. А пока приложение “вроде работает”, зачем?
Разработчики рассчитывают, что пользователь просто купит себе телефон мощнее. Это же работает в разработке игр — выпустил требования на RTX 4080, и всё, проблема решена.
Но со смартфонами этот сценарий начинает ломаться.
Сейчас происходит кризис памяти. AI серверы пожирают DRAM как не в себя. Цены растут. Производители уже обсуждают, как урезать объём памяти в 2026-м году.
И вот здесь наступает проблема: мы больше не сможем рассчитывать на стабильный рост памяти каждые 5 лет. Это становится роскошью.
Вопрос: что будет с телефонами? Память станет сдерживающим фактором всего развития. Флагманы смогут подороже продаваться с запасом памяти — да, давай по 16-20 ГБ и цена выше. Но бюджетный сегмент начнёт деградировать. Samsung выпускает серию A годами с одними и теми же характеристиками, только наименование меняет. Народ покупает — что ещё им остаётся? И то что телефон лагает — это уже проблема пользователя.
🤔 Вывод: память — это потолок на развитие
Всё, что мы видим в смартфонах, ограничено одной переменной: количеством оперативной памяти.
- Больше памяти → можно добавить ИИ
- Больше памяти → можно поднять разрешение экрана
- Больше памяти → можно оставить больше приложений в фоне
- Больше памяти → можно записывать 8K видео без подвисаний
Без памяти все эти фишки просто не работают.
И когда памяти становится дефицит, а цены на неё растут — рост характеристик смартфонов замораживается. Мы уже не сможем видеть стабильный апгрейд каждый год.
Первыми это почувствуют пользователи бюджетного сегмента. Их телефоны будут либо дорожать, либо худеть в характеристиках. Третьего не дано.
Please open Telegram to view this post
VIEW IN TELEGRAM
4👍47👎31❤5🤯3🤔2👏1
Google запустил функцию "Save for later" в Google Play Console. Теперь можно контролировать, какие изменения отправлять на ревью, а какие пока отложить.
Раньше все изменения автоматически группировались и отправлялись на ревью вместе.
Это создавало сложности:
👉 Приходилось задерживать hot fix или публиковать изменения, которые ещё не готовы
👉 Нельзя было разделить обновление тестовых треков и маркетинговые изменения
👉 Сложно было поменять решения касательно релиз на ходу
Теперь в разделе "Changes not yet sent for review" можно отметить группы изменений как "Save for later".
Эти изменения:
👉 Не попадут в текущее ревью
👉 Можно в любой момент вернуть обратно
👉 После начала ревью автоматически вернутся в очередь
Функция работает вместе с проверками перед ревью.
Новая фича позволяет быстрее итерировать и минимизировать влияние реджектов на график релизов. Особенно полезно, когда часть изменений готова, а часть — нет.
🔗 Подробности в блоге
#Android #GooglePlay
Please open Telegram to view this post
VIEW IN TELEGRAM
❤22👍14👎6
Forwarded from iOS Broadcast (Андрей Зонов)
Я вам несколько раз рассказывал про Skip и о своих надеждах и сомнениях по поводу этого инструмента и пришли новости. Платно получать лок на вендора желающих достаточно не оказалось, но наработки пригодились Apple рабочей группе по Android.
📱 Проблема: cross-platform “без компромиссов” всегда упирался в доверие
Многие команды хотят Swift/SwiftUI → Android, но боятся строить стратегию на маленьком закрытом платном туле: “а если завтра rug pull / покупка / закрытие?”. Skip прямо называет этот страх ключевым барьером adoption.
Начиная с Skip 1.7:
Моя оценка Skip в 2026:
Please open Telegram to view this post
VIEW IN TELEGRAM
👎29👍7❤3
Если у вас тяжёлая Android-сборка (много модулей, R8, CI с ограниченной памятью), имеет смысл принудительно завершать Kotlin Daemon после компиляции и до запуска R8 🔪
Kotlin Daemon нужен только на этапе компиляции Kotlin. После этого он спокойно живёт до конца сборки и держит память. R8 — один из самых прожорливых этапов по CPU и RAM 🔥 По итогу Daemon и R8 начинают конкурировать за ресурсы памяти
Что вы реально получаете если убивает Kotlin демона после компиляции кода:
🔗 Источник с измерениями и подробным разбором
#Android #Kotlin #R8 #Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍43👎5❤4🤔1