Тех собес на middle-senior Android Developer в ****

Доступно с премиум-подпиской

Оформите премиум-подписку, чтобы получить доступ к:

  • Фильтрации по компаниям
  • Названиям компаний в интервью
  • Видеозаписям собеседований в категории Android Developer

Посмотреть видео в категории

(2025-06-29)

— Теория:

1. В чем особенность котлина по сравнению с джававой? 2. Почему разработчики котлина не могли сделать синхронайз одним ключевым словом? 3. Только ли с джавой должен работать котлин? 4. Сталкивался ли с контрактами? 5. Что такое инлайн что они делают и когда уместны? 6. Что такое рефайт? 7. Что такое затирание типов и почему оно существует? 8. Какие есть способы взаимодействия между сервисом и активити? 9. Что такое EventBus? 10. Что такое ResultSet view? 11. Представим, что у нас есть какая-то Activity. На этой Activity стандартно создается Dagger-компонент методом DI inject. Придумай способ, чтобы этот Dagger-компонент переживал конфигурацию. Как это можно сделать?

— Задача 1: Какие значения будут положены в этот хэш сэт?

    data class Dog(
   val breed: String = "shepherd"
) {
   var name = ""
}

val set = hashSetOf(   Dog().apply { name = “Joe” },   Dog(“shark”),   Dog().apply { name = “Henry” })

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

public inline fun secretFunction(lock: Any, block: () -> R): R {
   callInPlace(block, InvocationKind.EXACTLY_ONCE)
}

@Suppress(“NONPUBLICCALLFROMPUBLICINLINE”, “INVISIBLEMEMBER”)monitorEnter(lock)try {   return block()}finally {   @Suppress(“NONPUBLICCALLFROMPUBLICINLINE”, “INVISIBLEMEMBER”)   monitorExit(lock)}

— Вопросы по задаче 2:

1. Как на самом деле называется эта функция? (synchronized) 2. Чем synchronized является в Java 3. В чем особенность Kotlin как языка? 4. Почему synchronized в Kotlin сделано именно так? 5. Зачем нужны kotlin.contracts.contract? 6. Зачем здесь @Suppress(“NONPUBLICCALLFROMPUBLIC_INLINE”)? 7. Когда уместно использование inline? 8. Что сделать с функцией, чтобы компилятор не ругался на ненужный inline? 9. Расскажи про ключевое слово reifiedжи про ключевое слово reified

— Задача 3 Ознакомьтес с представленным кодом и ответьте на вопросы по задаче.

    class Activity {
    
text📋fun onCreate() {
    Graph.create().inject(this)
}

fun onDestroy() {
    //
}

}
@Componentinterface Graph {
text📋companion object {
    fun create(): Graph {
        return DaggerGraph.create()
    }
}

}

— Вопросы по задаче 3:

1. Какие способы взаимодействия между сервисом и активити? 2. Что такое EventBus? Это антипаттерн? Почему? 3. Расскажи про RecyclerView 4. DiffUtil. Какие методы там есть? getChangePayload() 5. Есть активити, в этой активити создается даггеровский компонент (в onCreate). Можешь придумать способ, чтобы компонент переживал смену конфигурации? 6. Что не рекомендуется делать в методе onDraw() при создании Custom View? 7. Эффект какого из launch mode Активити описан ниже? Если экземпляр Активити уже существует на вершине текущего Task, новый экземпляр не будет сгенерирован, а новые данные для Активити будут оправлены через onNewIntent(). 8. В каком из случаев вызов onDestroy() в Активити не гарантирован? 9. Какой из перечисленных источников данных RxJava либо успешно завершает свою работу без какого-либо возвращаемого значения, либо выбрасывает исключение? 10. Для чего используется Scope @Singleton в Dagger2? 11. Какая аннотация в Dagger2 используется для инъекции переменных зависимостей, которые неизвестны на момент компиляции? например, для инъекции id в класс Repository?ции id в класс Repository?