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

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
Оказывается Android Automotive всё ещё жива. Новостей про неё мало, но вот иногда доносится. Подробнее в блоге

#Android #Android17 #Automotive
👎11👍4
🤖 Вышла CameraX 1.6.0 с крутыми улучшениями

Вышел стабильный релиз CameraX 1.6.0. Цикл разработки был долгим, зато список изменений получился весомым.

👉 Переход на CameraPipe — CameraX теперь работает на том же стеке, что и приложение камеры Pixel. Все оптимизации и новые computational photography фичи отныне приходят в CameraX автоматически.

👉 Media3 Muxer по умолчанию — видеозапись через VideoCapture теперь использует Media3 Muxer. Если приложение упадёт во время записи, файл не повредится. Плюс более эффективный процессинг в целом.

👉 Feature Group обновилсяGroupableFeatures пополнился константами VIDEO_STABILIZATION и UHD_RECORDING. Теперь их можно комбинировать с другими фичами в одном SessionConfig, туда же вписываются CameraEffect и ImageAnalysis.

👉 SessionConfig стал стабильным API — вышел из experimental вместе с HighSpeedVideoSessionConfig. Появился isSessionConfigSupported для проверки совместимости конкретной комбинации фич до биндинга к lifecycle. Также появился ExtensionSessionConfig для работы с CameraX Extensions.

Также исправили баг на Android 17. Версия 1.5.2 падает.

🔗 Источник - developer.android.com
🐱 Примеры на Github

#Android #AndroidDev #CameraX #Jetpack #Камера
Please open Telegram to view this post
VIEW IN TELEGRAM
👍39👎6
🤖 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 нельзя менять `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
👍57👎7
🤖 Улучшение подписи 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 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
👍26👎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