fa
Feedback
Android Broadcast

Android Broadcast

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

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

نمایش بیشتر

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

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

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

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

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

  • وضعیت تأیید: تأیید نشده
  • نرخ تعامل (ER): میانگین تعامل مخاطب 44.92% است و در ۲۴ ساعت نخست پس از انتشار، محتوا معمولاً 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 روز
آرشیو پست ها
🤖 Как проверить, какие комбинации фичей поддерживает камера смартфона Современные смартфоны умеют снимать с HDR, 120 FPS и с
🤖 Как проверить, какие комбинации фичей поддерживает камера смартфона Современные смартфоны умеют снимать с HDR, 120 FPS и стабилизацией, но вот какая комбинация этих фич реально доступна — загадка. Например, стабилизация часто работает только при 1080p, а 60 FPS не всегда доступны в 4K. С выходом Jetpack CameraX 1.5 появилось API GroupableFeature и новые параметры для SessionConfig, которые позволяют из кода проверить, какие функции камера может использовать одновременно.
// Пример проверки неподдерживаемых комбинаций
val unsupportedFeatures = mutableSetOf<GroupableFeature>()
val appFeatureOptions = setOf(HDR_HLG10, FPS_60, PREVIEW_STABILIZATION)

appFeatureOptions.forEach { featureOption ->
    if (currentFeatures.contains(featureOption)) return@forEach

    val isSupported = cameraInfo.isFeatureGroupSupported(
        SessionConfig(
            useCases = useCases,
            requiredFeatureGroup = currentFeatures + featureOption
        )
    )

    if (!isSupported) unsupportedFeatures.add(featureOption)
}
Так можно заранее отсеять неподдерживаемые сочетания — например, когда HDR и стабилизация не работают вместе при 60 FPS 🎥 Подробнее в статье (EN) #android #camerax #Jetpack #androidjetpack

🤯 А что вообще считать маленьким проектом в 2025 году? В закрытом чате обсуждали, какого ноутбука хватит под «маленький KMP-проект» — но вот с тем, что считать маленьким, договориться не смогли. Приложение с тремя экранами, но двенадцатью Gradle-модулями — это ещё маленькое? KMP, но «только чуть-чуть под iOS» — считается? Или когда просто хотел попробовать Compose, а закончил с DI, Router и UseCase на одну строчку логики? В чём вообще измерять размер проекта — в строках кода, количестве модулей, экранах, фичах или времени сборки? У меня есть мнение, но интересно, где проходит грань у вас 😏 Комментарии открыты — давайте поругаемся конструктивно. #архитектура #android #kmp

Вот реальная история, как знание механики работы ViewModel спасло мне вечер 👇 У меня приложение на Compose и Jetpack Navigation 3 (работает на основе состояния Back Stack). Экран «Навигатор файлов» открывает папки рекурсивно: по сути это тот же экран, но с другими данными. Все данные — из одной и той же ViewModel.❗️Баг: при переходе в папку навигация срабатывает, UI не меняется. Современные ИИ подсказали общие вещи, но не помогли — промты, видимо, подвели (тут мне ещё надо прокачать знания) 🙂 Вспомнил ключевой факт про архитектуру: 👉 Все ViewModel живут в ViewModelStore. 👉 В пределах одного ViewModelStoreOwner (Activity/Fragment/NavBackStackEntry) получение ViewModel по умолчанию идёт по типу. 👉 Если нужно несколько экземпляров одного типа на одном owner’е — используем key. Решение в одну строку — привязать ключ к ViewModel, связанный с текущей папкой:
@Composable
fun FileNavigator(
    folderId: Id,
    modifier: Modifier = Modifier,
) {
    // новый folderId → новый экземпляр ViewModel → новый UI-стейт
    val viewModel: FileNavigatorViewModel = viewModel(
        key = "files(rootId='$folderId')"
    )
    // ...
}
Мини-чеклист, если ловите такой баг 👉 Один экран используется повторно с разными параметрами? → Нужен key. 👉 Меняется route, но owner тот же? → key обязателен. 👉 Используете Hilt/Koin? → У этих функций тоже есть параметр key (hiltViewModel(key=...), koinViewModel(key=...)). 👉 key должен детерминированно зависеть от входных данных (например, folderId). 👉 При навигации назад убедитесь, что ViewModel освобождается ожидаемо. Ещё нюанс - если у вас сложная иерархия графов, проверьте, к какому ViewModelStoreOwner вы реально привязаны. Рекомендую посмотреть мои видео по теме: 📹 Разбор Jetpack Navigation 3 🪙 Полный разбор Jetpack ViewModel в Android и Kotlin Multiplatform #android #compose #androidjetpack #viewmodel #архитектура

🤖 Есть ли чувство юмора у разработчиков Android SDK? Однозначно — да! В исходниках можно найти такие шедевры 👇
ActivityManager.isUserAMonkey()  
UserManager.isUserAGoat()  
UserManager.DISALLOW_FUN  

// Отдали дань памяти хиту
Chronometer.isTheFinalCountdown()  

Log.wtf()  

// Попало в релиз, хотя явно должно было быть исправлено
AdapterViewFlipper.fyiWillBeAdvancedByHostKThx()  

// Звёздные войны
SensorManager.GRAVITY_DEATH_STAR_I  
Разработчики в Google точно любит пошутить 😄 А вы где встречали весёлые названия API или переменных — в Android, KMP или своих проектах? #android

🤯 Более 75% резюме отфильтровываются ещё до того, как их увидит человек. Автоматические системы ATS (Applicant Tracking Systems) решают, дойдёт ли ваше резюме до HR — и даже если вы сильный разработчик, неудачное форматирование или отсутствие нужных ключевых слов может похоронить заявку. 🧠 Сервисы анализа резюме под ATS помогают понять, насколько ваше резюме «читаемо» для таких систем. Вот самые популярные и проверенные инструменты: 👉 jobscan.co 👉 resumeworded.com 👉 skillsyncer.com 👉 topresume.com 👉 rezi.ai 🎯 Что важно для прохождения ATS: - Простая и понятная структура - Без графики, таблиц, сложных шрифтов - Ключевые слова из описания вакансии - Формат: предпочтительно DOCX (PDF допустим, если без сложной верстки) - Используйте стандартные заголовки: «Проекты», «Опыт работы», «Образование», «Сертификации» и т.п. 🪙 А как сделать резюме, которое действительно работает, я подробно разобрал в видео на Boosty — с реальными примерами и разбором ошибок. Свое мнение касательно 10 разных резюме озвучила Вишневская Ирина - HR-эксперт с почти 18-летним опытом в сфере управления персоналом и IT-рекрутмент #AndroidBroadcast #карьера #резюме #разбор

‼️ Не тяните зависимости из графа сразу! Одна из частых ошибок при использовании DI — получать все зависимости из графа сразу (например, в конструкторе класса). Так делать не стоит 😬 Получение зависимости из графа — это каскадный процесс, и он должен выполняться только в момент использования. Поэтому я всегда рекомендую инжектить зависимости для Dagger/Hilt через Lazy (не путайте с kotlin.Lazy) или Provider.
class ViewModel @Inject constructor(
    // Зависимость получается из графа сразу при создании
    private val useCase: DataUseCase,

    // Получаем зависимость из графа каждый раз при обращении Provider.get()
    private val useCaseFactory: Provider<DataUseCase>,

    // Получаем зависимость из графа при первом обращении
    // и затем она кэшируется в Lazy объекте
    private val useCaseLazy: Lazy<DataUseCase>,
)
💡 Чтобы перейти на Lazy без боли в существующем коде — можно использовать делегаты свойств в Kotlin:
// Вариант использования без Lazy
class ViewModel @Inject constructor(
    private val useCase: DataUseCase
)

// Миграция на Lazy без потери API совместимости
class ViewModel @Inject constructor(
    useCaseFactory: Lazy<DataUseCase>,
) {
    private val useCase: DataUseCase by useCaseFactory
}
И небольшой хелпер, чтобы это работало красиво 👇
// Функция расширения для использования property делегата
operator fun <T> Lazy<T>.getValue(thisRef: T, property: KProperty<*>): T = get()
Таким образом, вы снижаете нагрузку на DI граф, откладываете инициализацию и избегаете ненужных каскадов при старте компонентов. #di #dagger #hilt #лучшиепрактики

‼️ Начинается эфир с ревью кода приложения Androidify от Google. Смотреть только на 🪙 Boosty
‼️ Начинается эфир с ревью кода приложения Androidify от Google. Смотреть только на 🪙 Boosty

🤯 Возникли технические проблемы с запуском стрима. Пытаюсь решить их.

📹 Собеседование на Kotlin Multiplatform разработчика 🎙 Проводит — Алексей Панов @kotlin_adept 🗓 Понедельник, 20 октября, 19:00 (GMT+3) Kotlin Multiplatform (KMP) набирает всё большую популярность — растёт количество вакансий и интерес со стороны компаний. Я давно хотел провести реальное собеседование, где Android-разработчика с опытом в KMP будут спрашивать на позицию, где придётся писать на KMP каждый день: иногда с использованием Compose, а иногда — только шаря логику между платформами. Будет жарко 🔥 Алексей — один из самых опытных разработчиков, кто давно пишет KMP в проде и отлично понимает экосистему. Кстати, у него классный Telegram-канал @kotlin_adept — там много полезных инсайтов про KMP. ❗️Запись собеседования появится на канале после эфира. #AndroidBroadcast #kmp #compose #собеседование #kotlinmultiplatform #android

🪙 LIVE CODE REVIEW. Androidify - новый эталонный пример проекта от Google Когда: 16 октября 19:00 (GMT+3) Google ыпустила св
🪙 LIVE CODE REVIEW. Androidify - новый эталонный пример проекта от Google Когда: 16 октября 19:00 (GMT+3) Google ыпустила свое самое свежение open source Android приложение - Androidify. Настала пора изучить его код и работу, найти интересные моменты и поделиться с вами Всё будет в прямом эфире на Boosty. Пообщаемся, изучим код и отвечу на ваши вопросы. #AndroidBroadcast

📹 Android Developers Backstage — Journeys в Android Studio Команда Android обсуждает Journeys для Android Studio — новый инструмент на базе Gemini, который упрощает создание и поддержку end-to-end тестов. Journeys позволяет описывать тесты на естественном языке, а ИИ сам преобразует шаги и проверки в реальные действия в вашем приложении. ⏱️ Главные моменты выпуска: 0:00 Введение 1:46 Journeys: новый подход к тестированию на базе ИИ 3:40 Как Journeys работает с Gemini 4:27 Преимущества естественного языка 5:49 Пример из реального проекта: Google Maps 6:53 Отладка с использованием ИИ 8:08 Почему Journeys важен: мост между ручным и автотестированием 9:56 End-to-End тесты с Journeys 12:18 Производительность и кеширование тестов 24:14 Интеграция с Android Studio и Firebase 25:27 Рабочий процесс разработки 31:22 ИИ для всех: не только end-to-end тесты 33:28 Что дальше: обратная связь и планы на будущее #android #androidstudio #gemini #ai #тестирование

🔨 Написание UI тестов на обычном языке без кода уже доступно в Android Studio Otter. Фича называется - Journeys. Работает на основе ⭐️ Gemini AI #androidstudio #android #ai #gemini #тестирование

#видеозаписи #МобильныйВторник Открываем новую видеозапись выступления: Александр Газаров — Семантический Gradle: публикуем артефакты со спокойствием и уверенностью 😉 YouTube | 📺 VK Видео Скачать презентацию с сайта Mobius

🔒 Почему шифрование данных на Android — это не просто “галочка” в настройках, а реальная защита вашей информации (RU,13м) Телефон сегодня — это не просто устройство, а личный сейф с фотографиями, паролями, документами и банковскими данными. И если кто-то получит к нему доступ, последствия могут быть непредсказуемыми. В статье на Хабре я подробно рассказываю: 👉 как работает шифрование данных на Android; 👉 чем отличаются симметричные и асимметричные алгоритмы; 👉 какие инструменты реально применяются в приложениях — Cipher, SQLCipher и Android Keystore; 👉 почему офлайн-режим может стать дополнительным уровнем безопасности; 👉 и при чём тут ГОСТ-шифрование 👀 Классная статья для тех кто не копался в шифрование и хочет в это погрузиться хотя бы на базовом уровне #android #безопасность

Статья с громким названием "Динамические обновления без релизов и BDUI". "Ну вот она инновация", осторожно подумал я перед пр
Статья с громким названием "Динамические обновления без релизов и BDUI". "Ну вот она инновация", осторожно подумал я перед прочтением Да, ребята не используются подход BDUI, но фактически вся динамика работает на JS. Как мне показалось, получился некий аналог ReactNative, но специфичный под задачи приложения. Даже не знаю, лучше или хуже будет BDUI, но оптимизировать выполнение JS немного. JS еще и однопоточный и требует работы между виртуальной машиной для выполнения Java кода и JS #android #bdui #kmp

🤖 Скрытые угрозы Room: почему база тормозит и как это исправить Важные советы всем кто используют Room, чтобы база работала
🤖 Скрытые угрозы Room: почему база тормозит и как это исправить Важные советы всем кто используют Room, чтобы база работала быстро: 👉 Индексы — ваши лучшие друзья: без них запросы деградируют до O(n) 👉 Транзакции важны: SQLite разработан для эффективной пакетной обработки 👉 Разбиение на страницы крайне важно: никогда не пытайтесь одновременно обрабатывать тысячи строк 👉 Режим Write-Ahead Logging (WAL) критически важен, особенно для параллельных операций чтения и записи 👉 Настраивайте схему БД для практической производительности, а не только для академической нормализации Больше полезных советов в статье #android #room #sqlite

🛒 Пример использования Google Play Age Signals API (beta)
// Создаем экземпляр менеджера
val ageSignalsManager = AgeSignalsManagerFactory.create(
    ApplicationProvider.getApplicationContext()
)

// Запрашиваем проверку возрастных сигналов
ageSignalsManager
    .checkAgeSignals(AgeSignalsRequest.builder().build())
    .addOnSuccessListener { ageSignalsResult ->
        // Сохраняем installId для дальнейшего использования
        val installId = ageSignalsResult.installId()

        when (ageSignalsResult.userStatus()) {
            AgeSignalsVerificationStatus.SUPERVISED_APPROVAL_DENIED -> {
                // Пользовтаелю меньше 18 лет и родитель запретил доступ
            }
            AgeSignalsVerificationStatus.VERIFIED -> {
                // Пользователю больше 18 лет
            }
            else -> {
                // Обрабатываем другие статусы
            }
        }
    }
#googleplay

‼️ Дуров нас предупреждал - стала доступна betа версия API для проверки возраста из-за новых требований в отдельных штатах СШ
‼️ Дуров нас предупреждал - стала доступна betа версия API для проверки возраста из-за новых требований в отдельных штатах США Google Play Age Signals API позволяет получить "сигналы" касательно возраста пользователя и дальнейшей реакцией приложения на полученную информацию Новое API вызвано требованием обязательной проверки магазином возраста пользователя с 1 января 2026 в штате Техас #googleplay

🔨 Вот так теперь разрабатываются циферблаты под WearOS и никак иначе. Старый формат отключили в WearOS5 #wearos #android #androidstudio

🔨 Вышел четвертый эпизод Android Studio Narwhal Feature Drop 👉 Поддержка создания декларативных циферблатов часов (без кода, только XML править) 👉