‼️ Есть 2 проходки на Podlodka Android Crew, которая стартует завтра. Отдам за интересный рассказ про ваш кейс с безопасностью Android приложения: как защищаетесь, какие были факапы и все что по теме безопасности в мобильной разработке.
Отдам билеты вечером сегодня, чья история зацепит меня большего всего.
Считается только то, что комментарием под постом
UPD. Билеты разыграны
Отдам билеты вечером сегодня, чья история зацепит меня большего всего.
Считается только то, что комментарием под постом
UPD. Билеты разыграны
32👎47👍21
Android 17 добавляет поддержку гибридной схемы подписи APK с постквантовым алгоритмом ML-DSA. Классический ключ подписи комбинируется с постквантовым и подпись становится устойчивой к атакам с использованием квантовых вычислений.
Схема гибридная, а не замена старому подходу, поэтому обратная совместимость сохраняется. Старые устройства верифицируют подпись через классический ключ, новые получают дополнительный слой защиты через ML-DSA.
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 вышел первый официальный Swift SDK для Android. До этого поддержка была только в nightly-сборках, теперь это стабильный релиз.
Я делал про это видео на 📹 YouTube и на
Кому это реально пригодится? 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
Сайдлоадинг умрёт?
Нет. Верификация направлена против мошенников, а не против свободы установки. Верифицированные разработчики распространяют 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
👎38👍6
🤯 @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
69👍473👎12
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
Вышла новая версия 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
Сколько мониторов у вас на рабочем месте?
Anonymous Poll
24%
Только экран ноутбука
38%
Ноут + монитор
9%
Ноут + 2 монитора
12%
1 монитор
13%
2 монитора
2%
Другая конфигурация
2%
Не участвую в опросе
👍20👎9
Авторизация в 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 году в трекере
Корень проблемы в том, что корутины используют 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
👍57👎7
В новом стабильном релизе 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
🔗 Источник Android Dev Blog
#AI #ИИ #Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30👎6
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
По цифрам кажется очень интересным вариантом чтобы попробовать кодинг через CLI без IDE
#AI #AndroidStudio #Gemma4
👍28👎14
This media is not supported in your browser
VIEW IN TELEGRAM
Для себя я выработал правило привязки работы стоя/сидя к определенным задачам в работе. Например, все онлайн встречи и code review я провожу стоя за рабочим столом, а кодинг - сидя.
ANDROID10 на сайте Ergostol.Так же специально для моих подписчиков промокод действует и на Ozon
Please open Telegram to view this post
VIEW IN TELEGRAM
👎35👍26
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
👎16👍13
Forwarded from Compose Broadcast
This media is not supported in your browser
VIEW IN TELEGRAM
HotSwan - быстрое обновление Composable на реальном устройстве. Доступно как плагин для Android Studio
Я выбрал другой путь - делаю СMP проект с поддержкой Android + Desktop JVM и так можно быстро проверять + делать код чище.
#Compose
Я выбрал другой путь - делаю СMP проект с поддержкой Android + Desktop JVM и так можно быстро проверять + делать код чище.
#Compose
👍24👎9
Если ты пишешь 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
👍31👎8