Обязанности:
О проекте Мобильное OEM/white-label приложение: бонусная программа, маркетплейс, мессенджер, видео- и аудиозвонки на WebRTC, push-уведомления, оплата картой. Одна кодовая база на платформу собирается под несколько брендов. Кодовая база ~100k+ строк, 12+ интегрированных backend-сервисов.А также другие приложения аналогичной тематики. Чем предстоит заниматься Развивать фичи: мессенджер, звонки, бонусы, маркетплейс, сертификаты, платежи и другие сервисы.Чинить и оптимизировать критичные участки: стабильность WebSocket, жизненный цикл звонков, производительность длинных списковИнтегрировать новые backend-сервисы.Поддерживать white-label сборки под разные бренды.Работать с реалтайм-стеком: WebRTC, WebSocket, push (на iOS — APNs + VoIP-push)Участвовать в код-ревью и развитии архитектуры. Личные качества и подход к работе Увлечённость продуктом. Не просто «закрываем тикеты», а живой интерес к тому, что делаем: сами пользуемся приложением, понимаем боль пользователей, предлагаем улучшения, замечаем баги и шероховатости до того, как их найдёт QA или пользователь.Доступность и вовлечённость. Гибкий график, но при этом готовность оперативно включаться в критичных ситуациях (продакшен-инцидент, релиз, согласование на стыке iOS/Android/бэкенда), быть на связи в рабочих чатах и не «пропадать» надолго без предупреждения. Ценим людей, которые хотят быть в контексте.Ответственность за результат. Доводим задачи до прода и наблюдаем, как они работают, а не «передали в QA — забыли». Что мы ожидаем (общее для обеих платформ) Коммерческий опыт мобильной разработки от 3 лет.От 1,5 лет в продакшене на современном декларативном UI: Jetpack Compose или SwiftUI.Уверенный язык платформы: Kotlin или Swift 5.7+ — корутины / async-await, structured concurrency, actors / @MainActor / main-dispatcher, отмена задач, thread-safetyHTTP-клиент платформы (Retrofit + OkHttp / URLSession): кастомные заголовки авторизации, несколько параллельных клиентов, refresh-токены, обработка ошибок и rate limitingWebSocket в проде: переподключение с бэкоффом, heartbeat, обработка разрывовИнтеграция WebRTC для видео/аудио-звонков.Push: регистрация и обработка в foreground / background / killed-state.Безопасное хранение токенов (Keychain / DataStore), JWT/OAuth refresh-флоу, без логирования PII и токенов.Сборки под несколько брендов из одного кода (Gradle Kotlin DSL / xcconfig), управление зависимостями (Gradle / CocoaPods)Работа с адресной книгойРабота с фото и файламиПлатежи и 3DSПрименение WebViewCombine / StateFlow на сложных реактивных пайплайнах Android Kotlin (official code style), Java 11Jetpack Compose, Material 3 (без XML-вёрстки)MVI, многомодульный Gradle (core/*, feature/*/api, feature/*/impl)Koin (или другой DI с готовностью переучиться)Retrofit 2.9, OkHttp 4.11, Kotlinx Serialization, кастомные Interceptor'ыCompose Navigation, в том числе вложенные графыFirebase Cloud Messaging + RuStore MessagingПубликация в RuStore / Google Play/ iOS Swift 5.7+, SwiftUI в продакшене + UIKit-интероп (UIViewRepresentable, UIViewControllerRepresentable)Swift Concurrency: async/await, Task, actors, @MainActor, nonisolated; понимание разницы Task { } vs DispatchQueue.main.async vs MainActor.run vs assumeIsolated; базовый GCDURLSessionWebSocketTask или Starscream, кастомный heartbeatAPNs + PushKit (VoIP push), CallKit (CXProvider, CXCallController), обработка didActivate / didDeactivate audioSessionAVAudioSession (.playAndRecord, порты), AVCaptureDevice, разрешения на микрофон / камеруKeychain (KeychainAccess или Security framework), биометрия, ATS, certificate pinning (плюс)CocoaPods, xcconfig для OEM-сборокInstruments (Time Profiler, Allocations, Leaks, Network), символикация и .dSYM, os_log / OSLogПубликация в App Store/ Будет плюсом Интеграция аналитики и crash-reporting: Firebase, AppMetrica, Sentry Ключевые навыки (теги для hh.ru)Kotlin, Swift, iOS, Android, Jetpack Compose, SwiftUI, Coroutines, Swift Concurrency, MVI, WebRTC, WebSocket, Retrofit, OkHttp, URLSession, CallKit, PushKit, APNs, FCM, Keychain, CocoaPods, Gradle, Koin, Git, Material 3, UIKit, AVFoundationПохожие вакансии
Mobile разработчик Android и iOS
Договорная
Москва. Станции метро: Арбатская, Боровицкая, Кропоткинская
F6
До 270 000 руб.
Москва. Станции метро: Арбатская, Боровицкая, Кропоткинская
ИЦ АЙ-ТЕКО
До 220 000 руб.
Москва. Станции метро: Арбатская, Боровицкая, Кропоткинская
Bell Integrator
От 200 000 до 350 000 руб.
Москва. Станции метро: Арбатская, Боровицкая, Кропоткинская
SMART MEALS FOR LIFE CATERING L.L.C