P
prepair.app
Пройти интервью →
EnglishУкраїнськаРусскийDeutsch
🟩

Junior Android (Kotlin)Вопросы на собеседовании Android разработчика

Junior · без опыта / до 1 года

Собеседование Android-разработчика крутится вокруг идиом Kotlin, корутин и жизненного цикла платформы — большинство senior-вопросов на самом деле проверяют, понимаете ли вы, что процесс могут убить в любой момент. Ниже — вопросы, которые задают чаще всего, каждый с эталонным ответом. Junior: базовая теория, определения и простые практические кейсы.

Попробовать — без регистрации
Готовим вопрос…

Темы для подготовки

Возможности языка Kotlin
Корутины и Flow
Жизненный цикл Android
Jetpack Compose
Архитектура и DI
Room, Retrofit и тесты

9 вопросов уровня Junior с ответами

1

Чем `val` отличается от `var` и делает ли `val` объект неизменяемым?

Ответ

val означает, что ссылку нельзя переприсвоить, var — что можно. Объект это неизменяемым не делает: в val, хранящем MutableList, элементы по-прежнему добавляются. Для настоящей неизменяемости нужен неизменяемый тип, а не только неизменяемая привязка.

2

Как устроена null-безопасность в Kotlin?

Ответ

Типы по умолчанию не допускают null, а допускающий пишется как String?. Компилятор заставляет обработать случай null — через ?., ?: или умное приведение после проверки. !! от этого отказывается и бросает исключение, поэтому в своём коде он должен встречаться примерно никогда.

3

Что такое data class и что он даёт?

Ответ

Класс, задача которого — хранить значения. Компилятор генерирует equals, hashCode, toString, copy и деструктуризацию по свойствам первичного конструктора. Подвох в том, что попадают только они: поле, объявленное в теле, молча остаётся вне equals.

4

Чем `==` отличается от `===` в Kotlin?

Ответ

== вызывает equals — структурное сравнение. === сравнивает ссылки, то есть один ли это объект. Это обратно Java, где ссылку проверяет ==, и на этом спотыкаются пришедшие оттуда.

5

Каков жизненный цикл Activity и какие колбэки важнее всего?

Ответ

onCreate один раз при создании, onStart и onResume по мере появления и получения фокуса, затем onPause, onStop и onDestroy на выходе. Важны пары: захватывать в onStart, освобождать в onStop. Частая ошибка — удерживать ресурс через onStop, оставляя его живым, пока приложение в фоне.

6

Что происходит с Activity при повороте и почему это проблема?

Ответ

По умолчанию она уничтожается и создаётся заново, поэтому всё, что лежало в полях, пропадает, а незавершённая работа остаётся сиротой. Ради этого состояние живёт в ViewModel, переживающей пересоздание, а временное состояние UI — в onSaveInstanceState. Поворот лишь самый заметный случай: то же самое происходит при смене локали или изменении размера окна.

7

Что такое Intent и чем явный отличается от неявного?

Ответ

Сообщение с просьбой к системе что-то запустить. Явный называет конкретный компонент и применяется внутри своего приложения. Неявный описывает действие — поделиться, открыть ссылку — и система предлагает того, кто это умеет; уметь может никто, поэтому нужен запасной путь.

8

Что такое ANR и как его избежать?

Ответ

Application Not Responding — система показывает диалог, когда главный поток заблокирован около пяти секунд на вводе или широковещательный приёмник работает слишком долго. Случается это оттого, что кто-то выполнил сеть, диск или запрос к базе в главном потоке. Лечится структурно: всё, что может занять время, уходит в корутину на Dispatchers.IO, а StrictMode в отладочной сборке ругается раньше, чем это увидит пользователь.

9

Что нужно, чтобы показать список в `RecyclerView`?

Ответ

Разметка одной строки, адаптер, который создаёт и связывает view holder'ы, и layout manager. ViewHolder существует затем, чтобы findViewById выполнялся один раз на переиспользуемую строку, а не при каждом связывании, — ради этого виджет и заменил ListView. DiffUtil затем вычисляет минимальный набор изменений между старым и новым списком, давая анимации элементов и избавляя от notifyDataSetChanged, который перерисовывает всё.

🦎

Прочитать ответы недостаточно

На собеседовании ты говоришь вслух под давлением. Кем задаст эти же вопросы, оценит каждый ответ и покажет, что именно подтянуть.

Пройти интервью Junior Android (Kotlin) →
Бесплатно · 3 интервью в месяц

Другие уровни — Android (Kotlin)

Middle Android (Kotlin)Senior Android (Kotlin)Все вопросы Android (Kotlin)

Другие специализации

🔍Junior QA Manual🤖Junior QA AutomationJunior Java Backend🐍Junior Python Backend🐘Junior PHP Backend🦫Junior Go Backend🟢Junior Node.js Backend💎Junior Ruby on Rails🟣Junior .NET Backend Developer🔷Junior C++