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

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
Samsung представила новые складные устройства и новый Fold требует вашего внимания, я точнее адаптации. Соотношение сторон 4:3 внутри и 16:10 снаружи. Формат очень интересный и вызовет интерес аудитооии, так что стоит потестировать. Может и завезут в Andorid Studio преднамеренные эмуляторы от партнёра

https://youtu.be/pLNJ-fNYTKU?si=4k98KxL7e_NYzKpU

Больше подробностей в анонсе

#Android #AndroidDev #Foldable
1👎13👍51
🤖 Гайды по адаптации Android-приложений под широкие раскладушки (Galaxy Fold8) и трифолды на официальном сайте освещают различные аспекты адаптации:

👉 Работу с Window Size Classes
👉 Уровни (Tier) адаптации приложения. Их всего 3, и выполнить уровни 1 и 2 несложно.
👉 Какие изменения конфигурации могут вызываться, но вы для смартфонов на них забивали.
👉 Поддержка смены ориентации (а планшеты и fold-ы вертят часто).
🚀 Готовность Android Jetpack библиотек.

Помните, что с Android 17 все приложения на планшетах будут растягиваться, игнорируя все ограничения в манифесте вашего приложения!


#Android #Foldable #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍23👎5
Media is too big
VIEW IN TELEGRAM
🔠 Разбираем эталлоный пример Android проекта с оффлайн AI от Google
Когда: четверг, 30 июля, 19:00 (GMT+3)

В прямом эфире устрою прожарку нового примера от Google с демонстрацией как встраивать AI в классические Android приложения.

Буду ревьювить код, отвечать на ваши вопросы и классно проведем время.

Смотреть можно на 📹 YouTube или 📹 VK Video. Запись останется после эфира.

#AndroidBroacast #AndroidDev #AI #CodeReview
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍44👎12🔥105👏2
🐱 DebugOverlay — Android-библиотека для отображения оверлея загрузки ресурсов устройства при работе приложения.

Интересная функция Bug Report: одной кнопкой собирается ZIP-архив с интерактивным HTML-дашбордом, скриншотом, логами, сетевой историей и списком падений. Для QA есть OverlayMode.BugReporterOnly (только FAB для репортов, метрики не мешают тестированию) и Hidden, когда панель вызывается из собственного меню отладки через DebugOverlay.openPanel(context). Это решает вечную проблему «воспроизвёл, но к тикету приложить нечего».

‼️ Логи и тела запросов попадают в отчёт как есть. Редактирование заголовков и лимит размера тела настраиваются в interceptor, но по умолчанию удаляются только типовые ключи Authorization.

Автор не позиционирует это как замену профайлеру. Для internal- и debug-сборок мне такой формат нравится больше, чем поднимать Profiler на каждый чих.

#Android #AndroidDev #Tooling #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎6🔥31
🤖 Что-то пошло не так... Google выпустила новую версию Jetpack Loader, API для загрузки данных из 2012 😳

#Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
26👏9👎3🔥1
🤖 Каждый раз, открывая новое приложение, я надеюсь на ту самую магию, когда одноразовый код авторизации сам считывается из пуша и подставляется в нужное поле. Но зачастую приходится разочароваться 🥲 В реальности этот UX сейчас стремительно деградирует, и виноват в этом не столько бэкенд приложений, сколько экономика и архитектурная слепота Google в Android.

Причина на поверхности — стоимость отправки классических SMS для бизнеса выросла настолько, что мобильная связь как канал верификации уходит на второй план. Практически любой крупный ритейлер, банк или сервис сегодня используют каскадную доставку: код сначала летит вам пушом (потому что бесплатный), потом в Telegram, WhatsApp, Viber, и только в крайнем случае — в старую добрую сим-карту. Бизнес банально экономит бюджеты.

И на этом фоне анонсы Android 17 выглядят как привет из прошлого века. Google тратит колоссальные ресурсы на то, чтобы заделать дыры в безопасности SMS, полностью игнорируя тот факт, что коммуникация людей и брендов давно переместилась в мессенджеры.

В новой версии ОС вводится жесткая трехчасовая задержка на доступ к входящим SMS с OTP-кодами для обычных приложений, чтобы защитить пользователей от троянов-перехватчиков. Разработчикам безальтернативно говорят: используйте нативный SMS Retriever API, который автоматически парсит сообщения по специальной хэш-подписи. Но это лечит симптомы старой болезни. Даже с SMS этот API внедрили далеко не все, потому что поддерживать уникальные хэши под разные сборки на бэкенде — та еще головная боль. А для мессенджеров никакого аналога просто не существует.

В итоге мы упёрлись в глухой тупик для UX:
👉 Если код авторизации пришел в Telegram, ваше приложение не может перехватить его легально.
👉 Пытаться читать пуши сторонних приложений через NotificationListenerService в Google Play строго запрещено — за это прилетает моментальный бан.
👉 Никакого доверенного и безопасного NotificationRetrieverAPI для мессенджеров Google не предлагает.

Пользовательский опыт в Android не развивается в соотвествии с трендами. Пользователь вынужден совершать кучу лишних движений: свернуть экран, открыть мессенджер, скопировать код, вернуться и вставить его руками. Пока Apple в iOS пытается развивать автоподстановку кодов из встроенной почты и системных уведомлений, Android-разработчики остаются заложниками ситуации, где безопасность SMS доведена до стерильности, а реальные сценарии из жизни брошены на произвол судьбы. Готовимся к тому, что процесс авторизации в приложениях на Android 17 станет еще чуть более «ручным».

#Android17 #AndroidDev #UX #Безопасность
Please open Telegram to view this post
VIEW IN TELEGRAM
👍48👎146🔥1
🤖 Kimi K3, GPT 5.6, Qwen3.8 Max и OPUS 5 добавили в результаты официального AI Android Бенчмарка

Как поменялся рейтинг?
🏆 Claude Opus 5 новый лидер с результатов 91.8%. Прошлый лидер Fable 5 был с результатов 90.9%. По цене Opus вышел дороже
🥉 GPT 5.6 Sol попал на 3 строку с результатом 90.8%
‼️ На 4 месте расположился Kimi K3 с результатов 90.2%
👉 GPT 5.6 Luna показала результат 86.8% но при этом стоимость указана 7.2$ 🤯 (кажется тут закралась ошибка все верно и это шок по эффективности)
👉 GPT 5.6 Terra набрала 86.8% потратив 48$, что сейчас точно является лучшим показателем в соотношение результата на затраченный 1$.
🤔 Qwen3.8 Max
показал достойные 87.0% но при этом потратил больше всех моделей - 196.7$

Бенчмарк все также игнорирует Grok и Compose модели 😡 Что-то не так в отношениях между компаниями Google и Илоном - загадка

UPD Kimi K3 не считается открытой моделью, что неверно. Изначально веса были закрыты и потом открываются. Видно в бенч попадают данные на момент запуска проверки модели.

#AI #Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥21👎62
🚀 Вышел AndroidX Tracing 2.0.0 — серьёзный апгрейд трейсинга

Tracing - это инструмент для низкооверхедного in-process трейсинга — записи временных срезов выполнения кода прямо внутри процесса приложения.

Полезен, когда нужно:
👉 понять, где именно тормозит код (особенно в корутинах);
👉 собирать детальные трейсы в поле / на проде, а не только в Studio;
👉 инструментировать библиотеки без жёсткой привязки к Android;
👉 потом мёржить эти трейсы с системными (Perfetto).

Особенно пригодится:
👉 Android-разработчикам, которые занимаются перформансом;
👉 авторам библиотек (в т.ч. KMP);
👉 командам с тяжёлым использованием корутин;
👉 тем, кто пишет бенчмарки (хорошо дружит с AndroidX Benchmark 1.5+).

Выход 2.0 обусловлен полностью новым API и архитектурой работы:
👉 Появился полноценный in-process tracing с собственным буфером (не зависит от system trace buffer).
👉 Новая модель: TraceDriver + Tracer + TraceSink (можно подключать свои бэкенды).
👉 Настоящая поддержка корутин с отслеживанием suspend/resume и переключений потоков.
👉 Поддержка KMP (Android + JVM).
👉 Существенно ниже оверхед по сравнению со старым android.os.Trace / trace {}.

Старый API не deprecated его по-прежнему рекомендуют для редких критичных событий, которые обязаны попасть в system trace.

🔗 Полные release notes по ссылке

#AndroidDev #Perfromance #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18👎5
🚀 Обновление AndroidX Fragment

Вышел androidx.fragment:fragment-*:1.9.0.

Три изменения, которые реально заметны:
👉 Fragment теперь реализует ContextAware. Можно повесить OnContextAvailableListener и выполнить код в момент, когда контекст стал доступен (аналог того, что давно есть у Activity).

👉 У composable AndroidFragment {} появился параметр maxLifecycle. Можно жёстко ограничить lifecycle вложенного фрагмента — удобно в пейджерах, табах и других сложных UI, где не хочется, чтобы offscreen-фрагмент уезжал в RESUMED.

👉 Добавили system tracing lifecycle-событий через Jetpack Tracing. В Perfetto теперь видно, что происходит с фрагментами.

Плюс куча фиксов predictive back и setMaxLifecycle + popBackStack, которые тянулись с 1.8.x.

Если живёте на Fragment + Compose interop — обновляться имеет смысл. Чистый Compose-проект может спокойно пропустить.

#Android #AndroidDev #Jetpack #Fragment
Please open Telegram to view this post
VIEW IN TELEGRAM
👍26👎5🎉422
🚀 Вышел AndroidX WebKit 1.17.0 — обновленная навигация и контроль над кэшем

Самое полезное в новом минорном релизе:
👉 WebViewCompat.navigate наконец-то нормальная замена loadUrl. Можно заменять страницу в истории, получать объект Navigation и корректно сохранять/восстанавливать заголовки. Для приложений, где WebView — не просто «открыть ссылку», а нормальный флоу, это давно было нужно.

if (WebViewFeature.isFeatureSupported(WebViewFeature.WEBVIEW_NAVIGATE_EXPERIMENTAL_V1)) {
val params = NavigationParameters.Builder()
.setShouldReplaceCurrentEntry(true) // заменяет текущую запись в истории
.addAdditionalHeader("X-Custom-Header", "value")
.build()

val navigation: Navigation
= WebViewCompat.navigate(webView, "https://example.com", params)

// navigation можно потом матчить в NavigationListener
}


👉 Контроль HTTP-кэша через Profile.getHttpCache. Можно посмотреть квоту и при необходимости подкрутить. Полезно, если много статики, или наоборот — когда кэш только место жрёт.

if (WebViewFeature.isFeatureSupported(WebViewFeature.HTTP_CACHE_MANAGER)) {
val profile = ProfileStore.getInstance().getOrCreateProfile("my_profile")
val httpCache = profile.httpCache // или profile.getHttpCache()

// Посмотреть текущую квоту
val currentQuota = httpCache.quotaBytes
val defaultQuota = httpCache.defaultQuotaBytes
val isDefault = httpCache.isUsingDefaultQuota

// Задать свою квоту (например, 50 МБ)
httpCache.setQuotaBytes(50L * 1024 * 1024)

// Или вернуть автоматическое управление
// httpCache.useDefaultQuota()
}


👉enqueuePreconnect — можно заранее поставить preconnect в очередь, не заставляя WebView стартовать прямо сейчас.

👉 Можно отключить автоматическую загрузку фавиконок (setDownloadFaviconsEnabled). Мелочь, но экономит память и трафик, особенно если иконок много.

👉 Плюс Android Lint, который теперь ругается, если кастомный WebViewClient не переопределил onRenderProcessGone. Полезно, потому рендерер падает регулярно.

🔗 Подробности релиза

#Android #AndroidDev #WebView #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
13👍4👎4🔥4