Чем отличаются inline, noinline и crossinline в Kotlin inline — модификатор функции, при котором её тело подставляется непосредственно в место вызова, помогая сократить накладные расходы noinline — модификатор…
Всегда ли хватает стандартной реализации equals() и hashCode()? Контекст: методы Java, отвечающие за сравнение объектов и вычисление их хеш-кодов Стандартный equals() сопоставляет ссылки, то есть проверяет, указывают…
Область: Kotlin Flow и многопоточная обработка данных stateIn преобразует обычный Flow в StateFlow, который всегда хранит последнее значение управляет потоковым состоянием и поддерживает хранение последнего состояния…
Как сохранить данные при повороте экрана без ViewModel контекст: Android, MVP, жизненный цикл Activity задача: сохранить и восстановить состояние Presenter после recreate используем: метод onSaveInstanceState(Bundle)…
Виды и применение CoroutineScope и Dispatcher CoroutineScope задаёт область жизни корутины, управляет её запуском и отменой Основные виды CoroutineScope: GlobalScope — глобальная область, не связанная с жизненным…
Механизмы межпроцессного взаимодействия (IPC) в Android В основе Android лежит многопроцессная архитектура, повышающая безопасность и стабильность системы Ключевой механизм IPC — Binder: высокопроизводительное и…
Основные проблемы перехвата Intent через BroadcastReceiver Конкуренция за Intent: один Intent могут одновременно обрабатывать несколько приёмников, а порядок их работы сложно контролировать Безопасность: без проверки…
В Kotlin data class предназначен для хранения данных Прямое наследование data class запрещено Наследоваться можно от обычных классов, но не от другого data class Вместо этого применяют composition (композицию)…
Чем различаются манифестная и runtime-регистрация BroadcastReceiver? Регистрация в манифесте: статическая: ресивер доступен даже при выключенном приложении принимает широковещательные интенты от системы или других…