Розробка мобільного додатку для аптеки та доставки ліків
Ми розробляємо мобільні додатки для аптек, які враховують законодавчі обмеження та специфіку фармацевтичного роздробу. Обіг лікарських засобів регулюється законами: рецептурні препарати потребують верифікації рецепту, частина номенклатури не продається дистанційно. Ці вимоги накладаються на архітектуру з самого початку — їх не можна додати після запуску. Наш досвід (5+ років у мобайл-розробці) та гарантія якості дозволяють створювати рішення, що проходять модерацію App Store та Google Play з першого разу.
Функціональне ядро додатку
Каталог ліків з пошуком за МНН (міжнародна непатентована назва), торговою назвою та штрих-кодом — базове, але нетривіальне завдання. Фармацевтична база даних з синонімами, аналогами та групами препаратів потребує повнотекстового пошуку з нормалізацією запитів: «парацетамол», «Парацетамол-УБФ», «ацетамінофен» повинні давати перетинаючі результати.
На Flutter реалізуємо пошук через SearchDelegate з дебаунсом 300–500 мс, на бекенді — PostgreSQL з pg_trgm розширенням для fuzzy search або Elasticsearch для великих каталогів (5000+ позицій). Штрих-код — через mobile_scanner (Flutter) або react-native-vision-camera з плагіном MLKit BarcodeScanning.
Як реалізувати рецептурний контроль?
Для Rx-препаратів у корзині — блок оформлення до завантаження фото рецепту. Рецепт валідує фармацевт вручну (асинхронно) або через інтеграцію з ЄДІСЗ (в РФ). На UI: індикатор статусу рецепту в замовленні, push-сповіщення при зміні статусу через Firebase Cloud Messaging. Ми маємо сертифікат відповідності стандартам безпеки та гарантуємо захист персональних даних.
Геолокація та аптечна мережа
Карта аптек з фільтрацією за наявністю препарату — ключова фіча для мереж. Реалізація: при пошуку товару показуємо не просто «в наявності / немає», а «в 3 аптеках поряд, найближча — 400 м». Це потребує зберігання залишків по кожній точці в реальному часі (синхронізація з ERP) та геопросторових запитів у PostgreSQL через PostGIS або в Firebase Firestore з GeoHash.
Flutter: flutter_map (OpenStreetMap) або Google Maps SDK. Кластеризація маркерів через flutter_map_marker_cluster для мереж з 50+ точками — без неї карта нечитабельна.
Доставка. Інтеграція з партнерськими службами доставки (СДЕК, Яндекс.Доставка, власні кур'єри) через webhook-модель: статуси замовлення оновлюються в реальному часі. Трекінг кур'єра на карті — через EventChannel (Flutter) або EventEmitter (React Native) з WebSocket або Firebase Realtime Database.
Чому аптечний додаток відрізняється від e-commerce?
На відміну від звичайного магазину, в аптечному додатку не можна просто покласти товар у корзину та оплатити. Необхідно перевіряти рецепти, враховувати вікові обмеження (18+), синхронізувати залишки в реальному часі. Це робить архітектуру складнішою в 1,5–2 рази, але наш досвід дозволяє вкластися в бюджет без переробок. Пишіть — оцінимо проект під ключ.
Push-сповіщення та нагадування
Додаток аптеки без push — половина цінності. Сценарії:
- замовлення готове до видачі
- кур'єр в дорозі / прибув
- нагадування про прийом препарату (якщо реалізовано трекер прийому)
- сповіщення про надходження препарату в наявність (wishlist)
Firebase Cloud Messaging + flutter_local_notifications для локальних нагадувань (трекер прийому). Для iOS обов'язковий запит UNUserNotificationCenter.requestAuthorization — без явної згоди пуши не приходять, і додаток не можна запитувати дозвіл при кожному запуску.
Трекер прийому ліків
Додаткова цінність: розклад прийому з нагадуваннями, історія прийомів, курси лікування. Дані — в локальній БД (Isar для Flutter, MMKV для React Native) з синхронізацією в хмару. Нагадування через flutter_local_notifications з AndroidNotificationDetails з importance: Importance.high — інакше на Android 13+ сповіщення не виб'є телефон з режиму спокою.
Інтеграція з платіжними системами
Оплата карткою через Stripe SDK (flutter_stripe) або ЮKassa (yookassa_payments_flutter). Для аптек з 18+ товарами (частина БАДів, алкогольні настойки) — вікова верифікація до оформлення замовлення. Apple Pay / Google Pay — через pay пакет (Flutter).
Самовивіз vs доставка впливає на логіку корзини: при самовивозі резервуємо товар на конкретній точці, при доставці — на складі. Це різна бізнес-логіка, що потребує явної точки перемикання в процесі оформлення.
Технічний стек та архітектура
Flutter + Clean Architecture (Domain / Data / Presentation). State management — Riverpod або Bloc. Бекенд: Node.js / Laravel з REST API, PostgreSQL. Нотифікації — Firebase. Карти — Google Maps або Яндекс.Карти.
Авторизація: SMS OTP через Firebase Auth або СМС.ру, не потребує повної реєстрації — знижує бар'єр входу.
Що входить в роботу
- Документація: специфікація, API-документація, схема бази даних
- Доступи: облікові записи розробника App Store та Google Play, Firebase, Git-репозиторій
- Навчання: інструкція для адміністраторів аптечної мережі
- Підтримка: гарантія 6 місяців на виявлені баги
Порівняємо підходи: зв'яжіться з нами, щоб отримати безкоштовну консультацію з архітектури вашого додатку.
Строки
| Конфігурація | Строк |
|---|---|
| MVP: каталог, корзина, замовлення, самовивіз | 6–10 тижнів |
| + доставка з трекінгом кур'єра | +3–4 тижні |
| + трекер прийому + повна мережа аптек | +4–6 тижнів |
Вартість розраховується індивідуально після аналізу вимог та інтеграцій. Замовте розробку — ми підготуємо кошторис за 2 дні.







