fa
Feedback
Android Broadcast

Android Broadcast

رفتن به کانال در Telegram

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

نمایش بیشتر

📈 تحلیل کانال تلگرام Android Broadcast

کانال Android Broadcast (@android_broadcast) در بخش زبانی روسی بازیگری فعال است. در حال حاضر جامعه شامل 14 584 مشترک است و جایگاه 8 762 را در دسته فناوری و برنامه‌ها و رتبه 45 369 را در منطقه روسيا دارد.

📊 شاخص‌های مخاطب و پویایی

از زمان ایجاد در невідомо، پروژه رشد سریعی داشته و 14 584 مشترک جذب کرده است.

بر اساس آخرین داده‌ها در تاریخ 09 ژوئیه, 2026، کانال فعالیت پایداری دارد. در ۳۰ روز گذشته تغییر اعضا برابر 20 و در ۲۴ ساعت گذشته برابر 2 بوده و همچنان دسترسی گسترده‌ای حفظ شده است.

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 46.12% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 23.82% واکنش نسبت به کل مشترکان کسب می‌کند.
  • دسترسی پست‌ها: هر پست به طور میانگین 6 726 بازدید دریافت می‌کند. در اولین روز معمولاً 3 474 بازدید جمع‌آوری می‌شود.
  • واکنش‌ها و تعامل: مخاطبان به‌طور فعال حمایت می‌کنند؛ میانگین واکنش به هر پست 41 است.
  • علایق موضوعی: محتوا بر موضوعات کلیدی مانند api, kotlin, gradle, сборка, androiddev تمرکز دارد.

📝 توضیح و سیاست محتوایی

نویسنده این فضا را محل بیان دیدگاه‌های شخصی توصیف می‌کند:
Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR

به لطف به‌روزرسانی‌های پرتکرار (آخرین داده در تاریخ 10 ژوئیه, 2026)، کانال همواره به‌روز و دارای دسترسی بالاست. تحلیل‌ها نشان می‌دهد مخاطبان به‌طور فعال با محتوا تعامل دارند و آن را به نقطه اثرگذاری مهم در دسته فناوری و برنامه‌ها تبدیل کرده‌اند.

14 584
مشترکین
+224 ساعت
-37 روز
+2030 روز
آرشیو پست ها
🤖 Android Gradle Plugin 9 упрощает запуск unit-тестов По умолчанию Android Gradle Plugin создаёт Gradle-задачи для запуска unit-тестов во всех доступных build types, что на практике почти никогда не нужно. Обычно тесты запускаются только для debug-сборки. В реальных проектах (особенно с product flavors и большим количеством модулей) это приводит к сотням лишних задач, увеличению времени конфигурации и дополнительной нагрузке на IDE и CI. Чтобы оптимизировать работу Gradle, начиная с AGP 9.0, можно в gradle.properties добавить:
android.onlyEnableUnitTestForTheTestedBuildType=true
После этого unit-тесты будут генерироваться только для основного тестируемого build type (как правило, debug). Это: 👉 убирает лишние Gradle-задачи; 👉 сокращает время конфигурации проекта; 👉 снижает потребление памяти; 👉 ускоряет локальную разработку и CI-пайплайны. Если вы не запускаете unit-тесты для release-сборок (а так делают почти все), то включение этого флага — бесплатная оптимизация сборочной инфраструктуры. Это хороший пример того, как дефолтные настройки инструментов ориентированы на универсальность, а не на эффективность, и почему их стоит регулярно пересматривать в контексте реальной архитектуры проекта. #Android #AndroidDev #Gradle

🤖 Разница между Permission и Ability в Android ОС Чтобы получить доступ к пользовательским данным или сенсорам, разработчику приходится работать с механизмом разрешений (permissions): пользователь должен выдать приложению право на использование соответствующего ресурса. Однако наличие Permission не гарантирует, что приложение действительно сможет получить эти данные. Например, приложению выдали доступ к геолокации, и формально оно имеет право узнать, где находится пользователь. Но при запросе локации приложение получает null. Почему? Здесь и появляется понятие Ability — фактическая возможность получить данные в текущий момент времени. И она может отсутствовать даже при наличии разрешения. Причин может быть множество: 👉 пользователь отключил геолокацию через быстрые настройки; 👉 система временно приостановила доступ (например, в режиме энергосбережения); 👉 прошивка вендора ограничила работу сенсора; 👉 администратор устройства запретил доступ к геолокации; 👉 отсутствует физический сигнал (GPS недоступен, нет сети и т.д.). Итог: Permission — это юридическое право, Ability — это реальная техническая возможность. С точки зрения архитектуры, наличие permission не должно рассматриваться как гарантия наличия данных. Бизнес-логика и use case’ы должны быть спроектированы так, чтобы корректно работать в ситуации отсутствия ability. Другими словами: приложение должно быть готово к тому, что внешний мир в любой момент может стать недоступным — даже если формально все разрешения выданы. Это означает: 1️⃣ отсутствие жёстких предположений о доступности данных; 2️⃣ обработку null, ошибок и таймаутов как нормального сценария; 3️⃣ явное моделирование состояний «данные недоступны» в доменной модели. Permission — это контракт с пользователем. Ability — это контракт с реальностью. И именно второй чаще всего нарушается. #AndroidDev #AndroidOS #Архитектура

🔴 Начинаю LIVE прожарку VK Android SDK. Буду изучать проект и отвечать на ваши вопросы 🪙 Стрим проходит на Boosty, запись е
🔴 Начинаю LIVE прожарку VK Android SDK. Буду изучать проект и отвечать на ваши вопросы 🪙 Стрим проходит на Boosty, запись его выложу позже. Подключайтесь сюда #AndroidBroadcast #Прожарка

🏝 Когда стоит убить Kotlin демона для ускорения сборки Если у вас тяжёлая Android-сборка (много модулей, R8, CI с ограниченной памятью), имеет смысл принудительно завершать Kotlin Daemon после компиляции и до запуска R8 🔪 Kotlin Daemon нужен только на этапе компиляции Kotlin. После этого он спокойно живёт до конца сборки и держит память. R8 — один из самых прожорливых этапов по CPU и RAM 🔥 По итогу Daemon и R8 начинают конкурировать за ресурсы памяти Что вы реально получаете если убивает Kotlin демона после компиляции кода: 🚀 снижение пикового потребления памяти примерно на 13–15% 🚀 ускорение R8 вплоть до ~7% 🚀 небольшое, но стабильное сокращение общего времени сборки 🚀 максимальный эффект на CI, где нет долгоживущих демонов и инкрементальности ‼️ Этот подход сработал для автора статьи, но для вас может ничем и не помочь, особенно в сборке на локальной машине. 🔗 Источник с измерениями и подробным разбором #Android #Kotlin #R8 #Gradle

Repost from iOS Broadcast
🐚 Skip - плагин Xcode для транспиляции SwiftUI приложения на Android теперь Open Source Я вам несколько раз рассказывал про
🐚 Skip - плагин Xcode для транспиляции SwiftUI приложения на Android теперь Open Source Я вам несколько раз рассказывал про Skip и о своих надеждах и сомнениях по поводу этого инструмента и пришли новости. Платно получать лок на вендора желающих достаточно не оказалось, но наработки пригодились Apple рабочей группе по Android. 📱 Проблема: cross-platform “без компромиссов” всегда упирался в доверие Многие команды хотят Swift/SwiftUI → Android, но боятся строить стратегию на маленьком закрытом платном туле: “а если завтра rug pull / покупка / закрытие?”. Skip прямо называет этот страх ключевым барьером adoption. Начиная с Skip 1.7: 🟢убраны все лицензии: никаких ключей, EULA, trial/period 🟢open-sourced “skipstone” — движок, который делает всю магию на build-time (плагины Xcode/SwiftPM, трансформация iOS→Android, bundling ресурсов/локализаций, JNI bridge, transpile, packaging, export) 🟢документация/сайт переезжают на skip.dev, тоже open source. ([Skip][1]) Моя оценка Skip в 2026: 🔵 Если вам нужен shared Swift-стек (и вы готовы жить в мире “не все либы заведутся идеально с первого раза”) — Skip теперь реально стоит POC 🔵 Главный риск (закрытый платный core) — существенно снижен: foundation теперь открытый и бесплатный 🔴 Главный вопрос, а нужен ли он в мире с AI агентами, когда можно попросить создать нативное приложение под Android на основе исходников для iOS, пробовал кто-то?

🛒 Save for Later — больше гибкости для релизов в Google Play Console Google запустил функцию "Save for later" в Google Play
🛒 Save for Later — больше гибкости для релизов в Google Play Console Google запустил функцию "Save for later" в Google Play Console. Теперь можно контролировать, какие изменения отправлять на ревью, а какие пока отложить. Раньше все изменения автоматически группировались и отправлялись на ревью вместе. Это создавало сложности: 👉 Приходилось задерживать hot fix или публиковать изменения, которые ещё не готовы 👉 Нельзя было разделить обновление тестовых треков и маркетинговые изменения 👉 Сложно было поменять решения касательно релиз на ходу Теперь в разделе "Changes not yet sent for review" можно отметить группы изменений как "Save for later". Эти изменения: 👉 Не попадут в текущее ревью 👉 Можно в любой момент вернуть обратно 👉 После начала ревью автоматически вернутся в очередь Функция работает вместе с проверками перед ревью. Новая фича позволяет быстрее итерировать и минимизировать влияние реджектов на график релизов. Особенно полезно, когда часть изменений готова, а часть — нет. 🔗 [Подробности в блоге](https://android-developers.googleblog.com/2026/01/ready-to-review-some-changes-but-not.html) #Android #GooglePlay

🤖 Много памяти в смартфонах — это не маркетинг, а инженерная необходимость Современный флагманский смартфон — это система из взаимосвязанных компонентов: - Большой экран с высоким разрешением и 120+ Гц - Мощная камера с 4K/60FPS видео и многокадровой обработкой - On-device ИИ без интернета - Топовый процессор от Qualcomm Когда ты покупаешь такой телефон, ты ожидаешь, что ничего не будет тормозить. И вот беда — для этого нужна оперативная память. Много. И быстрая. 🏢 Почему Pixel 8 не получил ИИ Помните, когда Google представили Pixel 8? Фишка была в том, что ИИ работает прямо на устройстве, без облака. Звучало отлично. Но Pixel 8 получил эту фичу только в виде бета-версии. Полноценно она работала только на Pixel 8 Pro. Причина одна: памяти не хватает. Pixel 8 Pro имеет 12 ГБ оперативной памяти. Pixel 8 имеет 8 ГБ. Разница в одной цифре, но это критично. Вот как распределяется память: - Android ОС: 4 ГБ (обязательно) - Google Play Services: 1 ГБ (постоянно работает) - Фоновые процессы: 2-3 ГБ (система держит приложения в памяти) - On-device ИИ: 3-4 ГБ (чтобы работал всегда готов) Итого базовые: 12 ГБ На Pixel 8 просто нечем запустить ИИ, не ломая остальное. На Pixel 8 Pro есть запас. Вот и вся история. 🤖 Проблема с разработчиками приложений Кстати, есть ещё один момент, который все игнорируют. Разработчики приложений не спешат оптимизировать код. Почему? Потому что нет критических проблем или потерь репутации. Это затратно — нужны хорошие специалисты, исследования, тестирование. А пока приложение “вроде работает”, зачем? Разработчики рассчитывают, что пользователь просто купит себе телефон мощнее. Это же работает в разработке игр — выпустил требования на RTX 4080, и всё, проблема решена. Но со смартфонами этот сценарий начинает ломаться. 💲 2026: год дефицита памяти Сейчас происходит кризис памяти. AI серверы пожирают DRAM как не в себя. Цены растут. Производители уже обсуждают, как урезать объём памяти в 2026-м году. И вот здесь наступает проблема: мы больше не сможем рассчитывать на стабильный рост памяти каждые 5 лет. Это становится роскошью. Вопрос: что будет с телефонами? Память станет сдерживающим фактором всего развития. Флагманы смогут подороже продаваться с запасом памяти — да, давай по 16-20 ГБ и цена выше. Но бюджетный сегмент начнёт деградировать. Samsung выпускает серию A годами с одними и теми же характеристиками, только наименование меняет. Народ покупает — что ещё им остаётся? И то что телефон лагает — это уже проблема пользователя. 🤔 Вывод: память — это потолок на развитие Всё, что мы видим в смартфонах, ограничено одной переменной: количеством оперативной памяти. - Больше памяти → можно добавить ИИ - Больше памяти → можно поднять разрешение экрана - Больше памяти → можно оставить больше приложений в фоне - Больше памяти → можно записывать 8K видео без подвисаний Без памяти все эти фишки просто не работают. И когда памяти становится дефицит, а цены на неё растут — рост характеристик смартфонов замораживается. Мы уже не сможем видеть стабильный апград каждый год. Первыми это почувствуют пользователи бюджетного сегмента. Их телефоны будут либо дорожать, либо худеть в характеристиках. Третьего не дано.

🤖 Baseline Profile Gradle Plugin не поддерживает AGP 9.0, но есть способ поправить Сразу после выхода Dagger с поддержкой AGP стал пробовать миграцию на AGP 9.0. Блокером послужил baselineprofile Gradle plugin. Текущая его стабильная версия 1.4.1 не поддерживает новый DSL, но зато альфа версия 1.5.0-alpha01 (вышла 17 декабря 2025) уже работает. Учитывая, что это не влияет на код в рантайте, то я бы обновился в проде. #Android #Gradle

🔥 В Dagger 2.59 добавили поддержку AGP 9.0. Одним блокером для миграции на AGP 9.0 стало меньше #Android #Gradle

🤖 Запустить Linux Desktop на Android вполне реально и понятно как. Проект Local Desktop позволит вам это сделать. Запуск про
🤖 Запустить Linux Desktop на Android вполне реально и понятно как. Проект Local Desktop позволит вам это сделать. Запуск происходит через виртуализацию, доступную на Android 16. На скриншоте к посту Linux, запущенный на Pixel Tablet. #Android #Linux

🚀 Google взялась за упрощение Picture‑in‑Picture PiP на Android долго был зоопарком: разный API на версиях, разный UI‑стейт, много if (SDK_INT…) и бойлерплейта. Новая Jetpack‑библиотека androidx.core:core-pip как раз и создана, чтобы это спрятать: она выравнивает вызовы PiP между версиями Android, даёт единый способ задавать параметры (особенно для видео/плееров), объединяет разрозненные колбэки состояния PiP и уменьшает количество кода за счёт готовых пресетов действий для типовых сценариев. Требования: обновляем Activity Чтобы всё это заработало, мало просто подключить core-pip — нужно обновиться до свежей Activity 1.13.0 (пока в альфе). В этой версии есть новые API для отслеживания состояния PiP (PictureInPictureUiStateCompat и слушатели), на которых удобно строить логику поведения UI, когда окно уходит в PiP или, например, «прячется» в угол.
// Пример кода: реагируем на состояние PiP
class PlayerActivity : ComponentActivity() {

    private val pipUiStateListener =
        Consumer<PictureInPictureUiStateCompat> { state ->
            if (state.isStashed) {
                /* спрятать контролы плеера */
            } else {
                /* показать контролы плеера */ 
            }
        }

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)

        // ... инициализация UI / плеера ...
        addOnPictureInPictureUiStateChangedListener(pipUiStateListener)
    }

    override fun onDestroy() {
        removeOnPictureInPictureUiStateChangedListener(pipUiStateListener)
        super.onDestroy()
    }
}
🔗 Подробности про библиотека в документации #Android #AndroidDev #AndroidJetpack #PIP

В Ergostol решили прокачать ваши рабочие места 🔧✨ Открыт предзаказ со скидкой –20% на обновлённый хит Ergostol Optima 3.0 и
В Ergostol решили прокачать ваши рабочие места 🔧✨ Открыт предзаказ со скидкой –20% на обновлённый хит Ergostol Optima 3.0 и станцию продуктивности Ergostol Combo в интернет‑магазине ergostol.ru 🚀 Optima 3.0 — регулируемый стол с облегчённой рамой и пультом нового поколения: 🔵 3 запоминаемые высоты 🔵 защита от детей 🔵 гироскоп от столкновений 🔵 USB Type‑C для зарядки гаджетов 💡 Combo — рабочая станция с регулировкой по высоте, выдвижным ящиком, таймером активности и USB‑портами для ваших устройств 📚⚡️ 🎁 С промокодом ANDROID10ещё –10% на все столы и опции к ним! Не тяните, предзаказ по суперцене действует ограниченное время 🆕📦 Реклама. ООО «СОФТЭФФЕКТ». ИНН 7735575262

🤖 AI в мобильном тестировании: Block представил Trailblaze Инженеры из Block (бывший Square) открыли исходники Trailblaze — фреймворка, который позволяет писать Android UI-тесты на естественном языке. Идея заключается в том, чтобы вместо классического "найди кнопку по id, кликни, проверь текст" пишешь: "Открой экран профиля, измени имя на John, сохрани изменения". AI-агент сам понимает, как это сделать. Как это работает: 👉 Встраивается в обычные instrumentation-тесты 👉 Под капотом используется Maestro для отправления UI команд 👉 Под капотом использует кастомный on-device драйвер для Maestro 👉 Можно расширять функциональность через свои TrailblazeTool 👉 Генерирует детальные отчёты с трейсами выполнения 👉 Можно использовать разные модели через провайдеров
// Пример теста
@Test
fun myTest() {
    trailblaze.execute(
       """
       Open profile,
       change name to John,
       save
       """
    )
}
Подход не заставляет перестраивать CI/CD с нуля — используешь существующую инфраструктуру (Gradle, Espresso, UiAutomator). Постепенное внедрение AI-тестов рядом с обычными. Проект свежий, но за ним стоит опыт команды из крупной финтех-компании. Посмотрим, как будет развиваться. 🐱 GitHub Trailblaze 📄 Документация #AI #тестирование

🤯 Dagger Hilt блокирует переход на AGP 9.0 Android Gradle Plugin 9.0 официально зафиксировал новый стабильный конфигурационный API (вышла стабильная версия с релизом AS Otter FD 3) — это одно из самых значимых изменений в инфраструктуре Android и Kotlin Multiplatform за последние годы. Цели понятны и правильные лучше работа с кэшем и общая скорость сборок. Подробнее про все изменения я писал в отдельном посте Google несколько релизов подряд аккуратно готовил экосистему к этому переходу, заранее добавив новый API и дав время авторам плагинов адаптироваться. Но на практике всё упирается в плагины. Я столкнулся с тем, что Gradle-плагин Dagger Hilt до сих пор использует старую модель конфигурации и несовместим с новым DSL из AGP 9.0. В результате проект нельзя перевести на новую версию без отключения Hilt или включения режим совместимости. Иронично, что именно официальный инструмент от Google сейчас становится блокером для обновления. Да, в AGP оставили compatibility-флаги, позволяющие продолжать сборку по старым правилам. Это спасает проекты от немедленного падения, но полностью отключает все ключевые преимущества AGP 9.0 — configuration cache, ускоренную конфигурацию и новую модель плагинов. 💬 Вы уже пробовали миграцию на AGP 9.0? Что блокирует? Делитесь в комментариях мнением. #Android #AndroidDev #Gradle #Dagger #Hilt

🪙 Записал настройку и свои впечатления от использования разных моделей. Возможность очень классная, но видно как все возможности делались под модели Google и с другими много нюансов. Смотрите на Boosty #AndroidBroadcast #AndroidStudio #AI

🔨 Включите эту настройку в Android Studio чтобы получить доступ ко всем AI фичам. Копался в новых фичах Android Studio и не могу понять почему у меня нету фичи ⭐️ "Generate Compose Preview". Изучал почему, а потом случайно нашел, что надо включить шаринг контекста всего проекта и в меню появились дополнительные опции. Сделано супер неочевидно. #AndroidStuduio #Android #AndroidDev #AI

````yanl # Пример файла Journey теста journey: name: "Add item to cart from catalog" id: "add_to_cart_from_catalog" tags: - checkout - smoke setup: device: orientation: portrait locale: en_US app: startActivity: ".ui.MainActivity" steps: - description: "Open catalog screen" action: "Tap on the 'Catalog' bottom navigation item" - description: "Open product details" action: "Tap on the first product in the list" - description: "Add product to cart" action: "Tap on the 'Add to cart' button" - description: "Open cart screen" action: "Tap on the cart icon in the top app bar" assertions: - description: "Cart has 1 item" check: "Verify that cart item count is 1" - description: "Item title is visible" check: "Verify that the product title is visible in the cart" meta owner: "checkout-team" severity: "critical" createdBy: "gemini" ```

🔨 UI тесты без кода на естественном языке стали доступны в Android Studio Otter. Прикольно, но убирайте В свежем релизе Android Studio Otter стала доступна фича Journeys. Идея звучит хайпово: вы пишете сценарий теста на обычном ествественном языке, а магия AI превращает это в воспроизводимый UI-тест. Как это работает? - Вы описываете шаги (например, “открой корзину”, “проверь наличие товара”) - Journeys парсит это и сохраняет в проект специальный файл (не код) в папке journeysTest. - Тесты можно запускать прямо из студии или через командную строку (gcloud). 😮 В чём подвох? Несмотря на удобство «написания», вопросы к инфраструктуре остаются открытыми: 👉 Привязка к Google Cloud: Чтобы запустить эти тесты через CLI, нужна авторизация в gcloud. Без интернета и доступа к серверам Google магия парсинга не сработает. 👉 Изолированный контур: Если ваш CI/CD живет в закрытой сети, внедрить Jordins будет тем еще квестом. 👉 Масштабируемость: Насколько стабильно AI будет интерпретировать изменения в UI спустя время? Лично я пока настроен скептически. Старый добрый Kaspresso или Compose Test Framework на Kotlin кажутся надежнее — они не требуют облаков, легко поддерживаются и работают в любом «подвале» без интернета. Да и генерировать код с AI совсем просто и поддерживается понятнее. Journeys выглядит как классная игрушка для прототипов, но в продакшене больших проектов может стать сложностью. 🔗 Подробнее про Journeys for Android Studio в документации 💬 А что думаете вы? Кто-нибудь уже успел потыкать Journeys в реальных условиях? Может, я упускаю какую-то киллер-фичу, которая оправдывает привязку к облаку? Пишите в комментариях! 👇 #androidstudio #ai #тестирование

🔨 В Android Studio теперь можно использовать собственные AI модели вместо Gemini, причем как локальные так и удаленные. Вышла новая стабильная версия Android Studio - Otter 3 Feature Drop и в ней Google сделала верный шаг касательно AI, потому не всем подойдет их решение, а кто-то и вовсе из-за политик компании должен использовать внутренние решения. Вы можете настроить свою модель в настройках IDE в разделе "Tools" -> "AI" -> "Model Providers" Из чатов я видел что не всех получилось заводить на стабильной версии, а вот в самое свежей Canary версии работало. Сегодня буду тестировать как оно вообще. Источник - developers.android.com #AndroidStudio #AI

🔨 В Android Studio можно включить показ Kotlin кода, сгенерированного плагинами Kotlin компилятора. Например, KotlinX Serial
+1
🔨 В Android Studio можно включить показ Kotlin кода, сгенерированного плагинами Kotlin компилятора. Например, KotlinX Serialization добавляет serializer() в companion object Открывайте настройку IDE и ищите в разделе Editor -> Inlay Hints -> Declarations generated by Kotlin compiler Android Studio содержит фичу с версии Panda Canary 4 Спасибо за эту фичу Жене Ф. #androidstudio #idea