Swift и базовая модель языкаОбосновывает выбор между struct/class, protocol с associated type, generic и type erasure для конкретной границы модуля. Диагностирует утечку или ошибку владения с Instruments/Xcode Memory Graph и объясняет причинную цепочку, а не только применяет шаблон `[weak self]`.
UI: SwiftUI и UIKitОбосновывает архитектуру сложного UI: декларативный SwiftUI, UIKit или смешанный слой с учётом жизненного цикла, доступности и производительности списка. Диагностирует конкретную проблему лишних перерисовок/Auto Layout или некорректной навигации и устраняет её с измеримым эффектом.
Жизненный цикл приложения и iOS-платформаПроектирует поведение приложения при холодном старте, deep link, push и восстановлении состояния с явным разбором конфликтов навигации. Обосновывает использование background task, notification или server-driven подхода по ограничениям времени выполнения, батареи и надёжности доставки.
Сеть и работа с APIОбосновывает контракт и стратегию клиента для конкретного API: кэширование, retry, отмена, версионирование и обработка устаревших данных. Сравнивает REST и альтернативный подход (например, GraphQL) по форме данных, сложности клиента и кэшированию; проектирует наблюдаемые ошибки без утечки чувствительных данных.
Хранение данных и кешированиеОбосновывает offline-first/online-first стратегию для конкретного сценария, включая конфликт локальных и серверных изменений. Проектирует миграцию локальной схемы или безопасную инвалидацию кеша и явно называет компромисс между актуальностью, скоростью и объёмом хранения.
Конкурентность и асинхронностьОбосновывает границы изоляции состояния в `actor`/`@MainActor` для конкретной фичи; диагностирует data race или некорректную отмену. Сравнивает structured concurrency и устаревший callback/GCD-подход для миграции существующего кода, называя риски каждого.
Архитектура, зависимости и качество кодаОбосновывает выбор архитектурного подхода (например, MVVM, TCA, Clean Architecture) под размер продукта и команды, не вводя слои «для красоты». Проектирует границы модулей и стратегию тестирования, локализует flaky UI-тест по реальной причине — ожиданию, данным или состоянию приложения.
Сборка, релиз, наблюдаемость и качество приложенияОбосновывает rollout и мониторинг релиза: какие crash-free, latency и продуктовые сигналы отслеживать, когда останавливать распространение. Анализирует crash/метрику производительности до конкретной фичи или устройства и выбирает между hotfix, feature flag и откатом с учётом влияния на пользователей.