Разработка мобильного приложения для тендерной площадки
Тендерная площадка на мобильном решает конкретную задачу: заказчик публикует лот, поставщики подают заявки, побеждает лучшая. На практике к этому добавляются ЭП для документов, NDA перед доступом к условиям тендера, sealed-bid аукцион (никто не видит ставки конкурентов до закрытия), и нотификации в реалтайме. Это не форум с формочками.
Два пользователя — принципиально разный UX
Заказчик (организатор): создаёт тендер, прикладывает ТЗ и документы, устанавливает сроки, верифицирует участников, открывает конверты, выбирает победителя, формирует протокол.
Поставщик (участник): видит каталог открытых тендеров, подаёт заявку, прикладывает квалификационные документы, подписывает заявку ЭП, отслеживает статус, получает результат.
Разделение ролей — это не только UI, это права доступа на уровне API. Поставщик не должен видеть ставки других участников до вскрытия. Sealed bid требует шифрования на уровне приложения или сервера — заявки в зашифрованном виде до момента открытия.
Электронная подпись
Это ключевое отличие от обычного «подать форму». Для государственных и корпоративных тендеров нужна квалифицированная ЭП (КЭП) или минимум усиленная неквалифицированная (НЭП).
На мобильном варианты:
-
КЭП через внешний носитель (JaCarta, Рутокен) — NFC или USB-C. SDK от производителей (
JaCarta SDK,Rutoken SDK for Android/iOS). Неудобно, но юридически наиболее значимо. - Облачная КЭП (Контур.Подпись, Thales DPoD) — ключ на сервере провайдера, подпись через API с аутентификацией по SMS. SDK интегрируется как WebView или нативный модуль.
- НЭП через приложение — ключ в Keychain/KeyStore устройства, подпись PKCS#7. Юридическая сила зависит от соглашения между сторонами.
Для большинства b2b-тендерных платформ облачная КЭП — оптимальный баланс удобства и юридической силы.
Поиск и фильтрация тендеров
Каталог тендеров — это не просто список. Поставщику нужна фильтрация по: отрасли, региону, НМЦК (начальная максимальная цена), дедлайну подачи заявок, статусу (приём заявок / оценка / завершён). Полнотекстовый поиск по названию и ТЗ.
На мобильном — Elasticsearch или Typesense на бэкенде, iOS: UISearchController с debounce 300мс, Android: SearchView + Flow + distinctUntilChanged. Оффлайн-режим для просмотра загруженных тендеров (Core Data / Room) — критичен если поставщики работают с нестабильным интернетом.
Документооборот
Тендерная документация — PDF/DOCX до 100 МБ. Загрузка через multipart/form-data с прогрессом. Просмотр: PDFKit (iOS), PdfRenderer (Android), или WebView с PDF.js. Предпросмотр без скачивания. Для NDA-защищённых документов — запрет скриншотов (FLAG_SECURE / iOS UITextField trick) и watermark с именем пользователя.
Подписание пакета документов: список → пользователь просматривает каждый → подписывает пакет одной ЭП (PKCS#7 enveloped signature с attachment).
Реалтайм и уведомления
Обновление статуса тендера — WebSocket или Server-Sent Events. Критичные события: «Ваша заявка принята», «Тендер закрыт, результаты через 30 минут», «Вы выиграли / не прошли». FCM (Android) / APNs (iOS) для push при офлайн.
Для sealed-bid: таймер открытия конвертов с обратным отсчётом — пользователь видит когда будут раскрыты все заявки. Момент открытия — WebSocket событие с новыми данными.
Процесс
| Этап | Срок |
|---|---|
| Аудит требований, юрисдикция, ЭП-стратегия | 1 неделя |
| Проектирование: роли, API, flow документооборота | 1 неделя |
| Разработка: каталог + заявки + документооборот | 4–6 недель |
| Интеграция ЭП | 1–2 недели |
| Тестирование, QA | 1–2 недели |
Сроки — 2–3 месяца в зависимости от сложности КЭП-интеграции и объёма документооборота. Стоимость рассчитывается после анализа требований.







