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

Senior Android (Kotlin)Питання на співбесіді Android розробника

Senior · 5+ років досвіду

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

Спробувати — без реєстрації
Готуємо питання…

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

Можливості мови Kotlin
Корутини та Flow
Життєвий цикл Android
Jetpack Compose
Архітектура і DI
Room, Retrofit і тести

6 питань рівня Senior з відповідями

1

Як вирішувати, що виносити в модуль у міру зростання застосунку?

Відповідь

За межею, яка змінюється разом, і за часом збірки. Фіча-модуль, що збирається і тестується без решти, окуповується швидкістю компіляції і тим, що робить напрям залежностей явним. Поділ за шарами — модуль із усіх вʼю-моделей — зазвичай дає модулі, які завжди змінюються разом, тобто ціну без виграшу.

2

Як змусити застосунок працювати офлайн?

Відповідь

Зробити локальну базу джерелом істини, а мережу — синхронізатором, щоб інтерфейс ніколи не чекав звʼязку. Далі починається складне: конфлікти й порядок — черга відкладених операцій, що переживає перезапуск, ідемпотентні запити, щоб повтор був безпечним, і явне правило, хто виграє, якщо змінилися обидві сторони. Прикрутити це потім означає переписати шар даних.

3

Що робити з OutOfMemory, який не відтворюється?

Відповідь

Почати з групування крешів: які пристрої і які екрани, бо на слабких пристроях вилазить те, що решта терпить. Звична відповідь — картинки: зображення в повній роздільності, розкодоване заради мініатюри, коштує мегабайти кожне. LeakCanary у налагоджувальній збірці називає утримані обʼєкти, а профайлер памʼяті показує, чи росте купа і чи повертається вона.

4

Як зробити фонову задачу, що переживає вбивство застосунку?

Відповідь

WorkManager: він зберігає запит і дотримується обмежень, які навʼязує система, — мережу, заряджання, Doze. Корутина в області вмирає разом із процесом, а будильник — не планувальник. Сама задача мусить бути ідемпотентною, бо система її повторить, і неідемпотентна виконається двічі.

5

Як підходити до великої міграції, скажімо з XML-верстки на Compose?

Відповідь

Поступово і в обидва боки: Compose усередині фрагмента, ComposeView у наявній верстці й інтероп, що дозволяє переводити по екрану за раз. Переводити екран тоді, коли його все одно правлять, а не окремим проєктом: переписування без продуктової зміни — перше, що ріжуть при зміні пріоритетів.

6

Що насправді тестувати в Android-застосунку?

Відповідь

Бізнес-логіку і зведення стану звичайними юніт-тестами — вони йдуть секунди і ловлять справжні дефекти. Поведінку репозиторію і бази з базою в памʼяті, бо припущення ORM — саме те, що ховають моки. І жменю інструментальних тестів на потоки, які не мають ламатися ніколи, з розумінням, що вони достатньо повільні, аби великий їх набір перестали запускати.

🦎

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

На співбесіді ти говориш вголос під тиском. Кем поставить ті самі питання, оцінить кожну відповідь і покаже, що саме підтягнути.

Пройти інтерв'ю Senior Android (Kotlin) →
Безкоштовно · 3 інтерв'ю на місяць

Інші рівні — Android (Kotlin)

Junior Android (Kotlin)Middle Android (Kotlin)Усі питання Android (Kotlin)

Інші спеціалізації

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