Android Broadcast
Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR
Mostrar más📈 Análisis del canal de Telegram Android Broadcast
El canal Android Broadcast (@android_broadcast) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 14 562 suscriptores, ocupando la posición 8 723 en la categoría Tecnologías y Aplicaciones y el puesto 45 345 en la región Rusia.
📊 Métricas de audiencia y dinámica
Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 14 562 suscriptores.
Según los últimos datos del 21 julio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -8, y en las últimas 24 horas de 0, conservando un alto alcance.
- Estado de verificación: No verificado
- Tasa de interacción (ER): El promedio de interacción de la audiencia es 40.66%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 23.37% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 5 923 visualizaciones. En el primer día suele acumular 3 404 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 49.
- Intereses temáticos: El contenido se centra en temas clave como api, kotlin, gradle, сборка, androiddev.
📝 Descripción y política de contenido
El autor describe el recurso como un espacio para expresar opiniones subjetivas:
“Подборка новостей и статей для Android разработчиков.
Реклама и связь с автором @ab_manager
РКН https://abdev.by/rkn_tg_ab #MQRZR”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 22 julio, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.
BROADCAST: -1000₽ на туры от 50 000₽!
Выбери свой маршрут на YouTravel.me — и впусти в жизнь краски, о которых ты забыл!
#реклама// (Опционально) проверим, можно ли постить продвигаемые уведомления
// вернёт false, если пользователь выключил Live Updates
val notificationManager = NotificationManagerCompat.from(context)
val canPromote = notificationManager.canPostPromotedNotifications()
// Стиль ProgressStyle (сегменты/точки/иконки трекера)
val progressStyle = NotificationCompat.ProgressStyle()
.setStyledByProgress(false) // используем собственные сегменты/точки
.setProgress(600) // общая длина трека (произвольная метрика)
.setProgressTrackerIcon(IconCompat.createWithResource(context, R.drawable.ic_tracker))
.setProgressSegments(
listOf(
NotificationCompat.ProgressStyle.Segment(200).setColor(Color.GREEN),
NotificationCompat.ProgressStyle.Segment(250).setColor(Color.YELLOW),
NotificationCompat.ProgressStyle.Segment(150).setColor(Color.RED)
)
)
.setProgressPoints(
listOf(
NotificationCompat.ProgressStyle.Point(200).setColor(Color.DKGRAY),
NotificationCompat.ProgressStyle.Point(450).setColor(Color.DKGRAY)
)
)
val notification = NotificationCompat.Builder(context, CHANNEL_ID)
.setSmallIcon(R.drawable.ic_delivery)
.setContentTitle("Доставка заказа") // обязательно для Live Update
.setContentText("Курьер в пути") // лаконично об этапe
.setOngoing(true) // обязательно: ongoing
.setOnlyAlertOnce(true)
.setVisibility(NotificationCompat.VISIBILITY_PUBLIC)
.setContentIntent(contentIntent)
.setStyle(progressStyle) // ProgressStyle из Jetpack Core
.setRequestPromotedOngoing(true) // ключ к Live Update
.setShortCriticalText("$etaMinutes мин") // текст в статус-чипе
.setWhen(etaWhenMillis) // для обратного отсчёта в чипе
.setShowWhen(false) // скрыть время в карточке, оставить чип
.build()
notificationManager.notify(NOTIF_ID, notification)val fixManager = BackportedFixManager()
if (fixManager.isFixed(KnownIssues.KI_398591036)) {
Offer_experience_that_needs_fix()
} else {
Offer_experience_that_avoids_the_bug()
}
Все issue для проверки описаны в классе KnownIssues
#android #jetpackLive Update уведомление - новый формат нотификаций для отслеживания прогресса операции, ограниченного по времени, в реальном времени: доставки, таймера, поездки на такси и другого.Обычно все такие крутые фичи быстро приходят в приложение пиццы с птицей. Пока его не видел там, но очень очень жду. Да как и в такси. Разработчики, пожалуйста, расскажите ПМам, что теперь на Android можно как на iOS сделать #android #android16
val duration = MetadataRetriever
.Builder(context, mediaItem)
.build()
.use { it.retrieveDurationUs().await() }
👉 PreCacheHelper — загрузка контента по частям для более быстрых стартов.
🎵 MediaSession
👉 Плеер в шторке не исчезает сразу после паузы — пользователю проще вернуться к просмотру.
✂️ Transformer API
👉 Экспериментальная обрезка видео через MP4 edit list.
👉 Опция CodecDbLite — ускоряет кодирование, подбирая оптимальные настройки под чипсет:
Transformer.Builder()
.setEncoderFactory(
DefaultEncoderFactory.Builder()
.setEnableCodecDbLite(true)
.build()
)
.build()
💡 Почему обновляться сейчас
👉 Меньше кастомного кода — больше нативных возможностей.
👉 Повышение отзывчивости плеера = выше удержание пользователей.
👉 Новые API для подготовки к интеграции рекламы и улучшенного UX.
Подробнее в анонсе или в changelog
#android #AndroidDev #Jetpack #Media3 #ExoPlayer// Было
String.f“%s %s”, string1, string2)
// Стало
string1 + ‘ ‘ + string2
Пример того как сделана замена можете увидеть в картинках/видео к посту. Если хотите вдохновиться тем, какие возможности есть - посмотрите готовые примеры.
#ideabroadcast = скидка 25% на книгу и другие издания Питер!
#реклама⚠️ Запуск из Android Studio и через Gradle может иметь разные настройки. Полный контроль — через Gradle⚙️ Дополнительно для Compose: • Compose Rules — правила для Detekt или KtLint, проверяющие соответствие best-practice работы с Compose. • Compose Rules от Slack — набор правил для Android Lint (частично пересекается с предыдущим, но есть уникальные). 🔐 Безопасность: • GitLeaks — поиск в коде секретов и данных, которые не должны попасть в репозиторий.
Можно смело комбинировать несколько линтеров. Лучше перебдеть, чем недопроверить.🚀 Как запускать проверки Я использую три уровня автоматизации: 1. Перед пушем кода — быстрые проверки (Detekt, KtLint) в pre-push hook. ⏱️ Цель — не больше 30 секунд, чтобы не раздражать разработчиков, но сразу отсеивать очевидные ошибки. 2. На CI/CD — полная проверка. ⏱️ Лимит — 10 минут. Обычно сюда входят все линтеры, кроме Android Lint, который может сильно замедлить процесс. 3. Ночные прогоны — расширенный Android Lint и тяжёлые правила, если в проекте были изменения. 🛠 Собственные правила Стандартные линтеры могут покрыть только общие случае и правила, но если есть практики, которые надо форсировать для вашего кода то тут надо будет писать собственные правила. Для анализа Kotlin кода я пишу расширения для Detekt, а во всех остальных случаях - для Android Lint, но довольно редко.
📌 Бонус: AAR-библиотеки могут содержать свои Lint-правила, которые автоматически подключаются при их использовании.💬 Делитесь в комментариях как вы следите за качеством вашего кода на регулярной основе и какие инструменты используете. #android #compose #инструменты #ci
На август 2025 количество приложений с распространением через App Bundle в RuStore всё больше и больше.- Распространение через универсальный APK — в нём включены все языки, архитектуры процессоров и размеры экранов. Большая часть этих ресурсов на устройстве не нужна, но всё равно хранится. Даже при обновлениях внутри приложения банки не используют Split APK хотя бы по ABI. - Нет аналога Google Play Dynamic Delivery — этот механизм позволяет загружать только нужные пользователю ресурсы, но вне Google Play им воспользоваться невозможно. 💼 По-моему мнению, главная причина: Банки не конкурируют приложениями как основным продуктом Клиенты выбирают банк по финансовым условиям: выгодные ставки, кешбэк, бесплатное обслуживание. Я даже не могу вспомнить рекламы банков по телевизору где фокус на приложении, а не процентах или кэшбеке (может вы в комментариях сможете поделиться примером рекламы приложения банка) Если завтра приложение будет весить 400 МБ вместо 200 Мб — откажется ли пользователь обновить его или вовсе пользоваться услугами банка? Скорее всего, нет. И бизнес это прекрасно понимает. Бороться за компактность невыгодно. Это не влияет на метрики и привлечение клиентов. Люди устанавливают приложения. Деньги крутятся. Зачем заморачиваться? Хочешь понять, как Google Play и App Bundle реально помогают ужать приложение до минимума? Разложил всё по полочкам вот в этом видео
// build.gradle.kts
android {
bundle {
// Отключить динамическую доставку ресурсов по локалям
language.enableSplit = false
density.enableSplit = true
abi.enableSplit = true
}
}
Чтобы в APK и App Bundle попали только нужные локали, необходимо явно указать их через фильтр локалей в Android Gradle Plugin:
android {
androidResources {
localeFilters += listOf("en", "ru")
}
}
В результате:
✅ Размер сборки уменьшится
✅ В UI не появятся ресурсы из локалей, которые вы не поддерживаете
✅ Google Play не будет доставлять ресурсы для лишних локалей
Ранее вместо androidResources использовали resConfigs и resConfiguration, что позволяло удалять ресурсы не только по локалям, но и в других квалификаторах. Эту возможность пометили как deprecated. Теперь удаление предлагается только по языкам. Указание значений из других квалификаторов игнорируется.
#android #googleplay #лучшиепрактики// build.gradle.kts
android {
bundle {
language.enableSplit = false
density.enableSplit = true
abi.enableSplit = true
}
}
Чтобы в APK и App Bundle попадали ресурсы из локалей, поддерживаемых вашиз приложением, то надо включить специальную настройку в Android Gradle Plugin
android {
compileSdk = libs.versions.compileSdk.get().toInt()
namespace = "com.example.jetnews"
androidResources {
localeFilters += listOf("en", "ru")
}