Android Broadcast
14.5K subscribers
3.77K photos
389 videos
11 files
6.21K links
Подборка новостей и статей для Android разработчиков.

Реклама и связь с автором @ab_manager

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
🤖 Android 17 меняет подход к приватности геолокации.

Вышла Android 17 Beta 3 и все изменения там касаются геолокациии

👉 Location Button — разовый доступ к точной геолокации
Новый UI-элемент из Jetpack, который даёт доступ к точным координатам прямо в момент нажатия, без постоянного разрешения. Пользователь нажал кнопку "поделиться местоположением" в вашем приложении — получил данные один раз в рамках сессии. Никаких диалогов с выбором "разрешить всегда / только сейчас". Кнопку можно кастомизировать: цвет, форма, текст из предопределённого списка. Иконка местоположения остаётся обязательной и неизменной. На Android 16 и ниже Jetpack автоматически откатывается к стандартному диалогу разрешений.

👉 Примерная геолокация стала умнее
До этого "приблизительный" режим использовал фиксированную сетку 2×2 км. В малонаселённых районах это фактически деанонимизирует пользователя, потому что в квадрате 2 км может быть буквально несколько человек. В Android 17 размер ячейки теперь зависит от плотности населения — чем меньше людей, тем больше область. Логично, что давно должно было быть так.

👉 Индикатор использования геолокации
По аналогии с микрофоном и камерой, при любом обращении к геолокации теперь будет появляться системный индикатор. Плюс — диалог с историей последних обращений с возможностью сразу перейти в настройки разрешений.

👉 Переработанный диалог разрешений
"Точное" и "Приблизительное" местоположение теперь визуально сильнее разделены, чтобы пользователь осознанно выбирал нужный уровень доступа.

🔗 Источник: android-developers.googleblog.com

#Android #AndroidDev #Android17 #Приватность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍67👎8
Да уж... Новинка Android 17 - кнопка для быстрого получения локации с минимальным написанием кода. Куда-то мы идем не туда. Уже все разработчики всё сделали что надо и выдать локацию можно на 1 раз, но вот она новинка, которой так всем не хватало!
👎43👍5
🤖 В Android 17 нельзя менять `static final` поля через рефлексию или JNI. Звучит логично — static final по определению константа, но на практике это использовалось годами для разных хаков.

👉 Попытка изменить такое поле через рефлексию бросает IllegalAccessException
👉 Попытка через JNI SetStaticLongField() и аналоги — сразу краш приложения
👉 Ограничение включено только для приложений с targetSdk = 37, но в Beta 1 проверка активна для всех приложений, чтобы выловить проблемы раньше

Зачем это нужно? Пока static final поле формально могло меняться, рантайм не мог агрессивно оптимизировать код, который к нему обращается. Теперь — может. На практике это чаще всего задевает тесты, которые через рефлексию подменяют константы в production-коде, и старые хаки с логированием или конфигурацией. Где-то жить станет чуть сложнее, но в целом всё закономерно — меньше хаков, честнее код.

🔗 Источник: developer.android.com

#android #android17
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58👎7
‼️ Есть 2 проходки на Podlodka Android Crew, которая стартует завтра. Отдам за интересный рассказ про ваш кейс с безопасностью Android приложения: как защищаетесь, какие были факапы и все что по теме безопасности в мобильной разработке.

Отдам билеты вечером сегодня, чья история зацепит меня большего всего.

Считается только то, что комментарием под постом

UPD. Билеты разыграны
32👎47👍21
🤖 Улучшение подписи APK в Android 17

Android 17 добавляет поддержку гибридной схемы подписи APK с постквантовым алгоритмом ML-DSA. Классический ключ подписи комбинируется с постквантовым и подпись становится устойчивой к атакам с использованием квантовых вычислений.

Схема гибридная, а не замена старому подходу, поэтому обратная совместимость сохраняется. Старые устройства верифицируют подпись через классический ключ, новые получают дополнительный слой защиты через ML-DSA.

‼️ ВАЖНО Старый классический ключ переиспользовать нельзя. Это не обновление существующего ключа, а смена подписи, нужно создавать новую пару. Если используете Google Play App Signing, всё сделает Google Play, просто дождитесь опции в консоли. При самостоятельном управлении ключами понадобится обновлённый apksigner.

Квантовые компьютеры, способные реально угрожать текущим подписям,появятся не скоро, да и натравливать его на взлом APK - странный сценарий использования такой машины. Но инфраструктурные вещи лучше внедрять заранее, и хорошо, что Play App Signing снимает эту задачу с большинства из нас.

🔗 Источник: developer.android.com

#Android #Android17 #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍41👎6
🦢 Swift 6.3. Официальный SDK для Android в stable

В Swift 6.3 вышел первый официальный Swift SDK для Android. До этого поддержка была только в nightly-сборках, теперь это стабильный релиз.

Я делал про это видео на 📹 YouTube и на 🪙 Boosty: раз и два — там подробнее про механику интеграции.

Кому это реально пригодится? iOS-разработчикам, у которых есть Swift-библиотеки с бизнес-логикой и которые хотят переиспользовать их на Android без переписывания на Kotlin. Через Swift Java и Swift Java JNI Core Swift-код встраивается в существующее Kotlin/Java-приложение — не нужно всё переписывать с нуля.

🔗 Источник: swift.org

#Swift #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎15
🤖 Вопрос ответ про верификацию Android разработчиков

Сайдлоадинг умрёт?

Нет. Верификация направлена против мошенников, а не против свободы установки. Верифицированные разработчики распространяют APK через любые каналы как раньше.

Что будет с установкой по ADB?

Нет. Сборка, отладка и деплой через ADB работают как прежде без регистрации. Регистрация нужна только если тестирование идёт через Firebase App Distribution, Play Internal Testing или APK отдаётся тестировщикам вне ADB.

Я занимаюсь разработкой как хобби, мне нужно будет пройти верификацию?

Нет. Для студентов и хобби-разработчиков вводится бесплатный аккаунт с ограниченным числом устройств без идентификации.

Зачем это вообще нужно?

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

Ранний доступ стартует в октябре 2025 года, можно записаться уже сейчас.

📹 Источник - YouTube Android Developers

#Android #AndroidDev #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👎38👍6
🤯 @android_broadcast в Max. Этого не будет

Привет. На фоне приближающейся даты 1 апреля решил что важно расскзаать про то, что будет с каналами при блокировке Telegram в России.

В первую очередь, я надеюсь, что Telegram на станут ограничивать, но принял решение, что не хочу проходить путь с построением канала на другой платформе, когда не могу себе объяснить "зачем", так еще и сражаться с оформлением постов. Продолжу вести канал только в Telegram.

На случай блокировки, как мне кажется, проще уже будет сделать свое приложение, где будет всё и сразу из коробки и так как удобно мне, чем постоянно искать какая площадка лучше.

Каналы @kotlin_broadcast, @ai_dev_broadcast и @compose_broadcast остаются в Telegram полностью.

#AndroidBroadcast
69👍473👎12
🛒 Android Developer Verification запускается для всех разработчиков

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
👎71👍6
🤖 Вышла Jetpack Media3 1.10.0

Вышла новая версия 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
👍27👎7
🤖 Credential Manager: одно API для всей авторизации на Android

Авторизация в 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
👍62👎6
⚡️ R8 наконец-то починил AtomicReferenceFieldUpdater в корутинах на Android

Это история про баг, которому больше двух лет. В 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
👍57👎7
🔨 Вышла Android Studio Panda 3

В новом стабильном релизе 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
👍25👎18
Media is too big
VIEW IN TELEGRAM
🤖 Gemma4 доступна в AI Core в Dev Preview. Моделька реально может много и всё это прямо на устройстве 🤯 Стоит пробовать в приложениях на девайсах с поддержкой. Запустится на флагманах c Qualcomm, Mediatek, Tensor

🔗 Источник Android Dev Blog

#AI #ИИ #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30👎6
⭐️ Gemma 4 в Android Studio: локальный AI-агент на вашем компьютере

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
2👍80👎12
Какую модель Gemma выбрать в зависимости от вашего железа. Размер оперативки указан для запуска Android Studio + Gemma локально. Как минимум стоит иметь запас по оперативки для комфортной работы, когда начнется сборка,

По цифрам кажется очень интересным вариантом чтобы попробовать кодинг через CLI без IDE

#AI #AndroidStudio #Gemma4
👍28👎14