Вихідна ситуація: є робочий 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 ГБ ОЗУ пристроях.