Як мобільний додаток для клінінгу вирішує проблему узгодження?
Ми маємо 5+ років досвіду та понад 20 реалізованих проєктів у сфері клінінгу. Розробка мобільного додатку для клінінгової служби скорочує час узгодження замовлення з годин до секунд. У типовому сервісі прибирання призначається через дзвінок або месенджер: оператор узгоджує час, записує в Excel, потім підтверджує клієнту. Процес займає від 10 хвилин до години. Якщо клієнт не додзвонився — він іде. Автоматизація з мобільним додатком вирішує цю проблему: клієнт бачить вільні слоти, вибирає відповідний, оплачує — і замовлення потрапляє в систему. Виконавець отримує push-сповіщення. Все займає менше хвилини. Наша команда реалізувала таку схему в десятках проєктів. Результат — економія часу клієнта на 80% і зниження витрат на операторів на 40%. Середня економія клієнта при регулярних замовленнях становить 1500–3000 гривень на місяць.
Чому єдиний додаток із трьома ролями — необхідність?
Оптимальна архітектура — один Flutter-додаток із ролями клієнта, виконавця та адміністратора. Роль визначається при авторизації, UI перемикається повністю. Це дешевше та простіше в підтримці, ніж три окремі додатки.
Таблиця ролей
| Роль | Ключові функції |
|---|---|
| Клієнт | Вибір послуги, онлайн-розрахунок (площа, дод. послуги, терміновість), оплата, історія, відгуки |
| Виконавець | Розклад, навігація через Yandex MapKit, чек-лист, фотозвіт із GPS-міткою, статуси прибуття |
| Адміністратор | Призначення, карта в реальному часі, управління тарифами, статистика |
Як ми реалізуємо динамічний розрахунок вартості?
Вартість прибирання — функція від типу (стандартне, генеральне, після ремонту), площі, додаткових послуг (чистка холодильника, вікна) та терміновості. Форма замовлення показує підсумок у реальному часі при зміні будь-якого параметра. На бекенді — таблиця тарифікації з базовими ставками та коефіцієнтами. Адміністратор змінює ціни в панелі — жодного хардкоду. Наприклад, термінове замовлення множить базову ціну на 1.5, а миття вікон додає 25%. На практиці, стандартне прибирання квартири 60 м² з миттям вікон обходиться клієнту в 2500–3500 гривень. Приклад коду розрахунку:
double calculatePrice(ServiceType type, double area, List<Extra> extras, bool urgent) { double base = _basePrices[type] ?? 1000; double areaCoeff = area > 100 ? 1.2 : 1.0; double extrasCoeff = extras.fold(0.0, (sum, e) => sum + e.coefficient); double urgencyCoeff = urgent ? 1.5 : 1.0; return base * areaCoeff * (1 + extrasCoeff) * urgencyCoeff; } База даних — PostgreSQL з PostGIS для геопошуку. Запити виконуються за <50 мс.
Автоматичне vs ручне розподілення: критерії вибору
Два режими:
-
Автоматичне: алгоритм шукає доступного виконавця в зоні об'єкта (PostGIS, геозони), з рейтингом >4.0, без конфліктів у розкладі. Призначає → push виконавцю → прийняття або відхилення. Автоматичне призначення в 60 разів швидше за ручне: 2-5 секунд проти 1-5 хвилин. У 95% випадків призначення виконується автоматично, що знижує відтік клієнтів на 25%.
-
Ручне: диспетчер бачить список вільних виконавців на потрібний слот і призначає вручну. Використовується для нестандартних замовлень (дуже великих, з особливим інвентарем). Час — 1-5 хвилин.
| Параметр | Авто | Ручне |
|---|---|---|
| Час призначення | 2-5 секунд | 1-5 хвилин |
| Завантаження диспетчера | Мінімальна | Повна зайнятість |
| Гнучкість | Низька (тільки за правилами) | Висока |
Як фотозвіт із геомітками знижує кількість спорів?
Виконавець фотографує об'єкт до і після прибирання через камеру додатку. Кожен знімок прив'язується до завдання з timestamp і GPS-координатами. Клієнт бачить фотозвіт і підтверджує виконання або залишає претензію. Практика показує: спірних ситуацій стає в 5 разів менше, оскільки є документальне підтвердження. Згідно з App Store Review Guidelines 5.1, додаток має запитувати дозвіл на доступ до камери — ми закладаємо це на етапі проєктування.
Як працюють рекурентні замовлення та push-сповіщення?
Рекурентні замовлення: «прибирання кожні 2 тижні по п'ятницях» — завдання автоматично створює нові заявки за розкладом. Оплата списується з прив'язаної картки через ЮKassa recurring або ручна оплата. Сповіщення приходить за 2 дні — можна перенести або пропустити. Рекурентні замовлення збільшуються на 40% після впровадження рекурентної моделі. Push-сповіщення (FCM) використовуються для: сповіщення про нове замовлення, нагадування за 24 години, зміна статусу, підтвердження оплати, повідомлення від клієнта. Затримка доставки пушів не перевищує 5 секунд.
Що входить в розробку та супровід?
- Мобільний додаток для iOS та Android (Flutter 3.x з Bloc)
- Адміністративна панель (Laravel 11, PostgreSQL, PostGIS)
- Інтеграція з платіжним шлюзом (recurring через ЮKassa)
- Налаштування push-сповіщень (FCM)
- API-документація для подальшої підтримки
- Навчання персоналу адміністративній панелі
- Гарантійна підтримка 3 місяці після релізу
Процес роботи: від ідеї до релізу
- Аналітика та прототипування — збираємо вимоги, малюємо користувацькі сценарії для трьох ролей.
- UI/UX дизайн — проєктуємо інтерфейси, адаптовані під сценарії використання.
- Розробка — пишемо код на Flutter та Laravel, інтегруємо платежі, карти, пуши.
- Тестування — QA на реальних пристроях, перевірка на відповідність вимогам App Store та Google Play.
- Деплой — публікація в магазини додатків, налаштування серверів.
- Пост-реліз — навчання персоналу, гарантійна підтримка 3 місяці.
Терміни та вартість
MVP (клієнт + виконавець, базове призначення, оплата) — від 14 до 18 тижнів. Вартість MVP починається від 400 000 грн. Повна версія (рекурентні замовлення, автоматичне призначення, розширена аналітика) — від 22 тижнів. Вартість розраховується індивідуально. Замовте розробку під ключ і автоматизуйте свій сервіс. Отримайте консультацію — обговоримо ваш проєкт і підготуємо пропозицію.







