uz
Feedback
Android Broadcast

Android Broadcast

Kanalga Telegram’da o‘tish

Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR

Ko'proq ko'rsatish

📈 Telegram kanali Android Broadcast analitikasi

Android Broadcast (@android_broadcast) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 14 584 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 8 762-o'rinni va Rossiya mintaqasida 45 369-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 14 584 obunachiga ega bo‘ldi.

09 Iyul, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni 20 ga, so‘nggi 24 soatda esa 2 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 46.12% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 23.82% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 6 726 marta ko‘riladi; birinchi sutkada odatda 3 474 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 41 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent api, kotlin, gradle, сборка, androiddev kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

Muallif resursni shaxsiy fikrni ifoda etish maydoni sifatida ta’riflaydi:
Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR

Yuqori yangilanish chastotasi (oxirgi ma’lumot 10 Iyul, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

14 584
Obunachilar
+224 soatlar
-37 kunlar
+2030 kunlar
Postlar arxiv
🤔 Рефакторить нельзя переписать Работа с AI-агентами натолкнула меня на мысль, которую давно хотел сформулировать вслух. Когда перед тобой стоит задача — переход с View на Compose, смена архитектуры, миграция на KMP — первый инстинкт: «давай отрефакторим что есть». И вот тут я всё чаще останавливаюсь и задаю себе вопрос: а стоит ли? Чтобы нормально рефакторить старый код — его нужно сначала покрыть тестами. Понять все сценарии. Убедиться, что после изменений всё ведёт себя так же. Это огромная работа, которую часто недооценивают, а то и вовсе перекладывают на регресс тестирование. А что если написать рядом новый код по той же спецификации поведения, без груза старых ограничений. Запустил на двух устройствах, сравнил — и всё. Никаких «а вдруг что-то сломалось». Агенты, кстати, это подтверждают 🤖 Они заметно лучше справляются с написанием нового кода по спецификации, чем с попыткой переписать существующий. Старый код накладывает ограничения. Новый — их снимает. Мой подход сейчас такой: 👉 Простая библиотека или изолированный модуль → спокойно мигрируй постепенно 👉 Что-то сложное с бизнес-логикой → пиши рядом, потом подменяй импорты А вы как поступаете? Когда стоит задача миграции или переработки большого куска — рефакторите или пишете заново? Интересно услышать ваш опыт 👇 #Архитектура #Рефакторинг

📱 Мобильная разработка в ритме города: Day&Night 2026* Приглашаем мобильных разработчиков на главную конференцию Городских сервисов Яндекса. Программу курируют эксперты: Саша Борисков из Яндекс Еды и Илья Царев из Яндекс Go. Темы самые горячие: от архитектурных вызовов в огромных проектах до оптимизации пользовательских интерфейсов и работы с геолокацией. После — откроются Клубы для неформального общения 🔶 Мобильный клуб: для обсуждения сред разработки, болей релизных циклов и новых инструментов. 🔶 Клуб управления командой: для тех, кто хочет растить специалистов и строить процессы. 🔶 Клуб музыки и винила и клуб активного образа жизни. 🍸 Финал вечера — масштабный нетворкинг и активности до 2 ночи. В программе: диджеи, коктейли и та самая атмосфера, ради которой хочется остаться до конца. 🚀 Регистрация открыта — успейте подать заявку! Все заявки проходят модерацию, обязательно дождитесь обратной связи. *День и Ночь 2026 #реклама

🤖 Google анонсировали Automated Prompt Optimization (далее APO) для Vertex AI. Это будет полезно всем тем кто работает с on-
+1
🤖 Google анонсировали Automated Prompt Optimization (далее APO) для Vertex AI. Это будет полезно всем тем кто работает с on-device AI на Android Если вы ещё не слышали про ML Kit Prompt API — это способ запускать Gemini Nano прямо на Android устройстве без обращения к серверу. Модель живёт в Android AICore как системный сервис, приложение просто отправляет промпт и получает ответ. APO появился с целью настройки общей модели под конкретную задачу. Это облачный инструмент, который автоматически ищет оптимальный системный промпт для вашей задачи. Вы даёте примеры входных данных и ожидаемых ответов, Gemini Pro/Flash анализирует ошибки, генерирует десятки вариантов промптов параллельно и выбирает лучший. На выходе — просто текст промпта, который вы зашиваете в своё приложение. Google утверждают, что это даёт📈 +5–8% к точности на реальных задачах: классификация, перевод, определения намерения. Верю ли я в эти цифры? В целом да — но с оговоркой. Для компактных моделей вроде Gemini Nano правильно сформулированная инструкция действительно сильно влияет на результат. Это не магия, а то, как работают тюнинг модели для достижения результата, ожидаемый вами. Пока ML Kit Prompt API доступен только на ограниченном числе устройств, но направление очевидно — Google всерьёз строят экосистему on-device AI для Android-разработчиков 🔗 Источник - официальный блог Android Developers #Android #AndroidDev #MLKit #GeminiNano #OnDeviceAI

// Пример запуска EyeDropper
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  result -> if (result.resultCode == Activity.RESULT_OK) {
    val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
    // Обрабатываем полученный результат
  }
}

fun launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}
#Android #Android17

🤖 EyeDropper API - встроенный пикер цвета в пикселе на Android 17
val eyeDropperLauncher = registerForActivityResult(ActivityResultContracts.StartActivityForResult()) {
  result -> if (result.resultCode == Activity.RESULT_OK) {
    val color = result.data?.getIntExtra(Intent.EXTRA_COLOR, Color.BLACK)
    // Use the picked color in your app
  }
}

fun launchColorPicker() {
  val intent = Intent(Intent.ACTION_OPEN_EYE_DROPPER)
  eyeDropperLauncher.launch(intent)
}
#Android #Android17

В Android 17 на Pixel появится возможность запускать приложение как плавающее окно. Да-да. Вы скажете, что это давно уже было на многих планшетах. Теперь и в стоковой оболочки Pixel будет, хотя вот другим производителям всё равно от этого изменения #Android #Android17

Вышла вторая Beta Android 17. Для разработчиков. Изменения произошли под капотом и в системном UI. 🔗 Анонс тут #Android #And
Вышла вторая Beta Android 17. Для разработчиков. Изменения произошли под капотом и в системном UI. 🔗 Анонс тут #Android #Android

Compose Remote уже в Альфа стадии. Шаг за шагом выходят версии и BDUI на Compose уже в пути! Подробнее писал тут #Android #Co
Compose Remote уже в Альфа стадии. Шаг за шагом выходят версии и BDUI на Compose уже в пути! Подробнее писал тут #Android #Compose #BDUI #SDUI

🤖 Вышел Coil 3.4.0
Coil - это библиотека для загрузки изображений на Android (и теперь Compose Multiplatform). Название расшифровывается как Coroutine Image Loader — библиотека написана на Kotlin с первого дня и отлично вписывается в современный стек: корутины, Compose, KMP.
В новой версии несколько интересных вещей: 🔁 ConcurrentRequestStrategy — теперь можно объединять параллельные сетевые запросы на один и тот же ресурс. По умолчанию отключено и помечено как экспериментальное, но идея хорошая — вместо N одинаковых запросов летит один, остальные ждут результата. 🧵 Асинхронный декодинг JS/WASM — изображения больше не блокируют главный поток браузера. Важно для KMP-проектов с вебом. 🐧 Linux targets — добавили поддержку linuxX64 и linuxArm64 для non-Compose артефактов. 🎞 Улучшенные переходы в Compose — новый useExistingImageAsPlaceholder позволяет плавно переходить от предыдущего изображения, когда нет placeholder. Мелочь, но визуально приятно. 🎬 Embedded video thumbnails — поддержка встроенных превью для видео. 🔧 coil-lint — добавили Android Lint-правило, которое ловит случайные вызовы kotlin.error() внутри блоков ImageRequest.Builder. Неожиданно полезно. Зависимости Kotlin 2.3.10, Compose 1.9.3, Okio 3.16.4. #Android #AndroidDev #KMP #kCMP #Compose

😁 Одна хитрость верификации Android разработчика, которая усложняет процесс регистрации Самая большая проблема верификации для разработчиков, кто из стран, где Google не работает или под санкциями. Для прохождения верификации надо сделать оплату картой, а у тебя нет карты, что Google примет. Вроде как верификация для всех, но технически не подойти к ней. #Android #GooglePlay

🛒 Попытаемся отменить обязательную верификацию разработчиков в Google Android? 🤔 Наткнулся на сайт keepandroidopen.org, кот
🛒 Попытаемся отменить обязательную верификацию разработчиков в Google Android? 🤔 Наткнулся на сайт keepandroidopen.org, который призывает бороться с "закрытием" Android. Честно — не понимаю, на что надеются авторы. Обязательная верификация разработчиков ≠ закрытие Android 🚫. Всё что Google делает в этом направлении — происходит при поддержке правительства, а то и вовсе по их инициативе. Тот, кто публикует вредоносное и не готов себя раскрыть — ну и ладно. Я ничего не теряю. Пользователям, которым не нравится новый подход, есть варианты: — прошить телефон на Android без GMS, всё будет как прежде — купить Huawei, там Google сервисов нет в принципе Конечно, если не бороться — ничего не сдвинется. Но обязательная верификация всё равно будет. И если она не приведёт к потерям денег у Google — значит всё устраивает 🤷 #Android #Безопасность

Уже несколько недель я активно погружаюсь в разработку с помощью ИИ и решение разных задач через кодинг агентов. Буду регулярно делиться впечатлениями и находками на Boosty. 🪙 Уже доступен первый выпуск #AndroidBroadcast #Boosty #ДневникИИКодера

🤖 Очередная порция ограничений для Activity в Android 17 Копался в behavior changes для Android 17 и наткнулся на очередное закручивание гаек вокруг запуска Activity из фона. На этот раз Google расширил BAL (Background Activity Launch) ограничения на IntentSender
IntentSender - это обёртка над PendingIntent, позволяющая передать право запуска Intent другому приложению или системе. Именно через него работают уведомления, виджеты, shortcuts и межпроцессные вызовы.
Так вот, константа MODE_BACKGROUND_ACTIVITY_START_ALLOWED теперь deprecated. Если где-то передаёте её через ActivityOptions при работе с PendingIntent — нужно мигрировать на MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE. Разница в том, что теперь Activity из фона запустится только если вызывающее приложение видимо пользователю.
val options = ActivityOptions.makeBasic().apply {
    pendingIntentBackgroundActivityStartMode =
        ActivityOptions.MODE_BACKGROUND_ACTIVITY_START_ALLOW_IF_VISIBLE
}
Найти проблемные места просто — Google обновил lint и StrictMode под новые требования. Запускаете lint, ищете использования MODE_BACKGROUND_ACTIVITY_START_ALLOWED и получаете полный список того, что нужно поправить. Формально это касается только targetSdk 17+, но лучше не тянуть — сами знаете, как работают дедлайны в Play Console. 🔗 Источник developer.android.com #Android17 #androiddev #security #activity

Как заработать на IT-нетворкинге Помочь коллегам с монетизацией и заработать на этом самим — легко. Рекламная сеть Яндекса предлагает реферальную программу, по которой можно приглашать сайты и приложения. Вот как это работает: ✅ Регистрируетесь в Яндекс Дистрибуции и проходите модерацию ✅ Получаете уникальную ссылку и делитесь ею с площадкой ✅ Сайт или приложение начинает работать с РСЯ и показывать рекламу ✅ Вы зарабатываете 10% от рекламного дохода площадки за первые 60 дней, если он достигает минимального порога К Рекламной сети Яндекса уже подключены десятки тысяч сайтов и приложений. Приглашайте новые площадки и зарабатывайте вместе с ними. Узнать подробнее о реферальной программе можно здесь. #реклама

💉 Выпустил первый релиз detekt-rules-koin — Detekt-расширение с 51 правилом для Koin 4.x Если используете Koin и Detekt, то знаете, что стандартный Detekt ничего не знает о специфике Koin. Можно написать рабочий, но проблемный код — и никаких предупреждений. Что ловит библиотека: 👉 Service Locator антипаттерны (5 правил) 👉 Ошибки в Module DSL (14 правил) 👉 Проблемы управления скоупами (8 правил) 👉 Platform-специфичные проблемы (8 правил) 👉 Архитектурные нарушения (4 правила) 👉 Koin Annotations (12 правил) Подключение:
// build.gradle.kts
dependencies {
    detektPlugins("dev.androidbroadcast.rules.koin:detekt-koin4-rules:1.0.0")
}
Требования: Kotlin 2.0+, Detekt 1.23.8+, Koin 4.x 🐱 GitHub Репо Жду фидбэк — каких не хватает, ложные срабатывания, что настраивается неудобно и всё всё. Пишите в комментариях к этому посту или в Issues репозитория 🙌

📹 GraphenOS как способ избавиться от тотальной слежки за твоим смартфоном Сделал короткий обзор зачем нужна GraphenOS, авторы которой перепили AOSP для лучшей безопасности, что им стоит Google подчернуть в этой ОС и самое главное - какой опыт использования этой ОС #Android #AndroidBroadcast #GrapheneOS

👨🏻‍💻 Вы пишете адаптеры для RecyclerView и чувствуете, что делаете это не так Когда список простой — всё понятно. Но стоит
👨🏻‍💻 Вы пишете адаптеры для RecyclerView и чувствуете, что делаете это не так Когда список простой — всё понятно. Но стоит добавить разные типы элементов, свайпы или drag-and-drop, код превращается в месиво условий и костылей. Работает, но выглядит не по-профессиональному. Разница между junior и middle — не в том, умеете ли вы делать списки. А в том, как вы это делаете. 🗓 25 февраля в 20:00 по МСК — открытый вебинар «Работаем со списками как профессионалы» Разберём : ✅как правильно работать с разными типами элементов в одном списке ✅ как реализовать drag-and-drop и swipe-to-dismiss ✅ как писать чистый, поддерживаемый код для сложных адаптеров ❗️После урока вы поймёте, как делать списки на уровне middle-разработчика. Без велосипедов, по стандартам индустрии. 💥Участникам - скидка на курс «Android Developer. Professional». 🔜 Регистрация по ссылке Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576

Android 9 (API 28) сегодня — это более 95% всех активных Android‑устройств в мире. Повышение minSdkVersion до этого уровня открывает доступ к новым платформенным API, среди которых особенно интересен AppComponentFactory. AppComponentFactory позволяет задать фабрику, которая будет управлять созданием экземпляров Application, Activity, Service, ContentProvider и BroadcastReceiver. Благодаря этому можно использовать конструкторы с параметрами для этих компонентов и отказаться от полевого инжекта (field injection) или других обходных путей, вызванных ограничениями старых версий Android.
// Создаем свою фабрику
class MyAppComponentFactory : AppComponentFactory() {

    override fun instantiateActivity(
        cl: ClassLoader,
        className: String,
        intent: Intent
    ): Activity {
        return when (className) {
            MainActivity::class.java.name ->
                 MainActivity("Hello from factory")
            else ->
                 super.instantiateActivity(cl, className, intent)
        }
    }
}
``
<!-- Указываем фабрику в манифесте -->
<application
    android:name=".MyApplication"
    android:appComponentFactory=".MyAppComponentFactory"
    ... >
    ...
</application>
// Используем в Activity конструктор с параметром
class MainActivity(private val message: String) : AppCompatActivity() {

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)
        println("Message from factory: $message")
    }
}
#Android #AndroidDev #Android9

❓ Как и куда расти мобильному разработчику в эпоху ИИ? Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Не
Как и куда расти мобильному разработчику в эпоху ИИ? Предлагаем разобраться вместе с Яндекс Вертикалями (Авто.ру, Яндекс Недвижимость, Аренда и Путешествия) на Vertis Mobile Meetup в Санкт-Петербурге. В этот раз хардовых докладов не будет. Вместо них — нетворкинг, круглые столы, а также выступления о том, как работать над большими задачами, становиться продуктивнее и оставаться в балансе. 📍Обсудим разные карьерные треки, переходы между ролями, влияние ИИ на индустрию. И обменяемся мнениями по техническим темам: KMP / CMP, DI. А после всех обсуждений участников ждёт афтепати 🐥 🔜 Полная программа и регистрация #реклама

🤖 В Android 17 переписали один из самых старых и критичных механизмов работы UI потока. Это изменение почти никто не увидит
🤖 В Android 17 переписали один из самых старых и критичных механизмов работы UI потока. Это изменение почти никто не увидит в changelog’ах, но оно напрямую влияет на то, насколько плавно работает интерфейс любого приложения.
MessageQueue — это очередь задач главного потока с которой работает Handler. Каждый Android-разработчик фактически работает с ней каждый день, даже если напрямую не задумывается об этом. Looper берёт из неё сообщения, передаёт их Handler’ам, выполняет UI-обновления, lifecycle-события, обработку ввода, invalidate, работу фреймворков и большую часть межпоточного взаимодействия. По сути, это диспетчер всей работы main thread.
Исторически эта очередь почти не менялась около двадцати лет. Внутри она была защищена одним lock’ом. Пока один поток добавлял сообщение, другой не мог работать с очередью. На старых устройствах это не было критично, но на современных многоядерных системах стало появляться всё чаще: background-поток держит lock, планировщик переключает CPU на другие задачи, а UI-поток в этот момент ждёт. В Android 17 мезанизм работы очереди переписали полностью. Новая реализация стала lock-free. Вместо общего lock используются атомарные операции, а сама структура очереди разделена на две части: потоки могут добавлять сообщения без блокировок, а главный поток уже самостоятельно упорядочивает и выполняет задачи. Важное свойство такого подхода — хотя бы один поток всегда может продолжать работу независимо от поведения остальных. Это не обновление из категории «приложение стало быстрее на X процентов». Изменение работает глубже. Оно снижает вероятность случайных блокировок главного потока, уменьшает количество missed frames и делает время кадра стабильнее под нагрузкой. Особенно это заметно в сценариях, где одновременно происходит много фоновой работы: запуск приложения, работа камеры, тяжёлые UI, интенсивные операции в фоне. 🤯 В одном из примеров Google показывают блокировку UI-потока почти на 18 мс только из-за конкуренции за lock — этого уже достаточно, чтобы пропустить кадр на экране 60 Гц, не говорю уже про 120. ‼️ Большинству приложений ничего делать не нужно — улучшение происходит автоматически. Но обратить внимание стоит тем, кто занимается производительностью, анализирует Perfetto-трейсы или использует рефлексию и внутренние поля MessageQueue. Такие вещи могут перестать работать, потому что внутренняя реализация изменилась. На самом деле это интересный сигнал о направлении развития Android. Долгое время оптимизации происходили на уровне API и фреймворков. Сейчас Google всё чаще переписывает базовые механизмы конкурентности самой платформы. И это логично: современные устройства уже редко упираются в вычислительную мощность, чаще — в синхронизацию потоков и contention. MessageQueue находится в центре всей работы UI-потока, поэтому даже небольшие улучшения здесь масштабируются на всю экосистему. 🔗 Больше подробностей про работу механизма можно найти в техническом разборе от Google #Android #Android17