Android Broadcast
前往频道在 Telegram
Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR
显示更多📈 Telegram 频道 Android Broadcast 的分析概览
频道 Android Broadcast (@android_broadcast) 俄语 语言赛道中的 是活跃参与者。目前社区聚集了 14 583 名订阅者,在 技术与应用 类别中位列第 8 750,并在 俄罗斯 地区排名第 45 369 位。
📊 受众指标与增长动态
自 невідомо 创建以来,项目保持高速增长,吸引了 14 583 名订阅者。
根据 10 七月, 2026 的最新数据,频道保持稳定运转。过去 30 天订阅人数变化为 39,过去 24 小时变化为 -1,整体触达仍然可观。
- 认证状态: 未认证
- 互动率 (ER): 平均受众互动率为 44.92%。内容发布后 24 小时内通常能获得 23.72% 的反应,占订阅者总量。
- 帖子覆盖: 每篇帖子平均可获得 6 551 次浏览,首日通常累积 3 459 次浏览。
- 互动与反馈: 受众积极参与,单帖平均反应数为 42。
- 主题关注点: 内容集中在 api, kotlin, gradle, сборка, androiddev 等核心主题上。
📝 描述与内容策略
作者将该频道定位为表达主观观点的平台:
“Подборка новостей и статей для Android разработчиков.
Реклама и связь с автором @ab_manager
РКН https://abdev.by/rkn_tg_ab #MQRZR”
凭借高频更新(最新数据采集于 11 七月, 2026),频道始终保持新鲜度与高覆盖。分析显示受众积极互动,使其成为 技术与应用 类别中的关键影响点。
14 583
订阅者
-124 小时
-27 天
+3930 天
帖子存档
14 583
‼️ Google отменяет Compose Material Icons
С релизом Compose Material 3 — версии 1.4.0 Google сделала радикальный шаг: библиотека androidx.compose.material.icons исключена из Material3 и больше не рекомендуется к использованию.
Что произошло
👉 Material Icons удалены из актуального релиза Material3 1.4.0
👉 Поддержка библиотеки прекращена
👉 Можно подключить вручную, но это временная мера для тех, кто не успел мигрировать
❌ Основная причина отказа - негативное влияние на скорость сборки. Библиотека Material Icons тащит весь огромный набор иконок. Это ощутимо увеличивает build time крупных Android и Compose Multiplatform проектов.
Google предлагает переходить на Vector Drawable XML в Android или Compose Multiplatform ресурсах. Скачивайте иконки с вкладки Android на странице Material Symbols и храните в ресурсах проекта
Преимущества использования Material Symbole:
✔️ актуальный набор иконок
✔️ минимальный вес и отсутствие лишних зависимостей
✔️ предсказуемое время сборки
✔️ лучший контроль над ресурсами проекта
❗️ Обновлений библиотеки Material Icons не будет!
Источник - официальная документация Android Jepack
Благодарю подписчика Evgeny F. за то, что обратил внимание на изменение.
#Android #AndroidJetpack #Material3 #Compose #CMP
14 583
🤯 Зачем делать мультиплатформу, если есть AI? Своими мыслями делюсь в 📹 новом видео
Кажется, что AI та серебряная пуля, которую так хотели для экономии на разработке под iOS и Android
#AndroidBroadcast #AI #ИИ #kmp #flutter
14 583
14 583
🐱 OpenCode - open source ИИ агент для написания кода из терминала без привязки к конкретной модели
Ключевые возможности:
🔹 Нативный Terminal UI - Современный, отзывчивый и кастомизируемый интерфейс прямо в терминале — выглядит как полноценный редактор.
🔹 Поддержка LSP - Автоматически поднимает нужные LSP для контекста модели — агент лучше понимает проект и пишет более точный код.
🔹 Параллельные сессии. Можно запустить несколько агентов на одном репозитории — например, один для рефакторинга, другой для тестов.
🔹 Шаринг ссылок. Любую сессию можно поделиться ссылкой — удобно для ревью и отладки с коллегами.
🔹 Поддержка Claude Pro / Max. Вход через Anthropic, если у вас есть подписка — OpenCode использует её напрямую.
🔹 Любые модели. 75+ провайдеров через Models.dev, включая локальные LLM — можно выбрать от недорогих до крупных оффлайновых моделей.
🔹 Любой редактор. OpenCode не привязан к IDE — работает в терминале и отлично дополняет Android Studio / IntelliJ / VS Code.
Это один из самых быстроразвивающихся инструментов для работы с агентами локально. Подходит тем, кто активно пишет код, хочет меньше переключаться между окнами и предпочитает прозрачную архитектуру без вендор лока.
#ии #ai
Это один из самых быстроразвивающихся инструментов для работы с агентами локально. Подходит тем, кто активно пишет код, хочет меньше переключаться между окнами и предпочитает прозрачную архитектуру без вендор лока.
#ии #ai
14 583
🤖 Как обработать слишком быстрый ввод пользователя с помощью Coroutines Flow
Иногда пользователь печатает так быстро, что приложение просто не успевает думать.
Особенно в поиске: a → an → and → andr
Каждое изменение — новое событие, новая реакция, новый запуск поиска.
В итоге интерфейс начинает дёргаться, логика усложняется, а система тратит ресурсы впустую.
Причина проста: приложение реагирует на шум, а не на смысл.
Чтобы вернуть контроль, важно улавливать момент паузы, когда пользователь действительно закончил ввод.
⏳ Зачем нужен debounce()
Оператор debounce() работает как фильтр слишком быстрых изменений:
- быстрые изменения подряд — игнорируются
- устойчивое значение после паузы — двигаются по потоку дальше
Поток перестаёт реагировать на каждую букву и начинает слушать устойчивые состояния строки.
```kotlin
val results = query
.debounce(300) // значение задержки можно менять
.distinctUntilChanged()
.map { term -> searchData(term) }
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList())
```kotlin
------------
Помимо полезных символов, пользователь может случайно добавить пробел в конце или другой невидный символ. Фактически это тот же запрос — но без обработки поиск запустится повторно.
В таких случаях можно определиться как оператор distinctUntilChanged() будет сранивать значения:
query
.debounce(300)
.distinctUntilChanged { old, new ->
old.trim() == new.trim()
}
Теперь оба состояния считаются одинаковыми, и поиск не перезапускается зря.
#kotlin #coroutines #flow #android14 583
🪙 Разрабатываю Gradle плагин для Swift кода в Android сборке (2 ч)
Не так давно разобрал как работает Swift для Android, но там совсем "на скорую руку" сделали интеграцию с Gradle билд системой.
Решил показать как будет сделать нормальный плагин по лучшим практикам Gradle. Демонстрация разработки в новом видео.
Если у вас есть проблемы с Boosty - пишите @ab_manager
#AndroidBroadcast #Gradle #Swift #AndroidDev
14 583
🤯 ИИ не спасёт экономику — и не заменит всех людей
Нобелевский лауреат и «крёстный отец ИИ» Джеффри Хинтон заявил жёстко:
инвестиции в ИИ не окупятся без массовой замены людей.Но проблема в другом: ИИ сегодня уже снижает производительность во многих компаниях, ошибается, требует постоянной перепроверки и не способен выполнять даже простые задачи стабильно. Отчёты MIT и Carnegie Mellon показывают: 👉 до 95% ИИ-проектов не дают роста эффективности 👉 «агентный ИИ» проваливает задачи в 70% случаев 👉 сотрудники тратят больше времени на исправление ИИ, чем экономят Ожидания руководства ≠ реальность специалистов. ✅ 96% топ-менеджеров верят в рост эффективности от ИИ. ❌ 77% обычных сотрудников говорят об обратном. Вывод простой: ✨ ИИ — это инструмент, а не замена людям 💣 Текущий AI-бум — больше инвестиционный пузырь, чем технологический прорыв 🧠 А главный риск — не в моделях, а в слепой вере в «магическую автоматизацию» Использовать ИИ нужно ❗️ Но разумно. И под контролем человека. #AI #ии #разработка
14 583
🤖 Как в приложение Додо пиццы добавляли Live Update из Android 16: где макеты врут, a SDK ставит границы
Я давно ждал, когда в Android появится аналог крутых Live Activities из iOS. И когда Google наконец-то представил **Live Updates в Android 16, сразу же ждал когда она появится в приложениях доставки/такси, используемыми мною. Неудивительно но ДоДо Пицца оперативно это сделали.
Оказалось, что за красивыми картинками из презентации скрывается целая история с ограничениями, которые не описаны в документации. Ребят из ДоДо прошли через боль дизайнеров, перерисовывавших макеты, и неожиданные сюрпризы от SDK и рассказывают про свой опыт.
🔑 Ключевые открытия и борьба с реальностью:
🤯 **Макеты врут! Иконка (например, машинка) не может красиво «обрезать» сегмент прогресс-бара, как в дизайне. Она просто ложится сверху, и между ними всегда будет зазор.
🖌 Цвета не сходятся. У прогресс-бара есть скрытый оверлей, поэтому подобрать идеально одинаковый цвет для иконки и бара — невозможно.
📱 Эмулятор — не помощник. Ни чипсу в статус-баре, ни работу на Always-On-Display на эмуляторе не проверить. Только живой девайс!
🍎 iOS vs Android: В iOS Live Activities — это мини-виджет с огромной свободой для брендинга. В Android — это жёсткий системный шаблон. Минус для дизайнеров, но плюс для единообразия опыта пользователя.
✅ Что в итоге?
Несмотря на все ограничения, фича того стоит! Пользователи получают супер-наглядный и всегда видимый статус заказа, а мы — новый стандартизированный инструмент от Google.
А вы уже видели Live Updates в действии? Что думаете о таком подходе Google? 👇
#Android #Android16 #AlwaysOn
14 583
🔥Чёрная пятница на Podlodka Crew🔥
С 25 ноября по 5 декабря действуют скидки на библиотеку, конференции и плейлисты — хороший момент взять нужные материалы по минимальной цене.
Podlodka Crew — это серия онлайн-конференций для IT-специалистов. Каждый сезон посвящён отдельной теме и собирает практичные доклады, воркшопы и разборы кейсов от инженеров крупных продуктов и быстрых стартапов.
Для Android-разработчиков много полезного: плейлисты про Compose, оптимизацию UI, Systed design, архитектуру и многое другое — всё можно пересматривать в удобном темпе.
К Чёрной пятнице доступны:
📚Годовой доступ к библиотеке — 9 999₽ вместо 15 000₽
1300+ часов докладов, воркшопов и сессий, которые удобно смотреть точечно — под конкретную задачу или в своём ритме.
🎟 -30% на весенние конференции по промокоду
BROADCAST_BF25
Даты Podlodka Android Crew уже объявлены — это самая выгодная цена сезона.
🎒Скидки от 10% на плейлисты при покупке двух и более
Если вся библиотека не нужна, можно собрать тематическую подборку, чтобы закрыть пробелы в знаниях.
👉 Успевайте до 5 декабря
#реклама14 583
+1
🤖 Отлаживайте фоновые задачи в Android Studio как профи: Background Task Inspector для WokrManager
Работаете с WorkManager? Тогда вам точно пригодится встроенный в Android Studio инструмент — Background Task Inspector. Это ваш главный помощник для визуального мониторинга и отладки фоновых задач.
Что вы видите в инспекторе:
- Все WorkManager задачи в одном месте
- Текущие статусы: Running, Enqueued, Failed, Succeeded
- Детальную информацию о каждом воркере
Особенно мощно инструмент работает с цепочками задач:
// Например, у вас есть такая цепочка:
val workA = OneTimeWorkRequestBuilder<CleanupWorker>().build()
val workB = OneTimeWorkRequestBuilder<WaterColorFilterWorker>().build()
val workC = OneTimeWorkRequestBuilder<BlurEffectFilterColor>().build()
workManager
.beginWith(workA)
.then(workB)
.then(workC)
.enqueue()
Визуализация графа выполнения покажет:
- Какая задача завершилась успешно (Succeeded)
- Какая упала (Failed) и почему
- Как это повлияло на последующие задачи
Типичный сценарий отладки:
Видите статус «Enqueued»? Значит задача в очереди, но не запускается. Возможные причины:
- Ограничения не выполняются (нет сети, не заряжается устройство)
- Предыдущая задача в цепочке не завершилась
- Достигнут лимит параллельных задач
Преимущества использования:
- Экономия времени на логирование и отладку
- Наглядное представление сложных цепочек задач
- Быстрая диагностика проблем с выполнением фоновых операций
Инструмент уже ждет вас в Android Studio → View → Tool Windows → App Inspection → Background Task Inspector.
#AndroidStudio #Android #AndroidDev14 583
🔥 Черная неделя в Ergostol стартовала!
С 24 по 30 ноября вас ждут скидки до -20% на столы, подстолья и аксессуары.
В акции участвуют популярные модели: Terra 2.0, One 2.0, Ultima, Terra R 2.0 и другие. Это отличная возможность приобрести их выгодно!
⏳ Время ограничено! Успейте выбрать свой идеальный стол до 30 ноября.
👉 Со всеми предложениями можно ознакомиться на сайте.
🎁 А с промокодом
ANDROID10 получите ещё –10% на все товары в корзине!
Реклама. ООО «СОФТЭФФЕКТ». ИНН 773557526214 583
Вот бы классно чтобы все как Uber перешли на Credential Manager API и пересон аккаунтов стал проще для пользователей, а бизнесу дешевле
Подробности в статье от разработчика
#android
14 583
🚀 Input MotionPrediction 1.0.0 — снижаем задержки ввода с предсказанием жестов
Google выпустила первую стабильную версию Input MotionPrediction — библиотеку для уменьшения задержек при вводе за счет предсказания будущих MotionEvents.
Что это решает?
👉 Уменьшает perceived latency (воспринимаемую задержку) при взаимодействии с UI
👉 Предсказывает будущие координаты касания для более плавного отклика
👉 Особенно полезно для рисования, игр и жестовой навигации
// Создаем предсказатель
val predictor = MotionEventPredictor()
// Записываем полученные события
predictor.record(motionEvent)
// Получаем предсказанные события на N миллисекунд вперед
val predictedEvents = predictor.predict(milliseconds)
Ключевые особенности:
👉 Автоматически использует системные API предсказания если доступны
👉 Встроенный алгоритм предсказания
👉 Поддерживает ориентацию и наклон стилуса
👉 Оптимизирован по памяти и производительности
‼️ Кому будет полезна:
- Приложения для рисования и скетчей
- Игры с тач-управлением
- Сложные жестовые интерфейсы
- Любой UI, где важна мгновенная реакция на касания
#Jetpack #Android #UI #Производительность14 583
🔥 Мечтаете стать востребованным Архитектором ПО?
Знакомьтесь: книга «Фундаментальный подход к программной архитектуре» от гуру Марка Ричардса и Нила Форда! 🚀
Для кого:
👉 Мобильные разработчики, мечтающие вырасти до архитектора.
👉 Начинающие архитекторы
👉 Профессионалы для систематизации знаний.
Внутри руководства вы найдете:
🧩 Архитектурные паттерны (применимо и к мобильным стекам!).
🧱 Четкие определения компонентов и их взаимодействий.
⚙️ Практические приемы построения эволюционных архитектур.
💡 Современный взгляд с учетом последних 10 лет инноваций.
✔️ Универсальные принципы, работающие на любых технологиях.
Архитектура — не фреймворки, а стратегия! Учитесь проектировать системы с масштабируемостью, отказоустойчивостью, эволюционностью — это ваша ценность.
➡️ Промокод на скидку 5% —
broadcast на книги в издательстве Питер!
#реклама14 583
🤯 Android QuickShare теперь может работать с Apple AirDrop
Google самостоятельно сделали работу с AirDrop на всю линейку Pixel 10. Ждем когда раскатят дальше, либо Apple выкатит обновление и закроет возможность 😂
#android #pixel
14 583
🚀 Navigation Event 1.0.0 — новая KMP-библиотека для обработки навигации Назад на разных платформах
Что дает библиотека
👉 Единый кроссплатформенный API для замены разрозненных решений
👉 Централизованная система управления всей навигацией в приложении
👉 Базовый слой для будущих навигационных решений Android
Пример использования:
val myHandler = object : NavigationEventHandler<NavigationEventInfo>(
initialInfo = CurrentInfo,
isBackEnabled = true
) {
override fun onBackStarted(event: NavigationEvent) {
// Подготовка к навигации
}
override fun onBackProgressed(event: NavigationEvent) {
// Анимации на основе event.progress
}
override fun onBackCompleted() {
// Завершение навигации
}
}
👉 Готовая интеграция с Compose
val navEventState = rememberNavigationEventState(
currentInfo = CurrentInfo,
backInfo = PreviousInfo
)
NavigationBackHandler(
state = navEventState,
isBackEnabled = true,
onBackCompleted = { /* Действие при завершении */ }
)
👉 Диспетчеры могут образовывать родительско-дочерние цепочки:
// Compose
val childDispatcher = rememberNavigationEventDispatcher(
parent = LocalNavigationEventDispatcherOwner.current.navigationEventDispatcher
)
👉 Нативная поддержка Predictive Back из Android
👉 Библиотека уже используется в Activity 1.12.0 как базовый слой
#Jetpack #Navigation #Compose #KMP #PredictiveBack #Kotlin14 583
🚀 Lifecycle 2.10.0 вышел в стабильной версии!
Google выпустила мажорное обновление библиотек Lifecycle 2.10.0. Этот релиз сфокусирован на улучшении интеграции с Compose.
⚙️
rememberLifecycleOwner для Compose
Новый композабл позволяет создавать изолированные LifecycleOwner внутри UI. Идеально для компонентов, которым нужно независимое управление состоянием — например, для HorizontalPager, где только активная страница должна быть в состоянии RESUMED.
@Composable
fun MyComposable() {
val lifecycleOwner = rememberLifecycleOwner(
maxLifecycle = Lifecycle.State.RESUMED,
parentLifecycleOwner = LocalLifecycleOwner.current,
)
CompositionLocalProvider(LocalLifecycleOwner provides lifecycleOwner) {
// Дочерние композаблы теперь имеют собственный жизненный цикл
}
}
🚀 Интеграция с Navigation 3
Новый артефакт lifecycle-viewmodel-navigation3 предоставляет готовый декоратор для автоматической привязки ViewModel к отдельным экранам в Navigation 3.
NavDisplay(
backStack = backStack,
entryDecorators = listOf(
rememberSaveableStateHolderNavEntryDecorator(),
rememberViewModelStoreNavEntryDecorator(), // Добавляем эту строку
),
entryProvider = entryProvider { /* ... */ }
)
Удобства для разработчиков:
👉 Идиоматичный Kotlin API для создания кастомных CreationExtras
CreationExtras {
this[MY_CUSTOM_KEY] = "myValue"
}
* Поддержка nullable в `SavedStateHandle`: Метод savedStateHandle.saved() теперь нативно поддерживает nullable типы
* Конструкторы `SavedStateHandle` помечены как @VisibleForTesting
⚠️ Важное изменение
Повышение minSdk с API 21 до API 23 — убедитесь, что ваше приложение соответствует новым требованиям.
Вывод:
Lifecycle 2.10 — это значительный шаг к элегантной интеграции реактивного жизненного цикла с современным UI-стеком на Compose, особенно в связке с Navigation 3.
#Jetpack #Lifecycle #Compose #Navigation #ViewModel #Kotlin14 583
🚀 Вышла стабильная версия Jetpack DataStore 1.2
Google выпустила долгожданный стабильный релиз DataStore 1.2.0. Эта версия приносит несколько важных улучшений, которые делают библиотеку ещё более мощной и удобной, особенно для проектов, не полностью перешедших на Kotlin Coroutines.
Ключевые нововведения:
✅ Поддержка Guava
Появился новый модуль
datastore-guava, который предоставляет API на основе ListenableFuture для разработчиков, использующих Guava. Теперь подключать DataStore в проекты на Java стало намного проще (а нужно было???)
// Пример использования GuavaDataStore
val guavaDataStore: DataStore<Preferences> = GuavaDataStore.from(
produceFile = { context.preferencesDataStoreFile("settings.pb") },
serializer = PreferencesSerializer,
executor = Dispatchers.IO.asExecutor() // Используем Executor
)
ListenableFuture<Preferences> future = guavaDataStore.getData();
✅ Мультипроцессность для GuavaDataStore
Функциональность многопроцессного доступа, ранее доступная для Kotlin-версии, теперь добавлена и в GuavaDataStore.
✅ Поддержка Android Direct Boot - работа приложений до разблокировки устройства
DataStore теперь можно безопасно использовать в режиме Direct Boot. Для этого данные нужно разместить в защищённом хранилище устройства (Device Protected Storage).
// Через DataStoreFactory
val directBootDataStore = DataStoreFactory.createInDeviceProtectedStorage(
serializer = PreferencesSerializer
) { context.preferencesDataStoreFile("direct_boot_settings.pb") }
// Или через property delegate
Context.dataStoreDeviceProtected(
fileName = "direct_boot_settings.pb"
)
✅ Исправления важных багов
* Устранен UnsatisifedLinkError при использовании R8 без стандартного ProGuard-файла.
* Исправлена проблема, из-за которой операции GuavaDataStore могли запускаться на главном потоке вместо указанного IO-диспетчера.
* Решена проблема с FileNotFoundException в OkioStorage при одновременном обращении к файлу (добавлена вторая попытка чтения).
Прочие улучшения
👉 Добавлен PreferencesFileSerializer — готовый сериализатор для работы с FileStorage.
* Конструктор ReplaceFileCorruptionHandler стал публичным.
Выводы:
Версия 1.2 — это большой шаг вперёд, который расширяет аудиторию DataStore и закрывает болезненные проблемы. Если вы до сих пор использовали SharedPreferences, сейчас идеальное время перейти на современное и безопасное решение для хранения данных.
Ссылки:
[Официальная документация](https://developer.android.com/topic/libraries/architecture/datastore)
[Обновление зависимостей](https://developer.android.com/jetpack/androidx/releases/datastore#1.2.0)
#AndroidDev #Jetpack #DataStore #Kotlin #Java #Guava #Android14 583
⭐️ Gemini 3 Pro стала доступна в Android Studio
Сразу после выхода нового поколения Gemini, модель стала доступна в самой свежей версии Android Studio Otter
#androidstudio #ai #gemini
