Android Broadcast
Подборка новостей и статей для Android разработчиков. Реклама и связь с автором @ab_manager РКН https://abdev.by/rkn_tg_ab #MQRZR
Больше📈 Аналитический обзор Telegram-канала Android Broadcast
Канал Android Broadcast (@android_broadcast) языкового сегмента Русский является активным участником. Сейчас сообщество объединяет 14 583 подписчиков, занимая 8 750 место в категории Технологии и приложения и 45 369 место в регионе Россия.
📊 Показатели аудитории и динамика
С момента создания невідомо проект демонстрирует стремительный рост, собрав аудиторию из 14 583 подписчиков.
Согласно последним данным от 10 июля, 2026, канал показывает стабильную активность. За последние 30 дней изменение числа участников составило 39, а за последние 24 часа — -1, при этом общий охват остаётся высоким.
- Статус верификации: Не верифицирован
- Уровень вовлечённости (ER): Средний показатель вовлечённости аудитории составляет 44.92%. В первые 24 часа после публикации контент обычно набирает 23.72% реакций от общего числа подписчиков.
- Охват публикаций: В среднем каждый пост получает 6 551 просмотров. В течение первых суток публикация набирает 3 459 просмотров.
- Реакции и взаимодействия: Аудитория активно поддерживает контент: среднее количество реакций на один пост — 42.
- Тематические интересы: Контент сосредоточен на ключевых темах, таких как api, kotlin, gradle, сборка, androiddev.
📝 Описание и контентная политика
Автор описывает ресурс как площадку для выражения субъективного мнения:
“Подборка новостей и статей для Android разработчиков.
Реклама и связь с автором @ab_manager
РКН https://abdev.by/rkn_tg_ab #MQRZR”
Благодаря высокой частоте обновлений (последние данные получены 11 июля, 2026) канал поддерживает актуальность и высокий уровень охвата публикаций. Аналитика показывает, что аудитория активно взаимодействует с контентом, что делает его важной точкой влияния в категории Технологии и приложения.
package main
import "fmt"
func main() {
fmt.Println("Поздравляем с Днём разработчика! 🎉")
#frontend #backend #go #tl// Требуется, чтобы окно учитывало желаемый HDR headroom.
// Обратите внимание, что эквивалентный API в SurfaceView НЕ требует
// COLOR_MODE_HDR для ограничения headroom,
// если на SurfaceView отображается HDR-контент.
window.colorMode = ActivityInfo.COLOR_MODE_HDR
// Иллюстративные значения: разные значения headroom
// могут использоваться в зависимости от
// желаемого headroom контента
// И особенностей UI-дизайна приложения.
window.desiredHdrHeadroom = when {
/* только SDR */ -> 0f
/* Смешанный, в основном SDR */ -> 1.5f
/* Смешанный, в основном HDR */ -> 3f
/* только HDR */ -> 5f
else -> 0f
}
#android #hdr #android15androidx.camera:camera-compose - работа с камерой в Compose UI
🛠 Исправление багов
// Пример View Finder в Compose
val currentSurfaceRequest: SurfaceRequest? by viewModel.surfaceRequests.collectAsState()
currentSurfaceRequest?.let { surfaceRequest ->
// CoordinateTransformer for transforming from Offsets to Surface coordinates
val coordinateTransformer = remember { MutableCoordinateTransformer() }
CameraXViewfinder(
surfaceRequest = surfaceRequest,
implementationMode = ImplementationMode.EXTERNAL, // Can also use EMBEDDED
modifier =
modifier.pointerInput(Unit) {
detectTapGestures {
with(coordinateTransformer) {
val surfaceCoords = it.transform()
viewModel.focusOnPoint(
surfaceRequest.resolution,
surfaceCoords.x,
surfaceCoords.y
)
}
}
},
coordinateTransformer = coordinateTransformer
)
}
#android #камера #jetpack #composeandroid.testOptions.unitTests.includeAndroidResources
#android #тестирование// Добавляем в gradle.properties
android.r8.optimizedResourceShrinking=true
#android #оптимизацияas-приведения? 🤔
Вот пример, который недавно попался мне на глаза:
class Sample(private val activity: Activity) {
fun doSomething() {
// Опасно! Может упасть с ClassCastException,
// если activity не реализует LifecycleOwner
(activity as LifecycleOwner).lifecycle.addObserver(...)
}
}
Опустим тот факт, что здесь стоит использовать слабую ссылку (WeakReference) на Activity. Меня больше смутила необходимость вручную приводить Activity к LifecycleOwner.
Да, в современной Android-разработке AppCompatActivity и FragmentActivity реализуют этот интерфейс. Но наша цель — писать чистый и стабильный код, который не полагается на слепую веру, а гарантирует безопасность на уровне типов.
Решение: Ограничение типов с помощью where
В Kotlin мы можем использовать условие where для универсальных параметров, чтобы указать: «класс A должен быть *одновременно* и Activity, и LifecycleOwner».
class Sample<A>(private val activity: A)
where A : Activity,
A : LifecycleOwner {
fun doSomething() {
// Теперь activity можно использовать как LifecycleOwner
// БЕЗОПАСНО и без приведения типов
activity.lifecycle.addObserver(...)
}
}
Этот же подход отлично работает и для функций:
fun <A> doSomethingWith(activity: A)
where A : Activity,
A : LifecycleOwner {
// Полная типобезопасность
activity.lifecycle.addObserver(...)
}
В чем выигрыш?
1. Безопасность: Компилятор гарантирует, что в класс Sample или функцию doSomethingWith можно передать только объект, который удовлетворяет обоим условиям. Исключаются ошибки ClassCastException в рантайме.
2. Чистота кода: Исчезают громоздкие и опасные приведения через as.
3. Выразительность: Сигнатура класса/функции явно сообщает о своих требованиях к переданным зависимостям.
Используйте силу системы типов Kotlin на полную! Это делает код не только чище, но и стабильнее. 💪
#kotlin #android #androiddevANDROID10 получите ещё -10% сверху!
Обновите рабочее место и почувствуйте, как работать становится легче и эффективнее.
👉 ergostol.ru
Реклама. ООО «СОФТЭФФЕКТ», ИНН 7735575262