Разработка мобильного приложения для петиций
Мы разрабатываем мобильное приложение для петиций с акцентом на верификацию подписантов и защиту от накрутки. Ваш сервис будет готов к приёму первых обращений через 3 недели. Пишите — оценим проект за один день. Наш опыт в запуске 15+ гражданских приложений гарантирует соблюдение App Store Review Guidelines и Google Play Console политик.
Почему верификация подписей — ключевая задача?
Подписи под петицией имеют юридическую и общественную значимость. Одна подпись = один верифицированный человек — это требование, которое нужно решать на нескольких уровнях. Phone auth быстрее email в 2 раза по времени прохождения, но email дешевле на 30%. Мы комбинируем методы для баланса скорости и стоимости.
Верификация телефона. SMS с OTP через Twilio Verify или Firebase Phone Auth. Один номер — одна подпись на петицию. FirebaseAuth.verifyPhoneNumber() на клиенте, на сервере — проверка uid из Firebase token. Защита от автоматических регистраций: rate limiting на уровне API gateway (максимум 3 запроса в минуту с одного IP на endpoint верификации).
Email верификация как дополнительный слой. sendEmailVerification() в Firebase Auth. Неверифицированный email — нет права подписи.
Biometric confirmation для повторных подписей: если пользователь подписывает несколько петиций подряд, просим подтвердить через Face ID / Touch ID (LocalAuthentication.evaluatePolicy(.deviceOwnerAuthenticationWithBiometrics)). Это снижает риск случайных или автоматизированных действий.
На Android — BiometricPrompt из androidx.biometric. Всегда проверяем BiometricManager.canAuthenticate(BIOMETRIC_STRONG) перед показом — на эмуляторе и некоторых устройствах без сенсора это не SUCCESS.
| Метод | Время прохождения | Стоимость (на 1000 подписей) | Надёжность |
|---|---|---|---|
| Phone OTP | 15 сек | $5 | Высокая |
| 30 сек | $0.1 | Средняя | |
| Biometric | 2 сек | $0 | Очень высокая |
Подписание: UX и технические детали
Форма подписи — минимум полей. Имя, локация (опционально, по согласию), email или телефон. Длинные формы снижают конверсию. На Android autofillHints в TextInputLayout заполняет данные из менеджера паролей.
Подпись сохраняется немедленно через URLSession / OkHttp с оптимистичным обновлением счётчика на UI. Если запрос упал — откатываем счётчик и показываем retry. Дублирование на стороне сервера предотвращается уникальным индексом (petition_id, user_id) в PostgreSQL — даже если клиент отправил два запроса одновременно.
Счётчик подписей в реальном времени — WebSocket или Server-Sent Events. SSE проще: URLSessionStreamTask (iOS) или EventSource библиотека (Android). При достижении порогов (1000, 10000, 100000 подписей) — push-уведомление всем подписавшимся через FCM topic.
Что нужно для быстрого старта?
Запуск MVP за 3 недели:
- Сбор требований и прототип
- Разработка core-функций (список петиций, подпись, верификация)
- Интеграция с Firebase Auth и базой данных
- Тестирование и публикация в сторах
| Этап | Длительность |
|---|---|
| MVP (список + подпись + верификация) | 3-5 недель |
| Полная версия (создание, модерация, real-time, sharing) | 2-3 месяца |
| Техническая поддержка после релиза | от 1 месяца |
Создание петиции
Редактор — заголовок, описание (rich text через UITextView с базовым форматированием или Lexical в WebView), изображение обложки, категория, целевое число подписей, адресат (организация, депутат, компания).
Модерация петиций перед публикацией — очередь в admin-панели. Статусы: draft → pending_moderation → published / rejected. Авторы получают push при изменении статуса.
Прогресс и дедлайн
Прогресс-бар к цели подписей — UIProgressView (iOS) / LinearProgressIndicator (Compose). Дедлайн петиции — DateComponentsFormatter для отображения «осталось 3 дня», CountdownTimer на экране с отсчётом последних часов.
По истечении дедлайна петиция переходит в статус closed. Если цель достигнута — статус successful, отправляется пакетное уведомление всем подписавшимся с призывом распространить результат.
Sharing
Петиция должна легко шериться. Динамические ссылки (Firebase Dynamic Links или Branch.io) открывают конкретную петицию в приложении или на веб-странице — через UIActivityViewController (iOS) или Intent.ACTION_SEND (Android). Open Graph теги для превью в мессенджерах — на стороне веб-страницы.
Что входит в работу
- Анализ требований и UI/UX дизайн
- Разработка под iOS (SwiftUI) и Android (Jetpack Compose)
- Интеграция верификации (телефон, email, биометрия)
- Real-time счётчик подписей и push-уведомления
- Публикация в App Store и Google Play
- 1 месяц технической поддержки
Сроки
Список петиций + просмотр + подпись с верификацией телефона — 3–5 недель. Создание петиций + модерация + real-time счётчик + sharing — 2–3 месяца. Стоимость рассчитывается после анализа требований. Получите консультацию — свяжитесь с нами для оценки проекта.







