• Android-плагин для офлайн-подписи PDF в полевых обзорах с интеграцией в существующее приложение

    16 часов назад
    • Желаемый бюджет до 420.62 USD
    • Ожидает исполнителя...
  • Есть внутреннее Android-приложение для полевых инспекций (Kotlin, Android 10-14, минимум API 26). Инспекторы работают в зонах без связи, заполняют чек-лист, делают фото, а в конце формируют акт в PDF. Сейчас PDF генерируется на сервере, из-за чего процесс ломается оффлайн. Нужно сделать локальное формирование и подпись PDF на устройстве с последующей синхронизацией при появлении сети.

    Техническая среда и ограничения
    - Проект: Kotlin, Gradle Kotlin DSL, MVVM, Coroutines/Flow, Hilt, Room, WorkManager, minSdk 26
    - Формат документов: PDF/A не требуется, но PDF должен открываться в Adobe Acrobat без ошибок
    - Подпись: рукописная подпись стилусом/пальцем + timestamp, а также опциональное наложение на документ изображения печати (PNG с прозрачностью)
    - офлайн: генерация PDF и постановка задачи на синхронизацию без доступа к сети
    - Безопасность: исходные фото и подпись нельзя писать в общие каталоги, только app-private storage; временные файлы должны удаляться

    Что уже есть
    - экран заполнения чек-листа, локальная база Room с данными обзора и фото, очередь синхронизации на WorkManager
    - Серверный endpoint принимает готовый PDF в качестве multipart и возвращает serverDocumentId

    Что нужно сделать
    - Добавить модуль/пакет для локальной генерации PDF из данных обзора (текстовые поля, таблица пунктов, встроенные фото с масштабированием, нумерация страниц)
    - Добавить экран сбора подписи: canvas с отслеживанием давления, сглаживанием линий (bezier/kalman или аналог), кнопки очистить/повторить, превью страницы с местом подписи
    - Реализовать наложение подписи и печати в определенную область последней страницы PDF с корректным масштабом вне зависимости от DPI устройства
    - Добавить офлайн-очередь: если сети нет, сохранять сгенерированный PDF во внутреннее хранилище, создавать запись в Room, а WorkManager должен отправить документ при появлении сети и проставить serverDocumentId
    - Добавить базовые инструментальные тесты или проверки, чтобы поймать регрессии поколения (например, что PDF не пуст, содержит ожидаемое количество страниц для большого набора фото)
    - предоставить краткую документацию для разработчиков в виде README с описанием архитектуры и точек интеграции

    Измеряемые критерии приемки
    1) В режиме полета можно создать акт для обзора с минимум 20 пунктов и 10 фото (по 3-5 МБ каждое), добавить подпись, получить PDF на устройстве без падений и ANR.
    2) PDF открывается на ПК в Adobe Acrobat и содержит: заголовок, данные объекта, таблицу пунктов, вложенные фото, номер страницы в формате "X/Y", подпись в заданной области последней страницы.
    3) После восстановления сети WorkManager отправляет PDF на сервер, в локальной БД появляется serverDocumentId, а локальный временный файл удаляется (или замечается для очистки, но реально очищается в течение 24 часов).
    4) Память: при генерации PDF из 10 фото приложение не вылетает на устройствах с 4 ГБ RAM; большие изображения ресайзуются перед встройкой в ​​PDF.
    5) Код собирается в существующем CI (Gradle), без добавления тяжелых зависимостей, существенно увеличивающих APK (согласованный предел +8 МБ).

    Результат
    - PR или набор комитов в репозиторий с реализацией генерации PDF, экраном подписи, офлайн-синхронизацией и минимальными тестами, готовый к ревью.

    Бюджет ограничен, поэтому важна прагматичная реализация без лишнего дизайна, но с надежной оффлайн работой и корректным PDF.
  • Как вы оцениваете это задание?

    Войдите в аккаунт, чтобы оставить свою оценку.

    Всего оценок: 0

Ваше предложение

Вы ещё не оставили предложение к этому заказу.
Нажмите «Предложить услугу», чтобы отправить своё предложение.

Нужно похожее задание?

Если задача похожа на вашу, можно посмотреть готовые услуги в категории или создать свое задание с нужным бюджетом, сроками и требованиями.

Задание «Android-плагин для офлайн-подписи PDF в полевых обзорах с интеграцией в существующее приложение» можно использовать как ориентир для своего брифа: что нужно сделать, какой результат нужен и какой бюджет указать.