Разработка мобильного приложения для аптеки и доставки лекарств
Мы разрабатываем мобильные приложения для аптек, которые учитывают законодательные ограничения и специфику фармацевтического ритейла. Оборот лекарственных средств регулируется законами: рецептурные препараты требуют верификации рецепта, часть номенклатуры не продаётся дистанционно. Эти требования накладываются на архитектуру с самого начала — их нельзя добавить после запуска. Наш опыт (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 дня.







