Подборка объединяет вопросы, отмеченные на этапах интервью в X5 Digital. Здесь можно понять структуру технической проверки и заранее повторить связанные темы. В подборке чаще встречаются темы: coroutines, dagger, mobile.
В Dagger управление временем жизни Subcomponent осуществляется через область видимости (scope), которая связывается с жизненным циклом компонента, создающего этот Subcomponent.
В Kotlin Coroutines, чтобы выполнить асинхронный блок кода внутри синхронной функции, можно использовать функцию runBlocking. Она запускает корутину и блокирует текущий поток до завершения её выполнения.
В Kotlin для задержки выполнения корутин можно использовать функцию delay(), которая приостанавливает выполнение текущей корутины на заданное время без блокировки потока.
В SharedFlow стратегия управления переполнением буфера определяется параметром onBufferOverflow. Она определяет, что происходит, когда буфер заполнен и приходит новая эмиссия: