Мы - Компания IT_One, стратегический партнер по цифровизации российского бизнеса и государственных органов. Наша команда реализует крупнейшие проекты цифровой трансформации. Собрали большую команду, в которой сочетаются профессионализм, опыт и молодость. Более 2500 сотрудников. Офисы в Москве, Санкт-Петербурге и Омске. Сейчас мы находимся в поиске IOS разработчика в проект для нашего заказчика - лидера в девелопменте жилой и коммерческой недвижимости. Компания работает на российском рынке с 2003 года и является одной из крупнейших по объему строительства и продаж жилой и коммерческой недвижимости в России.
Обязанности
Мы ищем опытного IOS-разработчика для участия в развитии сложного и масштабного много-модульного проекта.
Язык и платформа:
- Язык: Swift
- Минимальная версия iOS: 16.0
- UI-фреймворк: UIKit
- Реактивность: Combine — нативный фреймворк Apple, без RxSwift
Архитектура:
- Паттерн: MVVM + Router + Assembly (модульная архитектура)
- Каждый модуль содержит: View, ViewModel, Router, Assembly
- ViewModel использует Input/Output паттерн с PassthroughSubject / AnyPublisher
- Assembly — фабрика для сборки модуля (ручной DI, без Swinject)
- Навигация: Router-паттерн на уровне модулей + AppCoordinator на уровне приложения
- Слой данных: UseCase-паттерн (Clean Architecture) — UseCaseProvider предоставляет ~25 юзкейсов
- Нетворкинг: Собственный слой поверх URLSession + Combine (AnyPublisher<T, NetworkError>), REST API с типизированными Endpoint-ами
- Оповещения между модулями: Notifier-паттерн (кастомный event bus)
Обязательные требования
- Swift — уверенное владение (протоколы, дженерики, расширения, enums с ассоциированными значениями)
- UIKit — глубокое знание: UIViewController, UITableView/UICollectionView, Auto Layout программно (без Storyboard), кастомные
UI-компоненты
- Combine — опыт работы с реактивными потоками: Publisher, Subject, sink, flatMap, combineLatest, обработка ошибок
- Архитектура MVVM — понимание Input/Output паттерна, разделение ответственности, Router/Coordinator для навигации
- Clean Architecture — UseCase-слой, разделение на слои (Presentation → Domain → Data)
- REST API — опыт работы с сетевым слоем на основе URLSession, Codable, обработка ошибок, refresh token
- Git — работа с ветками, merge requests, code review (GitLab)
Будет плюсом
- Опыт работы с CocoaPods
- Знание Firebase (Analytics, Crashlytics, Messaging)
- Опыт интеграции Яндекс Карт или аналогичных картографических SDK
- Опыт работы с Fastlane и GitLab CI
- Знание SwiftGen / кодогенерации ресурсов
- Опыт работы с SwiftLint и настройкой правил
- Понимание работы с Keychain, UserDefaults (типизированное хранилище)
- Опыт с модульной архитектурой в крупных проектах