Какие задачи выполнял на прошлом месте работы

Ответ на вопрос «Какие задачи выполнял на прошлом месте работы» на собеседовании Android-разработчика должен быть ориентирован на практический опыт с Android SDK, архитектурами, API, сопровождением проекта и взаимодействием с командой. Ниже приведён подробный вариант ответа, который охватывает широкий спектр реальных задач, встречающихся у Android Developer.

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

Разработка функциональности и UI

  • Разработка новых экранов и фич по дизайн-макетам из Figma или Zeplin с использованием ConstraintLayout, RecyclerView, ViewPager2, BottomNavigationView, Navigation Component и других UI-компонентов.

  • Реализовывал мультиязычность (через strings.xml и ресурсы).

  • Настраивал адаптивную вёрстку под различные экраны и плотность пикселей.

  • Работал с анимациями и переходами (MotionLayout, TransitionManager).

  • Делал поддержку тёмной темы с использованием ресурсов night.

Архитектура приложения

  • Использовал архитектурные паттерны MVVM и MVI, применял Single Source of Truth, чтобы разделять UI и бизнес-логику.

  • Работал с Jetpack ViewModel, LiveData, StateFlow/SharedFlow.

  • Настраивал dependency injection через Dagger Hilt и Koin.

  • Разделял код по слоям (Presentation, Domain, Data), создавал интерфейсы для абстракций и мок-тестов.

  • Использовал репозитории, мапперы, юзкейсы.

Работа с сетью и API

  • Интегрировал REST API через Retrofit + OkHttp + Moshi/Gson.

  • Обрабатывал ошибки с использованием sealed class, Resource, Result и кастомных моделей ошибок.

  • Настраивал интерсепторы, логгирование, заголовки, токены, работу с сессиями.

  • Реализовывал автообновление токена, Authenticator, Interceptor.

Работа с локальными данными

  • Использовал Room для хранения данных локально.

  • Создавал DAO-интерфейсы, сущности, мапперы и типовые конвертеры.

  • Использовал LiveData, Flow и suspend-функции в связке с Room.

  • Применял DataStore (Preferences и Proto) вместо SharedPreferences.

Асинхронность и сопрограммы

  • Активно использовал Kotlin Coroutines: launch, async, withContext, flow, collect, StateFlow.

  • Настраивал CoroutineScope на уровне ViewModel и Application.

  • Работал с обработкой ошибок в корутинах, SupervisorJob, CoroutineExceptionHandler.

Тестирование

  • Писал юнит-тесты с использованием JUnit, Mockito, Truth, KotlinTest.

  • Делал инструментальные тесты с Espresso, UIAutomator.

  • Покрывал ViewModel, UseCase, Repository.

  • Конфигурировал testImplementation, создавал фейки и стаб-реализации.

CI/CD и сборка

  • Работал с Gradle, настраивал зависимости по модулям, использовал buildSrc.

  • Создавал productFlavor’ы, buildType’ы.

  • Настраивал CI-пайплайн в GitLab CI и Bitrise:

    • автоматическая сборка, запуск тестов, прогон линтеров.

    • сборка .apk/.aab и деплой на Firebase App Distribution.

  • Работал с proguard-rules.pro, buildConfigField, BuildConfig.

Сторонние библиотеки и SDK

  • Интеграция Firebase: Crashlytics, Analytics, Remote Config, Messaging.

  • Использовал библиотеки: Glide, Coil, Picasso (для изображений), Timber (для логов), Lottie (анимации).

  • Интеграция карт (Google Maps SDK), оплаты (Google Pay, Stripe), авторизации через Google и соцсети.

Работа с Google Play

  • Подготовка .aab, подпись, генерация ключей через keystore.

  • Настройка release note, rollout по процентам.

  • Интеграция in-app review, in-app update.

  • Работа с ANR и crash-отчётами, анализ через Android Vitals и Firebase Crashlytics.

Оптимизация и производительность

  • Использовал StrictMode, leakCanary, Profiler, Systrace.

  • Проводил анализ ANR и memory leak.

  • Уменьшал размеры apk/aab, удаляя неиспользуемые ресурсы и оптимизируя изображения.

Командная работа

  • Активно работал в команде разработчиков, дизайнеров, тестировщиков и аналитиков.

  • Писал техническую документацию: Confluence, Notion, Google Docs.

  • Участвовал в code review, создал pull request’ы по git-flow.

  • Участвовал в Scrum-процессах: ежедневные стендапы, спринт-планирование, ретроспективы.

Отдельные проекты

  • Разрабатывал MVP мобильного банка: авторизация, просмотр баланса, переводы, уведомления.

  • Работал над маркетплейсом: каталог, фильтры, корзина, оплата, трекинг заказов.

  • Поддерживал корпоративное приложение: push-уведомления, отчётность, интеграция с внутренними API.