Сайдлоадинг умрёт?
Нет. Верификация направлена против мошенников, а не против свободы установки. Верифицированные разработчики распространяют APK через любые каналы как раньше.
Что будет с установкой по ADB?
Нет. Сборка, отладка и деплой через ADB работают как прежде без регистрации. Регистрация нужна только если тестирование идёт через Firebase App Distribution, Play Internal Testing или APK отдаётся тестировщикам вне ADB.
Я занимаюсь разработкой как хобби, мне нужно будет пройти верификацию?
Нет. Для студентов и хобби-разработчиков вводится бесплатный аккаунт с ограниченным числом устройств без идентификации.
Зачем это вообще нужно?
На Play Store аналогичная схема уже дала двузначное снижение активности мошенников. Создать тысячи верифицированных аккаунтов с реальными документами несравнимо дороже, чем сделать это один раз как честному разработчику. Это не убирает всех, но делает порог выше. Плюс опыт пользователей с мошенничеством в разных странах разный, как и схемы обмана.
Ранний доступ стартует в октябре 2025 года, можно записаться уже сейчас.
#Android #AndroidDev #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯 @android_broadcast в Max. Этого не будет
Привет. На фоне приближающейся даты 1 апреля решил что важно расскзаать про то, что будет с каналами при блокировке Telegram в России.
В первую очередь, я надеюсь, что Telegram на станут ограничивать, но принял решение, что не хочу проходить путь с построением канала на другой платформе, когда не могу себе объяснить "зачем", так еще и сражаться с оформлением постов. Продолжу вести канал только в Telegram.
На случай блокировки, как мне кажется, проще уже будет сделать свое приложение, где будет всё и сразу из коробки и так как удобно мне, чем постоянно искать какая площадка лучше.
Каналы @kotlin_broadcast, @ai_dev_broadcast и @compose_broadcast остаются в Telegram полностью.
#AndroidBroadcast
Привет. На фоне приближающейся даты 1 апреля решил что важно расскзаать про то, что будет с каналами при блокировке Telegram в России.
В первую очередь, я надеюсь, что Telegram на станут ограничивать, но принял решение, что не хочу проходить путь с построением канала на другой платформе, когда не могу себе объяснить "зачем", так еще и сражаться с оформлением постов. Продолжу вести канал только в Telegram.
На случай блокировки, как мне кажется, проще уже будет сделать свое приложение, где будет всё и сразу из коробки и так как удобно мне, чем постоянно искать какая площадка лучше.
Каналы @kotlin_broadcast, @ai_dev_broadcast и @compose_broadcast остаются в Telegram полностью.
#AndroidBroadcast
Google начала глобальный роллаут верификации разработчиков в Play Console и новом Android Developer Console.
В Android Studio через пару месяцев прямо при сборке подписанного App Bundle или APK будет видно статус регистрации приложения. Для студентов и энтузиастов готовят бесплатный аккаунт с ограниченным распространением до 20 устройств — без паспорта, только email. Ранний доступ открывается в июне.
С 30 сентября 2026 года в Бразилии, Индонезии, Сингапуре и Таиланде незарегистрированные приложения можно будет установить только через ADB или специальный Advanced Flow. С 2027 года это распространится на весь мир.
🔗 android-developers.googleblog.com
#Android #GooglePlay
Please open Telegram to view this post
VIEW IN TELEGRAM
Вышла новая версия Media3, и там заметное обновление для тех, кто строит плеерный UI на Compose. Главное в этом релизе — продолжение развития модуля
media3-ui-compose-material3. Добавили готовый Player composable, который объединяет ContentFrame с настраиваемыми элементами управления сверху, по центру и снизу. Рядом появился ProgressSlider для перемотки через жесты и PlaybackSpeedControl с кнопкой переключения скорости. На мой взгляд, это уже почти полноценный out-of-the-box плеер на Compose Material3.Breaking changes:
👉
FrameExtractor вынесен в отдельный модуль media3-inspector-frame 👉
LottieOverlay переехал в media3-effect-lottie🔗 Источники: android-developers.googleblog.com
#Android #AndroidDev #Jetpack #Медия
Please open Telegram to view this post
VIEW IN TELEGRAM
Сколько мониторов у вас на рабочем месте?
Anonymous Poll
24%
Только экран ноутбука
38%
Ноут + монитор
9%
Ноут + 2 монитора
12%
1 монитор
13%
2 монитора
2%
Другая конфигурация
2%
Не участвую в опросе
Авторизация в Android-приложениях исторически была болью: Smart Lock, One Tap, FIDO2, Google Sign-In — каждый жил отдельно, со своими проблемами и способом интеграции. Credential Manager заменяет всё это единым Jetpack API.
val request = GetCredentialRequest(
listOf(
GetPasswordOption(),
GetPublicKeyCredentialOption(requestJson = fetchJsonFromServer())
)
)
coroutineScope.launch {
try {
val result = credentialManager.getCredential(
context = activityContext,
request = request
)
when (val credential = result.credential) {
is PublicKeyCredential -> sendToServer(credential.authenticationResponseJson)
is PasswordCredential -> signInWith(credential.id, credential.password)
is CustomCredential -> handleFederatedSignIn(credential)
}
} catch (e: GetCredentialException) {
handleError(e)
}
}
Суть простая: один вызов
getCredential() показывает пользователю bottom sheet, где агрегированы passkeys, сохранённые пароли и Sign in with Google. Пользователь выбирает аккаунт, а не метод входа — API само подбирает подходящий тип учётной данных.По возможностям:
👉 Passkeys — беспарольная аутентификация через публичный ключ с подтверждением биометрией или PIN. Работает с Android 9+, синхронизируется через Google Password Manager
👉 Пароли — поддержка через
GetPasswordOption с Android 4.4, то есть покрывает всю реальную аудиторию👉 FIDO — Sign in with Google теперь нативно встроен в тот же bottom sheet, никаких отдельных SDK
Что происходит в реальных приложениях с passkeys — числа впечатляют. Zoho после интеграции ускорил авторизацию в 6 раз и видит рост использования passkeys на 31% месяц к месяцу. X за 4 недели мигрировал с SmartLock/One Tap/Google Sign-In, удалил сотни строк кода и вдвое улучшил показатели успешного входа.
‼️ ВАЖНО: поддержка сторонних менеджеров паролей (1Password, Bitwarden и т.д.) появилась только с Android 14. На более ранних версиях работает только Google Password Manager.
На мой взгляд, это тот редкий случай когда Google реально упростила жизнь разработчикам, а не наоборот. Если в приложении до сих пор живут отдельные интеграции авторизаций — посмотрите в сторону миграции, оно того стоит и по коду, и по UX.
А вы уже интегрировали Credential Manager к себе? Если да — что больше всего зашло или наоборот споткнулись? Если нет — что останавливает?
#Android #Безопасность #Passkeys
Please open Telegram to view this post
VIEW IN TELEGRAM
⚡️ R8 наконец-то починил AtomicReferenceFieldUpdater в корутинах на Android
Это история про баг, которому больше двух лет. В 2023 году в трекере
Корень проблемы в том, что корутины используют atomicfu, который на JVM компилируется в Atomic*FieldUpdater ради совместимости с KMP. На десктопном JDK это нормально, но ART на Android оптимизирует их хуже. Бенчмарк на Pixel 4a давал 135 нс против 50 нс — разница почти в 3 раза на
R8 в составе AGP 9.2 закрывает этот разрыв на уровне компилятора: он определяет, где
Для нас это значит: никаких изменений в коде, просто обновить AGP. Бесплатное ускорение каждого launch и cancel в приложении.
На мой взгляд, абсолютно правильно решать проблему именно на стороне R8, а не правками всех библиотек.
🔗 Источник - X Andrei Shikov
#kotlin #coroutines #performance
Это история про баг, которому больше двух лет. В 2023 году в трекере
kotlinx.coroutines появился issue: AtomicReferenceFieldUpdater, которым корутины управляют состоянием Job, на Android работает в 2–4 раза медленнее, чем обычный AtomicReference на операциях compareAndSet и lazySet.Корень проблемы в том, что корутины используют atomicfu, который на JVM компилируется в Atomic*FieldUpdater ради совместимости с KMP. На десктопном JDK это нормально, но ART на Android оптимизирует их хуже. Бенчмарк на Pixel 4a давал 135 нс против 50 нс — разница почти в 3 раза на
compareAndSet.R8 в составе AGP 9.2 закрывает этот разрыв на уровне компилятора: он определяет, где
Atomic*FieldUpdater можно заменить на Unsafe-вызовы, и генерирует одну инструкцию вместо цепочки. ART тоже получит аналогичную оптимизацию в JIT, но она имеет ограничения по версии платформы и хуже масштабируется по тестам автора.Для нас это значит: никаких изменений в коде, просто обновить AGP. Бесплатное ускорение каждого launch и cancel в приложении.
На мой взгляд, абсолютно правильно решать проблему именно на стороне R8, а не правками всех библиотек.
🔗 Источник - X Andrei Shikov
#kotlin #coroutines #performance
В новом стабильном релизе Android Studio два изменения, которые напрямую влияют на работу с Agent Mode.
Первое — собственные Agent Skills. Создаёшь папку .skills/ в корне проекта, кладёшь туда SKILL.md с описанием нужного воркфлоу, и агент начинает использовать его автоматически. Можно вызвать вручную через @имя. Скилл может содержать инструкции по код-ревью под ваши стандарты, информацию о внутренних библиотеках, любые кастомные практики команды. Концепция ровно та же, что в Claude Code с CLAUDE.md, только встроена прямо в Studio.
Второе — гранулярные разрешения для AI. Агент явно запрашивает разрешение перед чтением файлов, запуском shell-команд и веб-запросами. Можно настроить постоянные исключения для доверенных операций, SSH-ключи всегда требуют явного OK. Плюс опциональный sandbox для полной изоляции.
#AndroidStudio #AgentMode #AIdev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Media is too big
VIEW IN TELEGRAM
🔗 Источник Android Dev Blog
#AI #ИИ #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Google представил Gemma 4 — новое семейство открытых моделей для сложных рассуждений и вызова инструментов. Главная цель: сделать локальный агентный ИИ стандартом на Android — от разработки до продакшена на смартфоне.
Сейчас фокус на Android Studio. Gemma 4 работает полностью локально на вашем компьютере. Код не уходит в облако.
Agent Mode в Android Studio с Gemma позволит вам делать
👉 рефакторинг легаси‑кода
👉 создание целого приложения или новых фич
👉 итеративное исправление ошибок (агент сам применяет правки)
Без интернета, с полным контролем приватности и без оплаты за токены.
———
Gemma 4 бывает разного размера: от E2B (2 млрд параметров) до 31B. Требования зависят от модели:
👉 E2B (2B) — 8 ГБ RAM, работает на CPU. Для базовых подсказок.
👉 E4B (4B) — от 16 ГБ RAM. Идеальный баланс для большинства разработчиков.
👉 7B–14B — от 16 ГБ (лучше 32 ГБ). Нужен GPU или мощный нейронный движок.
👉 26B A4B / 31B — 32+ ГБ RAM. Только с квантованием или на профессиональных станциях.
Для обладателей MacBook Pro с 32+ ГБ и чипом M Pro/Max открвается много интересного. На такой конфигурации вы комфортно запустите:
👉 E4B (4B) — молниеносно
👉 26B A4B — отличный уровень интеллекта
👉 31B — с квантованием (потеря качества минимальна)
Благодаря Unified Memory и оптимизации через Metal MacBook Pro часто эффективнее PC с дискретными видеокартами в том же классе памяти.
———
Gemma 4 в Android Studio делает локального агентного ассистента реальностью. Вы получаете современный AI для сложных задач без облаков и без счетов за API.
Выбрать модель можно прямо в настройках Android Studio через LLM‑провайдера (LM Studio, Ollama и др.). Я пойду тестировать её, потому что локальный AI агент - это очень круто!
🔗 Источник - Android Dev Blog
#Gemma4 #AndroidDe #AndroidStudio #AgentMode
Please open Telegram to view this post
VIEW IN TELEGRAM
Какую модель Gemma выбрать в зависимости от вашего железа. Размер оперативки указан для запуска Android Studio + Gemma локально. Как минимум стоит иметь запас по оперативки для комфортной работы, когда начнется сборка,
По цифрам кажется очень интересным вариантом чтобы попробовать кодинг через CLI без IDE
#AI #AndroidStudio #Gemma4
По цифрам кажется очень интересным вариантом чтобы попробовать кодинг через CLI без IDE
#AI #AndroidStudio #Gemma4
Google объявила, что с 15 сентября 2026 года все новые приложения и обновления для Wear OS, содержащие нативный код (C/C++), должны включать 64-битную версию наряду с 32-битной. Google Play начнёт блокировать загрузку несовместимых APK/AAB.
Что нужно сделать разработчикам:
👉 Проверьте, есть ли в вашем приложении нативный код (файлы
.so в lib/armeabi-v7a или lib/arm64-v8a). Даже если вы не пишете на C++, зависимости или SDK могут его добавлять.👉 Для каждой 32-битной ABI (
armeabi-v7a) добавьте 64-битную (arm64-v8a).👉 Обновите сторонние SDK до версий с поддержкой 64 бит.
👉 Протестируйте приложение на 64-битном эмуляторе Wear OS (все новые образы уже 64-битные).
⚠️ Политика 32-битной поддержки не отменяется — Google Play по‑прежнему будет доставлять приложения на старые 32-битные устройства.
🔗 Гайд по миграции
🔗 Источник - Android Dev Blog
#WearOS #AndroidDev #GooglePlay
Please open Telegram to view this post
VIEW IN TELEGRAM
Forwarded from Compose Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
Если ты пишешь Gradle plugin для Android — она ловит ошибки, которые сложно заметить вручную:
👉 использование внутренних API Gradle и AGP (которые могут сломаться в любой момент)
👉 eager task configuration вместо lazy (
withType без configureEach)👉 вызовы, несовместимые с Gradle Project Isolation (
getRootProject, findProject, getParent)👉
Provider<String>.toString() — почти всегда баг👉
configurations.create вместо configurations.register (проблема с Gradle 8.14+)👉
System.getenv() напрямую вместо Provider API👉
mustRunAfter / shouldRunAfter — дорогие операции из-за перестройки task graphСейчас в alpha06 (апрель 2026), стабильного релиза ещё нет, но и в прод этот код не пойдет.
#Gradle #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
AGSL (Android Graphics Shading Language) появился в Android 13 как нативный язык шейдеров для GPU. Работает через RuntimeShader и RenderEffect, позволяет делать попиксельные эффекты на любом View или Composable. Но писать его больно: код живёт в строках, uniform-ы привязываются вручную, IDE не помогает.
Библиотека RedByteFX оборачивает это в Kotlin DSL. Вот волновое смещение — сначала голый AGSL, потом то же самое через библиотеку:
// Голый AGSL — строка в коде
uniform shader content;
uniform float wave_amplitude;
uniform float wave_frequency;
half4 main(float2 fragCoord) {
float2 offset = float2(
0.0,
sin(fragCoord.x * wave_frequency) * wave_amplitude
);
return content.eval(fragCoord + offset);
}
// RedByteFX DSL
val effect = redbytefx {
val amplitude = uniformFloat(0f, "wave_amplitude")
val frequency = uniformFloat(0.08f, "wave_frequency")
val offset = let(
float2(0f, sin(fragCoord.x * frequency) * amplitude),
"wave_offset"
)
sample(fragCoord + offset)
}
🔗 habr.com
#Android
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
Раньше чтобы два эмулятора увидели друг друга по сети, надо было руками прописывать port forwarding. Каждый эмулятор жил в своей изолированной виртуальной песоцнице. Теперь новый сетевой стек поднимает общий виртуальную сеть для всех запущенных инстансов на одной машине — до 4 эмуляторов одновременно. Wi-Fi Direct и Network Service Discovery (NSD) работают из коробки, ничего настраивать не нужно.
Это вписывается в то, что Google активно делает последние пару лет: передача звонков между устройствами, кросс-девайсные сессии, Wear OS, Android Auto, XR-очки. Весь этот функционал раньше можно было нормально проверить только на реальных девайсах. Теперь это можно делать прямо в эмуляторе.
Для использования надо Andorid Emulator версии 36.5 или новее
🔗 Источник - android-developers.googleblog.com
#AndroidDev #AndroidStudio
Please open Telegram to view this post
VIEW IN TELEGRAM
Идея простая: вместо того чтобы объяснять агенту контекст каждый раз руками, ты даёшь ему готовый SKILL.md — файл со структурированными инструкциями, шагами и справочными материалами по конкретной задаче. Агент читает его как спецификацию и работает точнее.
Это следует открытому стандарту agentskills.io, то есть формат не завязан на один инструмент — подходит для Claude Code, Cursor и любого другого агента, который умеет читать файлы из контекста.
Что уже есть в репозитории:
👉 Миграция с XML-вёрстки на Jetpack Compose
👉 Установка и миграция на Navigation 3 (deep links, multiple backstacks)
👉 Анализ R8-правил и оптимизация размера APK
👉 Обновление до последней версии Play Billing Library
Как использовать: скачиваешь нужный SKILL.md из репозитория, добавляешь в контекст агента (в Claude Code — через команду /add-file или как часть промпта), говоришь что нужно сделать. Агент уже знает, как это делается по правилам Google.
Набор пока небольшой, но сама идея правильная: вместо того чтобы учить агента с нуля на каждом проекте, ты даёшь ему готовую базу знаний от самой команды Android.
#AndroidDev #AIDev #ClaudeCode
Please open Telegram to view this post
VIEW IN TELEGRAM