Исходная ситуация: есть рабочее iOS-приложение для сотрудников выездной службы (iOS 16-17). Сейчас документы клиента фотографируют обычной камерой, после чего менеджеры вручную обрезают, выравнивают и перепечатывают данные. Нужно встроить модуль офлайн-сканирования и распознавания, чтобы ускорить оформление и уменьшить ошибки. Техническая среда и ограничения: проект на Swift, архитектура MVVM, сборка через Xcode, зависимости через SPM. На устройстве часто нет интернета, поэтому весь пайплайн должен работать офлайн. Нельзя использовать сторонние платные SDK и облачные OCR-сервисы. Допустимы только системные фреймворки Apple. Минимальная версия iOS 16. Данные относятся к персональным - ничего не отправлять наружу, не сохранять в Фото, хранить только в sandbox приложения. Что нужно сделать: реализовать экран сканирования с потоковым поиском документа, автосъемкой по стабильности, коррекцией перспективы и улучшением читаемости. После сканирования документ должен преобразовываться в многостраничный PDF, выполняться OCR, и результат возвращаться в приложение в виде PDF + структурированного текста. Добавить режим пакетного сканирования - до 20 страниц за сессию, с возможностью переснять страницу, поменять порядок, удалить, объединить в один PDF. Функциональные требования: 1) Сканирование: обнаружение прямоугольника документа, индикация качества кадра, автосъемка, ручная съемка, ручная корректировка углов после снимка. 2) Предобработка: нормализация яркости/контраста, подавление теней, повышение резкости в разумных пределах, чтобы текст был читабельнее. 3) OCR: распознавание текста на русском и английском, по возможности с определением языков автоматически; возвращать полный текст и массив блоков с координатами (bounding boxes) в координатах исходной страницы. 4) Экспорт: PDF/A-подобный PDF (обычный PDF допустим), каждая страница - изображение + текстовый слой (если реализуемо на системных API), либо PDF + отдельный JSON с OCR-слоями. 5) Интеграция: готовый модуль подключается к существующему экрану заявки через единый публичный интерфейс (протокол/фасад), чтобы команда могла переиспользовать модуль в других частях приложения. Критерии приемки (измеримые): модуль собирается в текущем проекте без дополнительных платных зависимостей; на iPhone 12 и новее пакет из 10 страниц обрабатывается полностью офлайн не дольше 60 секунд (включая OCR) при типовом офисном освещении; точность распознавания для печатного текста на A4 - не ниже 95% по символам на тестовом наборе из 20 предоставленных заказчиком изображений; итоговый PDF по размеру не превышает 1.5 МБ на страницу при качестве, пригодном для чтения; не происходит утечек персональных данных - сканы не попадают в Фото и не пишутся в общедоступные директории. Ожидаемый результат: PR/коммит(ы) в репозиторий с готовым модулем, минимальными правками существующих экранов для интеграции, настройкой разрешений камеры, и короткой инструкцией по использованию. Также нужен небольшой набор автотестов для критичных частей (например, парсинг/формирование JSON OCR-слоя и проверка последовательности страниц) и ручной чек-лист для QA. Инструменты: Swift, AVFoundation/ Vision / CoreImage / PDFKit (или системные аналоги), Xcode, SPM. По ходу работы потребуется анализ производительности и памяти, чтобы пакетная обработка не падала на 4-6 ГБ ОЗУ устройствах.