Яндекс выкатил первый мажор своего DI-фреймворка. Основное:
👉 Единый backend-agnostic
Yatagan entry point в api-public. Reflection или codegen подхватываются автоматически, имплементация с генерацией кода имеет приоритет.👉 Экспериментальный Dagger compatibility mode. Включаешь
yatagan.experimental.enableDaggerCompatibility и Yatagan генерит DaggerMyComponent фасады. Старые DaggerMyComponent.create() / .builder() продолжают работать. Поддерживается ядро (components, modules, scopes, multibindings, assisted), без Hilt/Android/producers.👉 Conditions API почистили: legacy
@Condition/@AnyCondition deprecated в пользу @ConditionExpression, @Provides(Conditional(...)) → отдельный @Conditional на методе.👉 Runtime-конфиг стал declarative (processor options +
parameters.properties), убрали глобальный mutable state.Есть подробный migration guide и даже скилл для агента:
npx skills add yandex/yataganЭто RC. Compatibility mode экспериментальный — граф лучше провалидировать. Но для тех, кто уже страдает от Dagger на больших проектах и смотрел в сторону Yatagan, порог входа заметно снизился.
🔗 Release Notes
#Android #AndroidDev #DI #Яндекс
Please open Telegram to view this post
VIEW IN TELEGRAM
Технологии на пороге тектонического сдвига 🧠
Мир разработки переживает не просто обновление версий и фреймворков, а смену фундаментальных принципов. AI диктует новые правила игры: перестраиваются архитектура приложений, инженерные процессы и даже взаимодействие с пользователем.
Именно об этом пойдет речь на deep tech night — конференции Яндекса о технологических вызовах в эпоху AI.
Это разговор о реальном опыте команд, которые решают сложные задачи на стыке AI, разработки, инфраструктуры и данных. Выступать будут приглашенные эксперты, среди которых Мо Гавдат (бывший Chief Business Officer Google X) и спикеры Яндекса, которые поделятся своим практическим опытом.
Среди тем докладов:
- Как ИИ изменит разработку ПО, процессы и роль разработчика, Мо Гавдат.
- Как новые подходы помогают перейти от надстройки над классическими системами к одностадийным рекомендациям без ручного фичеинжиниринга, Алексей Гусаков (CTO Бизнес‑группы Поисковых сервисов и ИИ).
- Как в RL для больших моделей искать баланс между алгоритмами и производительностью, Иван Сапожков (руководитель группы базовой ML‑инфраструктуры).
👉 Регистрируйтесь, чтобы получить доступ к трансляции докладов, задать вопросы экспертам в прямом эфире и посмотреть запись после события. Полная программа и подробности про офлайн можно посмотреть на сайте.
Мир разработки переживает не просто обновление версий и фреймворков, а смену фундаментальных принципов. AI диктует новые правила игры: перестраиваются архитектура приложений, инженерные процессы и даже взаимодействие с пользователем.
Именно об этом пойдет речь на deep tech night — конференции Яндекса о технологических вызовах в эпоху AI.
Это разговор о реальном опыте команд, которые решают сложные задачи на стыке AI, разработки, инфраструктуры и данных. Выступать будут приглашенные эксперты, среди которых Мо Гавдат (бывший Chief Business Officer Google X) и спикеры Яндекса, которые поделятся своим практическим опытом.
Среди тем докладов:
- Как ИИ изменит разработку ПО, процессы и роль разработчика, Мо Гавдат.
- Как новые подходы помогают перейти от надстройки над классическими системами к одностадийным рекомендациям без ручного фичеинжиниринга, Алексей Гусаков (CTO Бизнес‑группы Поисковых сервисов и ИИ).
- Как в RL для больших моделей искать баланс между алгоритмами и производительностью, Иван Сапожков (руководитель группы базовой ML‑инфраструктуры).
👉 Регистрируйтесь, чтобы получить доступ к трансляции докладов, задать вопросы экспертам в прямом эфире и посмотреть запись после события. Полная программа и подробности про офлайн можно посмотреть на сайте.
Forwarded from Compose Broadcast
Официально появился
mediaQuery — лямбда, которая смотрит на текущий UiMediaScope и возвращает boolean. Внутри можно проверять:👉
windowWidth / windowHeight👉
windowPosture (Tabletop, Book, Flat)👉
pointerPrecision (Fine → Coarse → Blunt → None)👉
keyboardKind (Physical / Virtual / None)👉
hasCamera / hasMicrophone👉
viewingDistance (Near / Medium / Far)Включается одним флагом при запуске приложения:
ComposeUiFlags.isMediaQueryIntegrationEnabled = true
Для размеров, которые дёргаются часто, лучше использовать
derivedMediaQuery (обёртка над derivedStateOf):// Composable code
val narrowerThanMedium by derivedMediaQuery {
windowWidth < WindowSizeClass.WIDTH_DP_MEDIUM_LOWER_BOUND.dp
}
val narrowerThanExpanded by derivedMediaQuery {
windowWidth < WindowSizeClass.WIDTH_DP_EXPANDED_LOWER_BOUND.dp
}
when {
narrowerThanMedium -> SinglePaneLayout()
narrowerThanExpanded -> TwoPaneLayout()
else -> ThreePaneLayout()
}
Самый чистый кейс — foldable в tabletop:
// Composable code
if (mediaQuery { windowPosture == UiMediaScope.Posture.Tabletop }) {
TabletopLayout()
} else {
FlatLayout()
}
Это API не замена WindowSizeClass, но удобный единый вход для всего, что меняется в рантайме. Если пишете адаптив под foldable / desktop / TV — возьмите на заметку. Пока не перенесли в Compose Multiplatform.
Документация Media Query API
#Compose #JetpackCompose #Adaptive #UI #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
XR SDK - набор библиотек для разработки приложения для очков и шлемов дополненной реальности на Android XR ОС
Google выкатил beta для трёх ключевых кусков:
-
androidx.xr.scenecore:scenecore:1.0.0-beta02-
androidx.xr.arcore:arcore:1.0.0-beta02-
androidx.xr.runtime:runtime:1.0.0-beta02Compose for XR пока ещё
1.0.0-alpha17 (обещают beta скоро).Тестировать можно на Samsung Galaxy XR или в Android XR Emulator.
🔗 Официальный анонс
#Android #AndroidXR #XR #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 И ты, Gradle, ударился в AI
Gradle запустил инициативу Agentic Gradle. Цель — сделать сборку понятной не только человеку, но и кодинг агентам.
Что внутри:
👉 официальные skills (инструкции в духе Claude Skills) — как читать ошибки, запускать таски, разбирать Build Scan. Skills обещают в ближайшие недели (после бенчмарков).
👉 бенчмарки, которые измеряют реальный эффект skills;
👉 убирание лишнего текста, чтобы не жечь токены зря.
Ценой стал сдвиг Configuration Cache с Gradle 10 на 11.
Сам кэш уже стабильный — включай руками:
Самое показательное даже не skills. Билд-система — штука, которая вроде бы должна стоять чуть в стороне от хайпа. И вот Gradle тоже идёт в agentic. Потому что пользователи уже этого хотят, потому что открываются новые способы продвижения, потому что инвесторам это нужно показывать. Даже серьёзные инструменты сейчас вынуждены "кланяться".
🔗 Источник - блог Gradle
#Gradle #AI
Gradle запустил инициативу Agentic Gradle. Цель — сделать сборку понятной не только человеку, но и кодинг агентам.
Что внутри:
👉 официальные skills (инструкции в духе Claude Skills) — как читать ошибки, запускать таски, разбирать Build Scan. Skills обещают в ближайшие недели (после бенчмарков).
👉 бенчмарки, которые измеряют реальный эффект skills;
👉 убирание лишнего текста, чтобы не жечь токены зря.
Ценой стал сдвиг Configuration Cache с Gradle 10 на 11.
Сам кэш уже стабильный — включай руками:
org.gradle.configuration-cache=true
Самое показательное даже не skills. Билд-система — штука, которая вроде бы должна стоять чуть в стороне от хайпа. И вот Gradle тоже идёт в agentic. Потому что пользователи уже этого хотят, потому что открываются новые способы продвижения, потому что инвесторам это нужно показывать. Даже серьёзные инструменты сейчас вынуждены "кланяться".
🔗 Источник - блог Gradle
#Gradle #AI
В Android 17 на Pixel уже работают per-app memory limits. Сегодня Google написал, что в течение года их начнут включать всё больше производителей на устройствах от 4 ГБ RAM и больше.
Как это работает на практике:
1. Превысил бюджет → страницы приложения насильно уходят в zRAM (сжатая RAM). CPU-оверхед → jank и тормоза.
2. Приложение продолжает есть много памяти дальше → процесс убивают.
Можно отловить причину это ловится через
ApplicationExitInfo:-
reason == REASON_OTHER-
description содержит "MemoryLimiter:AnonSwap"Можно ещё повесить
TRIGGER_TYPE_ANOMALY в ProfilingManager и автоматически снимать heap dump в момент, когда лимит сработал.Для локального теста поведения можно использовать adb:
adb shell am memory-limiter status
adb shell am memory-limiter manual <pid> <limit_mb>
adb shell am memory-limiter ignore <uid>|all|none
В Android Vitals и Crashlytics 20.1.0 уже есть отдельные сигналы по этим убийствам. Если у тебя в приложении есть тяжёлые экраны, кэши, игры или foreground-сервисы - следи за метриками.
🔗 Источник - блог Android Developers
#Android #AndroidDev #Android17
Please open Telegram to view this post
VIEW IN TELEGRAM
😂 Как же долго мы ждали этого - Gemini Enterprise теперь в Android Studio
#AnroidStudio #AI #AndroidDev #Gemini
#AnroidStudio #AI #AndroidDev #Gemini
🔥 Android-разработчик, твоё приложение — это песочница, но пользователь может пробить в ней дыру в любой момент.
Многие думают, что разрешения — это просто диалог «Разрешить / Запретить». На самом деле это многослойная система с двумя уровнями проверок, временными разрешениями, автоматическим отзывом и политиками Google Play, которые могут заблокировать твоё приложение ещё на этапе публикации.
В этом видео мы копаем глубже документации и разбираем:
👉 Скрытый фреймворк AppOps — второй слой защиты, который может тихо заблокировать доступ, даже если у тебя есть грант.
👉 URI Permission Grants — механизм делегирования доступа без необходимости запрашивать широкие разрешения.
👉 Как проектировать архитектуру, чтобы приложение не падало, когда пользователь говорит «Нет».
Разрешение — это не гарантия доступа. Это формальное разрешение внутри сложной многоуровневой системы ограничений. Если твоя фича не работает без разрешения — это не проблема пользователя. Это баг архитектуры.
🎯 Кому смотреть:
👉 Android-разработчикам, которые хотят строить стабильные и устойчивые приложения
👉 Техлидам и архитекторам, которые проектируют приватность-first системы
👉 Всем, кто устал от крашей после отзыва разрешений в настройках
👉 Хочет лучше формировать требования для AI агентов и понимать что происходит
📌 В видео:
👉 Реальный путь разрешения — от манифеста до системного сервиса
👉 Почему
👉 Как обходиться без разрешений через системные пикеры
👉 Google Play политики, которые могут забанить твоё приложение
Разрешения — это не техническая деталь. Это контракт доверия между твоим продуктом и пользователем.
———
Ставь 🔥, если хочешь видеть больше глубоких разборов Android-архитектуры! (будут только под платной подпиской)
🪙 Полный разбор на Boosty
Многие думают, что разрешения — это просто диалог «Разрешить / Запретить». На самом деле это многослойная система с двумя уровнями проверок, временными разрешениями, автоматическим отзывом и политиками Google Play, которые могут заблокировать твоё приложение ещё на этапе публикации.
В этом видео мы копаем глубже документации и разбираем:
👉 Скрытый фреймворк AppOps — второй слой защиты, который может тихо заблокировать доступ, даже если у тебя есть грант.
👉 URI Permission Grants — механизм делегирования доступа без необходимости запрашивать широкие разрешения.
👉 Как проектировать архитектуру, чтобы приложение не падало, когда пользователь говорит «Нет».
Разрешение — это не гарантия доступа. Это формальное разрешение внутри сложной многоуровневой системы ограничений. Если твоя фича не работает без разрешения — это не проблема пользователя. Это баг архитектуры.
🎯 Кому смотреть:
👉 Android-разработчикам, которые хотят строить стабильные и устойчивые приложения
👉 Техлидам и архитекторам, которые проектируют приватность-first системы
👉 Всем, кто устал от крашей после отзыва разрешений в настройках
👉 Хочет лучше формировать требования для AI агентов и понимать что происходит
📌 В видео:
👉 Реальный путь разрешения — от манифеста до системного сервиса
👉 Почему
checkSelfPermission — это только начало👉 Как обходиться без разрешений через системные пикеры
👉 Google Play политики, которые могут забанить твоё приложение
Разрешения — это не техническая деталь. Это контракт доверия между твоим продуктом и пользователем.
———
Ставь 🔥, если хочешь видеть больше глубоких разборов Android-архитектуры! (будут только под платной подпиской)
Please open Telegram to view this post
VIEW IN TELEGRAM
Coroutine Leak Detector — IDE-плагин для проверки кода корутин и Flow на предмет утечек:
👉
GlobalScope.launch / async👉
collect / collectLatest без repeatOnLifecycle / flowWithLifecycle👉
runBlocking (особенно на UI)👉
async { } без использования Deferred (исключения не будут перехвачены)👉
Job / SupervisorJob / CoroutineScope без .cancel() в onCleared/onDestroy👉 захардкоженные
Dispatchers.IO/Main/DefaultДоступны quick-fix (
Alt+Enter). Если код находится внутри ViewModel, плагин автоматически подставляет viewModelScope. В Fragment/Activity — lifecycleScope или оборачивает collect в repeatOnLifecycle(STARTED).Пока плагина нет в Marketplace. Установка выполняется через Gradle:
// сборка плагина, он появится в build/distributions/
./gradlew buildPlugin
// затем установить плагин через интерфейс IDE
Идея хорошая, но остался один вопрос: почему именно IDE-плагин? Нельзя ли было реализовать проверки через Android Lint или использовать другой анализатор? Тем более что с ИИ сейчас это можно сделать эффективно, а от IDE я уже совсем отошёл.
#Kotlin #Coroutines #AndroidStudio #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
С февраля 2027 года Google Play будет следить за новыми показателями приложения:
Для тех приложений, что не буду соответствовать новым планкам качества будут применяться санкции: пропадут из выдачи поиска, а потом и вовсе удалены.
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroiDev
Please open Telegram to view this post
VIEW IN TELEGRAM
В Android уже давно поддерживается стандарт Zero-Tap Sign-In - быстрый вход в приложение на любом Androidустрйостве пользователя, если хотя бы на одном из них уже пройдена. Также сюда включается и восстановление аккаунта при переносе данных между старым и новым Android устройством.
Все приложения должны начать соотвествовать политике с апреля 2027. За нарушение сначала последует скрытие из поисковой выдачи, а затем удаление.
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
Больше личного мнения автора в @rozov_blog. Подписывайтесь!
#GooglePlay #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
Google Play начнет требовать оптимизацию кода через R8 и заранее предоставила инструменты анализа в рамках AGP 9.3.0. Запускаете
./gradlew :app:analyzeReleaseR8Config и получите отчет по 3 направлениям: shrinking, obfuscation, optimization.Для удобства Google сделала скилл r8-analyzer, который делает анализ отчета и выдает вам инсайты + предложения.
Рекомендуется обновиться дл AGP 9.3.0 или выше, но есть способ подключения для анализа на AGP 9.2
#AndroidDev #R8
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
// Пример форсирования структуры проекта через Aalekh
// build.gradle.kts (root project)
aalekh {
layers {
layer("domain") { modules(":core:domain", ":feature:*:domain") }
layer("data") {
modules(":core:data", ":feature:*:data")
canOnlyDependOn("domain")
}
layer("presentation") {
modules(":feature:*:ui", ":app")
canOnlyDependOn("domain", "data")
}
}
}
#Gradle