Совкомбанк · август 2024

Тех собес на middle-senior Android Разработчик в Совкомбанк

middle-senior Тех собес 21 вопрос 4 задачи
1

Вопросы по Android SDK

1. Как реализовать спойлеры в чате на Android Views (RecyclerView и TextView), чтобы по клику скрытая часть текста отображалась?

2. На чем основан механизм отображения HTML-текста в Android TextView?

3. Как решить задачу добавления заголовка с токеном авторизации ко всем запросам в приложении, используя Retrofit и OkHttp?

4. Какой механизм можно использовать, чтобы автоматически логировать все запросы и ответы в OkHttp?

2

Вопросы по Kotlin

5. Почему в Kotlin List имеет только 5 компонентов (componentN от 1 до 4)?

6. Как реализовать шестой компонент (component5) для List?

7. Как устроен extension под капотом, за счет чего он реализуется?

8. Какие бывают функции области видимости в Kotlin?

9. В чем основное различие между also и let?

10. За счет чего достигается проникновение this и it внутрь контекста функций области видимости?

11. Что такое неявный получатель?

12. В каких синтаксических конструкциях Kotlin встречается запись, напоминающая экземпляр класса, но являющаяся функцией?

3

Задача 1.

Практика

13. Задача: Ознакомиться с кодом и ответить на вопросы

class SpecialFunction : () -> Unit {
   override fun invoke() {
       println("Invoked from an instance.")
   }
}

fun main() {
   try { SpecialFunction()() }
   catch (ex: Exception) { println("An error occurred") }
}

14. Каков будет результат выполнения функции main?

15. Для чего используется функция invoke?

4

Задача 2.

Практика

16. Задача: Ознакомиться с кодом и ответить на вопросы

val map = mutableMapOf("ZeroKey" to "0")
   .plus(
       "firstKey" to "1",
   ).apply {
       this.plus("SecondKey" to "2")
   }

17. Каков будет результат выполнения этого примера кода?

18. Что такое инфиксные функции?

5

Задача 3.

Практика

19. Задача: Проанализировать синтаксис деструктуризации Pair

val pair: Pair = "first" to "second"
val (first, second) = pair

20. Имеет ли право на существование такой синтаксис и где такое можно встретить?

6

Задача 4.

Практика

21. Задача: Проанализировать работу операторов в цепочке Flow

withContext(Dispatchers.Main) { 
    val result = map { ... } // В каком диспатчере?
        .flowOn(Dispatchers.IO) 
        .filter { ... } // В каком диспатчере?
        .flowOn(Dispatchers.Default) 
        .single() // А здесь?
}

22. В каком диспетчере будет выполнен каждый оператор в примере с Flow?

23. Как называется функция single и аналогичные ей в терминологии Flow и чем они отличаются от filter и map?

24. Где и как можно использовать CoroutineExceptionHandler и для чего он нужен?

25. Почему CoroutineExceptionHandler игнорируется в дочерних корутинах, запущенных через launch?