Какой опыт в Android-разработке

Какой опыт в Android-разработке

Мой опыт в Android-разработке охватывает полный цикл создания мобильных приложений — от проектирования архитектуры до публикации в Google Play и сопровождения продукта на продакшене. Я работал над проектами как в составе команды, так и самостоятельно, включая корпоративные, клиентские и продуктовые приложения. Использовал современные подходы и инструменты из экосистемы Android и Jetpack.

Архитектура и подходы к разработке

Я реализовывал архитектуру приложений на основе:

  • MVVM с ViewModel, LiveData, StateFlow;
  • Clean Architecture с выделением Domain-слоя, репозиториев, use-case’ов;
  • подходов SOLID, DRY, KISS, Separation of Concerns;
  • модульной архитектуры с разделением на модули core, data, feature, common-ui и т.д.

Опыт работы с Dependency Injection:

  • Koin (в более ранних проектах),
  • Hilt / Dagger 2 — в продакшн-приложениях с масштабируемыми зависимостями.

Работа с UI

Я создавал экраны с использованием:

  • ConstraintLayout, RecyclerView, ViewPager2, Material Components;
  • реализовывал кастомные view и сложные UI-анимации (например, переходы между фрагментами);
  • адаптивную вёрстку под разные плотности экранов и ориентации;
  • темную/светлую темы через AppCompatDelegate.

Опыт в Jetpack Compose:

  • создание UI декларативным способом;
  • состояние через remember, mutableStateOf, LaunchedEffect;
  • интеграция с ViewModel и комбинированный подход с XML.

Работа с данными

Хорошо знаком с:

  • Room (с миграциями, DAO, @Relation, Flow и LiveData);
  • SharedPreferences (и их обертками через DataStore);
  • DataStore Preferences & Proto;
  • SQLite, CursorLoader, ContentProvider — в проектах с Legacy-кодом.

Интегрировал REST API с помощью:

  • Retrofit2, Moshi и Gson;
  • поддержка токенов авторизации, interceptor’ы, error-handling;
  • OkHttp с логированием и кешированием.

Работал с GraphQL и WebSocket через OkHttp и Apollo client.

Асинхронность и управление потоками

Использовал:

  • Coroutines и suspend функции;
  • ViewModelScope, lifecycleScope, flow, channel, StateFlow;
  • RxJava2/3 (в старых проектах), трансформация операторов, Schedulers, CompositeDisposable.

Разбираюсь в проблемах утечек памяти и решениях: WeakReference, правильная отмена корутин, Disposable, жизненный цикл компонентов.

Навигация

Опыт работы с:

  • Jetpack Navigation Component;
  • Deep links, safeArgs;
  • Nested graphs, navigation между фрагментами и экранами;
  • BottomNavigationView с сохранением состояний фрагментов.

Работа с системой

Имею практический опыт работы с:

  • Permissions API (runtime permission и rationale);
  • WorkManager, JobScheduler, AlarmManager;
  • Service и Foreground Service (например, для загрузок и музыки);
  • взаимодействие с Bluetooth (включая BLE), GPS, CameraX, датчиками;
  • BroadcastReceiver и системными интентами (например, отслеживание подключения к сети).

Безопасность и защита данных

  • Применял EncryptedSharedPreferences, шифрование через Cipher, KeyStore;
  • Ограничение дебага, отключение скриншотов (FLAG_SECURE);
  • Реализация login flow с BiometricPrompt (Face ID, Touch ID, PIN).

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

Работал с:

  • Unit-тестами через JUnit5, Mockito, Turbine, Truth;
  • UI-тестами через Espresso и UI Automator;
  • Интеграционное тестирование с Robolectric и Kaspresso;
  • Писал snapshot-тесты с использованием Paparazzi.

Настраивал code coverage, линтеры и CI-валидации pull request’ов.

CI/CD, профилирование, релизы

Интеграция и настройка:

  • CI/CD через GitHub Actions, GitLab CI, Bitrise;
  • автоматическая сборка .apk, .aab, подписание, upload на Firebase App Distribution;
  • Crashlytics, Firebase Performance, ANR/strictMode анализ;
  • Shrinking и obfuscation через ProGuard / R8;
  • настройка build.gradle.kts, multi-flavor, build types, product flavors.

Работа в команде

  • Участвовал в code-review, ретроспективах, планировании, менторстве младших разработчиков;
  • Работа в Agile-команде с таск-трекерами (Jira, YouTrack), ветвлением Git-flow;
  • Составлял wiki-документацию, архитектурные схемы, шаблоны для фич.

Примеры проектов

  • Приложение доставки еды: оплата, GPS-трекинг, динамический каталог, работа офлайн, push-уведомления.
  • Клиент интернет-банка: экраны авторизации, отображение баланса, P2P переводы, QR-платежи.
  • Медицинский журнал: офлайн-кеширование карточек, синхронизация с сервером, BLE-взаимодействие с устройством.
  • Образовательная платформа: курсы, видео, трекинг прогресса, подписка, Jetpack Compose.

Используемые библиотеки и технологии

  • Hilt / Dagger, Retrofit, Glide, Picasso, Coroutines, Room, Navigation Component;
  • Jetpack Compose, ViewModel, LiveData, WorkManager, Paging 3;
  • Firebase (Auth, Firestore, Remote Config, Analytics, Crashlytics, Messaging);
  • Kotlin DSL, Protobuf, Ktor, OkHttp, Moshi, ExoPlayer, DataStore, Biometric, Google Maps SDK.