Розробка мобільного додатку для петицій
Ми розробляємо мобільний додаток для петицій з акцентом на верифікацію підписантів та захист від накрутки. Ваш сервіс буде готовий до прийому перших звернень через 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 місяці. Вартість розраховується після аналізу вимог. Отримайте консультацію — зв'яжіться з нами для оцінки проекту.







