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
Forwarded from Compose Broadcast
⚙️ Jetpack Compose 1.11 — стабильный релиз! 🚀

Что нового:
👉 Визуальная отладка переходов Shared Elements
👉 Переработанная поддержка трекпадов — теперь работают как мышь и распознают жесты
👉 Preview Wrappers для более быстрой работы с превью
👉 Host Defaults для KMP-проектов
👉 Testing APIs v2 для корутин
👉 Экспериментальные API: Styles, MediaQuery, Grid, FlexBox

Подробности по каждому пункту — отдельными постами в @compose_broadcast

#Compose #Android #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍35👎4
🤖 Credential Manager теперь умеет отдавать верифицированный email без OTP

Google начала выпускать криптографически верифицированные email credentials прямо на Android-устройства. Получить их можно через Credential Manager API, который реализует стандарт W3C Digital Credentials API.

Механика простая: пользователь тапает "Sign up" или фокусируется на поле ввода email, появляется нативный bottom sheet с описанием запрашиваемых данных, один тап на "Agree and continue" - и приложение получает верифицированный адрес мгновенно. Никакого перехода в почту, никаких кодов.

Три сценария, где это применимо:
👉 Регистрация - вместе с получением email сразу инициировать создание passkey
👉 Восстановление аккаунта - больше не нужно искать письмо с recovery кодом в спаме
👉 Step-up аутентификация - для подтверждения чувствительных действий без OTP

‼️ ВАЖНО: верифицируется только email. Имя, фамилия, фото профиля доступны, но не верифицированы. Поддерживаются только личные аккаунты.

#Android #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍55👎6
🧠 Мой опыт погружения в разработке с ИИ в стиле вайбкодера без IDE

C начала 2026 года я активно сел изучать практическим путем решения задач в проектах и также создания новых идей. Много неудач, проб заново, изменяя подход, и первые результаты. Всё это я освещаю на Boosty в виде дневника.

Все видео погружения я выкладываю на 🪙 Boosty. Доступ к ним можно получить за 300 рос. рублей в месяц!

P.S. Cкоро уже начну делать стримы/видео на Boosty чтобы показывать вживую Videcoding т.к. уже получил достаточный навык.

#AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
18👎114👍31
🤖 Telegram выпустил нативный Android SDK для авторизации через свой аккаунт — больше никаких WebView и редиректов в мессенджер. Также есть версия для iOS

До этого «Войти через Telegram» на Android означало либо открытие браузера, либо самостоятельную реализацию OIDC-флоу. Теперь есть отдельная библиотека login-sdk:1.0.0 — она запускает нативный экран подтверждения прямо из установленного Telegram.

Библиотека распространяется через GitHub Packages, а не Maven Central. Подключение требует GitHub Personal Access Token с read:packages — неудобно для командных проектов и CI.

Минимальная версия — API 23 (Android 6.0). Репо свежее: 2 коммита, 4 звезды. Стабильности пока ждать не стоит, но направление понятное.

Для сервисов, которые уже сидят в Telegram-экосистеме — ботов, мини-аппов, каналов с платным доступом — это логичное решение. Для остальных порог входа через GitHub Packages немного портит картину.

#Android #Telegram #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍89👎6
🏝 Вышла первая стабильная версия Metro DI — чистого Kotlin-решения с валидацией графа на этапе компиляции.

Решение вобрало в себя всё самое лучшее от Dagger, Anvil и kotlin-inject, чтобы стать тем стандартом для KMP-проектов, который искали после Dagger.

Metro DI не использует KSP или KAPT. Вся генерация осуществляется с помощью плагина компилятора Kotlin.

#Kotlin #KMP #DI
Please open Telegram to view this post
VIEW IN TELEGRAM
👍60👎6
🌼 Труд, май и правильная осанка!

С 1 по 11 мая включительно скидки до -20% на мебель и аксессуары Ergostol для вашего домашнего офиса.
🔥 Акция суммируется с промокодами.

В акции участвуют популярные модели: стол Оптима 3.0, стол Ультима, кресло Экзо Флекс и много другого. Это отличная возможность приобрести их выгодно!

➡️ Со всеми предложениями можно ознакомиться на сайте.

💲Скидка -10% по промокоду ANDROID10 на сайте Ergostol.
Так же промокод действует и на Ozon 🛒

Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262
Please open Telegram to view this post
VIEW IN TELEGRAM
👎8👍4
🤖 Говорун - open source приложения под Android с офлайн распознованием русской речи и переводом её в текст. Можно посмотреть как организована работа с записыванием звука, accessibility framework и работой с ИИ моделью на устройстве

Установить можно из 🛒 RuStore

#Android #OpenSource
Please open Telegram to view this post
VIEW IN TELEGRAM
👎75👍35
🤯 Те кто использовал Jetpack Paging 3 знают насколько он может справиться только с базовыми сценариямми. Шаг влево или вправо - уже боль!

Сегодня хочу познакомить вас с альтернативой — библиотекой 🐱 Paginator. Это KMP-решение для пагинации, которое решает те самые проблемы, где Paging 3 начинает "буксовать".

Paginator построен на отличной модели от Jetpack Paging 3: страница — это адресуемая ячейка в кэше, кэш — обычная структура данных, а навигация — обычные методы.

1️⃣ Адресуемые страницы
Прямые методы goNextPage(), goPreviousPage() и jump(Bookmark). Deeplink на сообщение из пуша решается одной строкой.

2️⃣ Мутации по запросу
MutablePaginator предоставляет CRUD-операции: replace { it.id == 42 }, removeWhere { it.deleted }. Один лайк меняет один элемент без инвалидации всей страницы.

3️⃣ Сохраняемое состояние
Кэш — обычная структура данных, которую можно сериализовать через kotlinx.serialization. Методы serializeToJson() и restoreFromJson() решают проблему Process Death без плясок с бубном.

4️⃣ Библиотека, а не фреймворк
Написан на чистом Kotlin без платформенных зависимостей и живёт в commonMain. Логика пагинации становится частью общего доменного слоя KMP, не копируется между платформами и не имеет двух реализаций.

5️⃣ Курсорная пагинация "из коробки"
Отдельный класс CursorPaginator с единой моделью состояний, транзакций и сериализации.

Paginator — это не обёртка над Paging 3. Это другая модель, переосмысливающая ключевые типы. Обёртка просто не смогла бы дать ни мутации элемента, ни сериализации кэша.


🔗 Оригинальная статья на Хабре
🐱 Репозиторий Paginator

#Android #AndroidDev #KMP
Please open Telegram to view this post
VIEW IN TELEGRAM
👍77👎3
🐘 В мире Android и тем более KMP проектов огромное количество зависимостей. Та самая ситуация, когда build зеленый, sync прошел, но приложение падает в рантайме из-за NoSuchMethodError или ClassNotFoundException, знакома многим. Причина — тихий конфликт версий. Gradle по умолчанию старается брать самую новую версию из всех найденных, но срабатывает не всегда. В разных модулях одного проекта могут спокойно жить разные версии одной библиотеки (например, okhttp 4.9.0 в модуле А и 4.11.0 в модуле Б). Gradle не считает это конфликтом, потому что модули изолированы. В рантайме при передаче объекта между модулями — ClassCastException. Особенно больно это бьет в KMP, где общая бизнес-логика связывает всё в единую цепочку.

Плагин 🐱 Dependency Conflict Analyzer переворачивает подход. Он встраивается в Gradle и каждый раз при синхронизации автоматически анализирует весь граф зависимостей по всем модулям. Не нужно ничего запускать вручную или гадать, кто что подтянул. Если есть расхождение в major-версиях — плагин сразу покажет конфликт в консоли. Причём он найдет даже скрытые расхождения между разными модулями, которые Gradle игнорирует.

# Пример работы плагина
Version conflict detected: org.slf4j:slf4j-api
- version 2.0.17 via:
- project :app -> ch.qos.logback:logback-classic:1.4.11 -> org.slf4j:slf4j-api:2.0.17
...
- version 1.7.25 via:
- project :app -> org.apache.logging.log4j:log4j-slf4j-impl:2.17.1 -> org.slf4j:slf4j-api:1.7.25


Такая проактивная проверка помогает фиксить конфликты еще на этапе разработки и писать более стабильный код. Попробуйте.

#Gradle
Please open Telegram to view this post
VIEW IN TELEGRAM
👍59👎8
📹 /e/OS - дегуглификация Android с подходом экосистемы Apple

Продолжаю разбор как избавится на Android от слежки Google. /e/OS - это не просто форк AOSP, но и развитие экосистемы альтернативых сервисов, а также свои эталонные устройств на собственной ОС из коробки

Все подробности в новом видео на 📹 YouTube и 📹 VK Video

#AndroidBroadcast
Please open Telegram to view this post
VIEW IN TELEGRAM
👎43👍27
🤖 GPT 5.5 и 5.4 лучше подходят для Android разработки, чем модели Claude. РАУНД!

Данные официального бенчмарка Google

#AI #Benchmark
Please open Telegram to view this post
VIEW IN TELEGRAM
👍81👎30
🚀 Вышел Jetpack Paging 3.5.0 где добавили возможность получения данных как StateFlow

// В ViewModel
val pager = Pager(pagingConfig, pagingSourceFactory)
val pagerFlow: Flow<ItemSnapshotList> = pager.flow.asState()

// Пример в Compose
val snapshotFlow = viewModel.pagerFlow.collectAsStateWithLifecycle(initialList)
val snapshot = itemsFlow.value

LazyColumn {
items(items = snapshot.items) { ... }
}


Также появилась возможность явно вызвать загрузку новых страниц через методы append() и prepend(), а также refresh() и retry()
LazyColumn {
item {
LaunchedEffect(viewModel) { viewModel.prepend() }
}
items(snapshot.items) { item -> Text("Item: $item") }
item {
LaunchedEffect(viewModel) { viewModel.append() }
}
}


Кажется, что сделали жизнь проще, но мой опыт с Paging всегда упирался в проблемы кэширования и удобной работы в Data слое. Всегда считал эту библиотеку архитектурно неудачной и ждал когда же ее переделают полностью.

#Android #Jetpack #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍42👎6
🚀 Вышел AndroidX WebKit 1.16.0. Забирай в работу интеграции

👉 minSdk поднят до 24 (Android 7.0) — учитывайте при апгрейде.

👉 Async-старт WebView вышел из experimental. startUpWebView вместе с ProcessGlobalConfig позволяют прогреть WebView в фоне до того как он понадобится UI. Эту штуку давно ждали в стабильной версии — для меня самое ценное обновление этого релиза.

👉 Navigation API тоже стабильный. Больше не надо @OptIn — addNavigationListener даёт колбэки на разных стадиях навигации, ошибку загрузки через Navigation.webResourceError, URL текущей страницы через Page. Главное — теперь FCP и LCP метрики прилетают напрямую из WebView без инъекции JS:

// Перед использованием проверь
// WebViewFeature.isFeatureSupported(WebViewFeature.NAVIGATION_LISTENER)
WebViewCompat.addNavigationListener(webView, object : NavigationListener {
override fun onFirstContentfulPaintMillis(page: Page, millisFromNavStart: Long) {
analytics.report("FCP", millisFromNavStart, page.url)
}
override fun onLargestContentfulPaintMillis(page: Page, millisFromNavStart: Long) {
analytics.report("LCP", millisFromNavStart, page.url)
}
override fun onNavigationCompleted(navigation: Navigation) {
navigation.webResourceError?.let { err ->
Log.w("WV", "load failed: ${err.errorCode}")
}
}
})


На один WebView можно вешать несколько листенеров и прокидывать свой Executor если нужны колбэки в фоновом потоке.

👉 WebViewCompat.saveState теперь умеет ограничивать размер state. Если ловили TransactionTooLarge при сохранении состояния — это для вас.

👉 Подвезли addJavaScriptOnEvent для инъекции JS на загрузку документа и инъекцию скриптов в isolated worlds без конфликтов со страницей. Гибридным приложениям пригодится.

👉 [EXPERIMENTAL] BackForwardCacheSettings полностью переписали. Если использовали старый Builder через WebSettingsCompat.setBackForwardCacheSettings — ловите ошибку компиляции при апгрейде. Теперь так:

val settings = WebSettingsCompat.getBackForwardCacheSettings(webView.settings)
settings.setMaxPagesInCache(5)


👉 Profile.setSpeculativeLoadingConfig депрекейтнут, замена через Profile.setMaxPrerenders плюс PrefetchCache.setMaxPrefetches и setPrefetchTtlSeconds (тоже experimental).

#Android #Webview #Web #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
👍29👎4
Android Show 2026, ставший традицией перед Google I/O, снова привлек наше внимание. В прошлом году нам показали Material 3 Expressive, а в этом году мы увидели три ключевых направления развития. Давайте разберемся с каждым из них по порядку.

1️⃣ Наконец-то Google представил свой собственный аналог Apple Intelligence, получивший название Gemini Intelligence. Это интерфейс, работающий поверх Android, который анализирует контекст экрана и выполняет действия на его основе. Например, если долго зажать кнопку питания над списком заметок, Gemini автоматически добавит товары в корзину для доставки. Если в Gmail найдено расписание курса, Gemini поместит необходимые книги в корзину. Также он интегрируется с Chrome, обеспечивая автобраузинг на мобильных устройствах; с Gboard — очищая голосовой ввод от мычания и повторов; а также с генеративными виджетами для домашнего экрана и плитками Wear OS.

Летом на свет появятся новые модели Pixel и Galaxy, а затем последуют часы, очки, автомобили и ноутбуки.
Неожиданно, что обычный Gemini не обладал этими возможностями сам по себе. Пришлось вынести их в отдельный продукт под собственным брендом. С маркетинговой точки зрения это логично: создать «премиум-решение с продвинутыми AI-функциями» для дорогих устройств, чтобы бюджетные Android-смартфоны не получили к ним доступ. Тем не менее, остался небольшой осадок.

#Google #Gemini
Please open Telegram to view this post
VIEW IN TELEGRAM
👎40👍10
2️⃣Обновление Android Auto и автомобили с интегрированным Google

Редизайн Android Auto в стиле Material 3 Expressive: новые шрифты, анимации, обои, поддержка виджетов. Оптимизировали круглые, прямоугольные и овальные дисплеи — теперь поддерживается любая форма. Immersive Navigation в Картах с 3D-зданиями, разметкой полос и светофорами. На поддерживаемых автомобилях теперь доступно видео в разрешении FHD с частотой 60 кадров в секунду на парковке, а также поддержка Dolby Atmos.

Виджеты в машине действительно удобны, их давно ждали. Это позволит реализовать различные интеграции.

Для России и Беларуси тема малоактуальна. Рынок сейчас почти полностью китайский, а там с Android Auto просто никак. Какая разница, как Google прокачал систему, если в вашей машине её всё равно не будет? Большие машины себе установят и поедут, остальным — мимо.

Круглые дисплеи — дело вкуса. Прямоугольный кажется самым простым, понятным и удобным.

#Android #AndroidAuto
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
👍27👎6
🤯 Самый громкий анонс шоу - Googlebook. Новая категория ноутбуков на базе гибрида Android и ChromeOS, с Gemini в самом ядре.

Запуск осенью. И тут главная боль. Я ждал, что Google наконец возьмёт ноутбуки под свой контроль, сделает эталонный девайс, как делает с Pixel смартфонами. А оказалось — партнёрская программа. Собирать будут Acer, Asus, Dell, HP, Lenovo. То есть нас ждёт стандартная история Android-смартфонов: разброс по качеству, цене, поддержке. Кто-то выпустит сырую дешёвку, кто-то нормальный дорогой девайс, и общее впечатление от платформы размажется.

Со смартфонами Google это уже поняла и Pixel делает качественно. С ноутбуками — почему-то наступила на те же грабли. На мой взгляд — это главный провал шоу. Слово громкое, но точнее не подобрать.

Что касается самой ОС, то пока выглядит как прокачанный ChromeOS с глубокой интеграцией с Android: общие файлы, объединённые подходы между смартфоном и ноутом. Деталей мало, всё решат софт и реальные сценарии. Но желания пойти купить нет от слова совсем. Вендорам, которые это будут собирать, доверия мало.
Подождём первые девайсы. Если эталонного от Google не будет — буду грустить.

#Android #Geminie #ChromeOS #Googlebook #Google
👍27👎20
7 июня в Москве Яндекс проведет Mobile Runtime летнюю встречу для мобильных разработчиков!

Вместе с экспертами обсудим AI в мобилке, кросс-платформы, BDUI, скорость и качество приложений, а также движение индустрии и навыки будущего.

Программа разделена на 2 трека:

🔹 AI: как инструменты помогают ускорять работу и как AI-фичи внедряются в приложения — от кейсов до архитектуры и технических решений.

🔹 Not so AI: нативная разработка, кроссплатформенность, архитектура, а также карьера, команды и развитие в индустрии. Например, Лев Бондаренко, старший iOS-разработчик в Яндекс Еде, расскажет о том, какие цели ставили при запуске медиаленты в приложении и как работали с возникающими трудностями.

🗺 В Москве очных участников встречи ждут воркшопы, дискуссии и соревнования в летнем дворике, а для тех, кто не сможет прийти, будет доступна онлайн-трансляция.

➡️ Регистрация уже открыта
Please open Telegram to view this post
VIEW IN TELEGRAM
👎20👍10
🚀 Jetpack Telecom 1.1.0 добавил то, чего не хватало VoIP-приложениям с самого начала — историю звонков прямо в системном дайлере.

До этого момента пропущенный звонок в Telegram или любом другом VoIP-приложении требовал переключиться в само приложение, найти вкладку с историей и перезвонить оттуда. Теперь это можно делать прямо из нативного дайлера Android.

Работает через два новых механизма. Первый — интеграция лога звонков. Приложение регистрирует звонки через TelecomManager.addCall, и они автоматически попадают в системную историю. Для обратного звонка нужно зарегистрировать intent-фильтр на TelecomManager.ACTION_CALL_BACK и правильно обработать EXTRA_UUID, который система отдаёт вместе с вызовом. UUID генерирует CallControlScope.getCallId в момент регистрации звонка — его и нужно хранить, чтобы потом разрезолвить детали вызова.

Второй механизм — исключение из лога. Не каждый звонок стоит светить в системной истории, и теперь это явно контролируется через флаг isLogExcluded = true в CallAttributesCompat. Например, эфемерные или приватные звонки можно просто не записывать.

‼️ ВАЖНО: фичи доступны только на Android 16.1 (SDK 36.1) и выше. Кроме того, нативные дайлеры используют package allowlist для контроля того, какие VoIP-приложения отображаются в истории. Роллаут идёт поэтапно, первым подключился Google Meet. Для локального тестирования Google рекомендует Telecom Sample Dialer из platform-samples.

Меня радует сам вектор: Google последовательно закрывает разрыв между VoIP и нативной телефонией. Жаль, что allowlist пока ограничивает возможности сторонних приложений. Печально то, что это делают так поздно, когда звонки не по телефону делают уже 5–10 лет.

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

#Android #Telecom #AndroidJetpack
Please open Telegram to view this post
VIEW IN TELEGRAM
👍58👎4