Какой опыт в 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.
|