Android Broadcast
14.4K subscribers
3.68K photos
367 videos
11 files
6.1K links
Подборка новостей и статей для Android разработчиков.

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

РКН https://abdev.by/rkn_tg_ab #MQRZR
Download Telegram
🔥 Мечтаете стать востребованным Архитектором ПО?

Знакомьтесь: книга «Фундаментальный подход к программной архитектуре» от гуру Марка Ричардса и Нила Форда! 🚀

Для кого:

👉 Мобильные разработчики, мечтающие вырасти до архитектора.
👉 Начинающие архитекторы
👉 Профессионалы для систематизации знаний.

Внутри руководства вы найдете:

🧩 Архитектурные паттерны (применимо и к мобильным стекам!).
🧱 Четкие определения компонентов и их взаимодействий.
⚙️ Практические приемы построения эволюционных архитектур.
💡 Современный взгляд с учетом последних 10 лет инноваций.
✔️ Универсальные принципы, работающие на любых технологиях.

Архитектура — не фреймворки, а стратегия! Учитесь проектировать системы с масштабируемостью, отказоустойчивостью, эволюционностью — это ваша ценность.

➡️ Промокод на скидку 5% — broadcast на книги в издательстве Питер!

#реклама
Please open Telegram to view this post
VIEW IN TELEGRAM
🤔75👍4🤯1
🚀 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 #Производительность
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥32👍10🤯5
⚙️ Команда Compose добилась плавности скрола как в View на Android. Источник тут

#compose
Please open Telegram to view this post
VIEW IN TELEGRAM
👍103🔥354
Вот бы классно чтобы все как Uber перешли на Credential Manager API и перенос аккаунтов стал проще для пользователей, а бизнесу дешевле

Подробности в статье от разработчика

#android
👍222
🔥 Черная неделя в Ergostol стартовала!

С 24 по 30 ноября вас ждут скидки до -20% на столы, подстолья и аксессуары.

В акции участвуют популярные модели: Terra 2.0, One 2.0, Ultima, Terra R 2.0 и другие. Это отличная возможность приобрести их выгодно!

Время ограничено! Успейте выбрать свой идеальный стол до 30 ноября.
👉 Со всеми предложениями можно ознакомиться на сайте.

🎁 А с промокодом ANDROID10 получите ещё –10% на все товары в корзине!

Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262
Please open Telegram to view this post
VIEW IN TELEGRAM
👍51
🤖 Отлаживайте фоновые задачи в 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 #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
30👍8🤔1
🤖 Как в приложение Додо пиццы добавляли 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
Please open Telegram to view this post
VIEW IN TELEGRAM
👍30🔥114🤔3
🤯 ИИ не спасёт экономику — и не заменит всех людей

Нобелевский лауреат и «крёстный отец ИИ» Джеффри Хинтон заявил жёстко:
инвестиции в ИИ не окупятся без массовой замены людей.


Но проблема в другом:
ИИ сегодня уже снижает производительность во многих компаниях, ошибается, требует постоянной перепроверки и не способен выполнять даже простые задачи стабильно.

Отчёты MIT и Carnegie Mellon показывают:
👉 до 95% ИИ-проектов не дают роста эффективности
👉 «агентный ИИ» проваливает задачи в 70% случаев
👉 сотрудники тратят больше времени на исправление ИИ, чем экономят

Ожидания руководства ≠ реальность специалистов.
96% топ-менеджеров верят в рост эффективности от ИИ.
77% обычных сотрудников говорят об обратном.

Вывод простой:
ИИ — это инструмент, а не замена людям
💣 Текущий AI-бум — больше инвестиционный пузырь, чем технологический прорыв
🧠 А главный риск — не в моделях, а в слепой вере в «магическую автоматизацию»

Использовать ИИ нужно ❗️ Но разумно. И под контролем человека.

#AI #ии #разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
👍97🤝15🆒5🤯4🎉2
🪙 Разрабатываю Gradle плагин для Swift кода в Android сборке (2 ч)

Не так давно разобрал как работает Swift для Android, но там совсем "на скорую руку" сделали интеграцию с Gradle билд системой.

Решил показать как будет сделать нормальный плагин по лучшим практикам Gradle. Демонстрация разработки в новом видео.

Если у вас есть проблемы с Boosty - пишите @ab_manager

#AndroidBroadcast #Gradle #Swift #AndroidDev
Please open Telegram to view this post
VIEW IN TELEGRAM
9👍13🔥94🤯1
🤖 Как обработать слишком быстрый ввод пользователя с помощью Coroutines Flow

Если внимательно посмотреть на поведение людей в поисковых полях, становится понятно:
пальцы работают быстрее, чем приложение успевает реагировать.

Пользователь печатает «a», тут же «an», следом «and» — а приложение в панике пытается перестроить результаты после каждого шага. Поток начинает «стрелять» событиями, система перегружается, а интерфейс выглядит так, будто его кто-то перематывает на ускоренной перемотке.

Главная проблема здесь не скорость человека — а то, что приложение воспринимает каждую мелочь как повод что-то пересчитать.

Чтобы интерфейс работал предсказуемо, нужно научить поток реагировать не на каждое изменение, а на осмысленное завершение ввода.
Зачем нужен debounce()

Оператор debounce() работает как фильтр слишком быстрых изменений:
- быстрые изменения подряд — игнорируются
- устойчивое значение после паузы — двигаются по потоку дальше

Поток перестаёт реагировать на каждую букву и начинает слушать устойчивые состояния строки.

val results = queryFlow
.debounce(300) // значение задержки можно менять
.distinctUntilChanged()
.map { term -> searchData(term) }
.stateIn(viewModelScope, SharingStarted.WhileSubscribed(5000), emptyList())

------------
Помимо полезных символов, пользователь может случайно добавить пробел в конце или другой невидный символ. Фактически это тот же запрос — но без обработки поиск запустится повторно.

В таких случаях можно определиться как оператор distinctUntilChanged() будет сранивать значения:
queryFlow
.debounce(300)
.distinctUntilChanged { old, new ->
old.trim() == new.trim()
}


Теперь оба состояния считаются одинаковыми, и поиск не перезапускается зря.

#kotlin #coroutines #flow #android
Please open Telegram to view this post
VIEW IN TELEGRAM
880👍54🤔3
Media is too big
VIEW IN TELEGRAM
🐱 OpenCode - open source ИИ агент для написания кода из терминала без привязки к конкретной модели

Ключевые возможности:

🔹 Нативный Terminal UI - Современный, отзывчивый и кастомизируемый интерфейс прямо в терминале — выглядит как полноценный редактор.

🔹 Поддержка LSP - Автоматически поднимает нужные LSP для контекста модели — агент лучше понимает проект и пишет более точный код.

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

🔹 Шаринг ссылок. Любую сессию можно поделиться ссылкой — удобно для ревью и отладки с коллегами.

🔹 Поддержка Claude Pro / Max. Вход через Anthropic, если у вас есть подписка — OpenCode использует её напрямую.

🔹 Любые модели. 75+ провайдеров через Models.dev, включая локальные LLM — можно выбрать от недорогих до крупных оффлайновых моделей.

🔹 Любой редактор. OpenCode не привязан к IDE — работает в терминале и отлично дополняет Android Studio / IntelliJ / VS Code.

Это один из самых быстроразвивающихся инструментов для работы с агентами локально. Подходит тем, кто активно пишет код, хочет меньше переключаться между окнами и предпочитает прозрачную архитектуру без вендор лока.

#ии #ai #opensource
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥10👍51
🐱 Kvaesitso - open source лаунчер для Android. Можно изучить исходники для понимания как строится современный лаунчер

Скачать сборку можно тут

#android #opensource #пример
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
224👍14🔥9🤔3
🤯 Зачем делать мультиплатформу, если есть AI? Своими мыслями делюсь в 📹 новом видео

Кажется, что AI та серебряная пуля, которую так хотели для экономии на разработке под iOS и Android

#AndroidBroadcast #AI #ИИ #kmp #flutter
Please open Telegram to view this post
VIEW IN TELEGRAM
🤯16👍108🔥4
‼️ 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
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥81🤯40👍23🙏4🤝21
Media is too big
VIEW IN TELEGRAM
📹 Введение в FlowMVI

FlowMVI - простая и эффективная библиотека для реализации MVI подхода в Android и Kotlin Multiplatform приложениях.

Из видео вы узнаете про возможности бибилотеки и интеграцию ее в проект.

Автор библиотеки Никита @nek_12 сделал серию видео с демонстрацией возможностей. Все видео будут доступны на YouTube и VK Video, а автору очень нужна ваша поддержка и обратная связь в комментариях под видео (а не этим постом).

#MVI #Архитектура #KMP #Kotlin #Кодинг
Please open Telegram to view this post
VIEW IN TELEGRAM
18🔥35🤔196👍3🆒2🤯1