Разработка мобильного приложения для ветеринарной клиники
Приложение для ветклиники решает конкретную операционную задачу: пациент не перезванивает администратору, чтобы записаться или узнать результат анализа. Всё это — в телефоне. Специфика ветеринарного сегмента — у каждого пользователя несколько питомцев с разными историями, и карточка должна быть чёткой.
Профили питомцев и медкарта
Каждый питомец — отдельная сущность: вид, порода, возраст, вес, хронические заболевания, аллергии. К нему привязаны визиты, вакцинации, анализы, назначения. Структура данных плоская, но связей много — многоуровневые списки в UI становятся проблемой на маленьком экране.
Решение: таб-навигация внутри карточки питомца (DefaultTabController во Flutter или TabBar + TabBarView). Вкладки: «Визиты», «Вакцины», «Анализы», «Препараты». Каждая вкладка — ленивая загрузка данных только при открытии (AutomaticKeepAliveClientMixin для сохранения состояния при переключении вкладок).
Напоминания о вакцинации — обязательная фича. Ежегодные прививки, ежеквартальная обработка от паразитов. Локальные уведомления через flutter_local_notifications с tz.TZDateTime.now(local) для корректного времени без дрейфа часового пояса.
Онлайн-запись к врачу
Расписание врачей с доступными слотами — самый сложный компонент в плане синхронизации. Если слот показывается как свободный, пока другой пользователь его бронирует — возникает конфликт. Решение: оптимистичное обновление UI + блокировка слота на бэкенде через транзакцию при тапе, с TTL резервирования 5-10 минут.
Визуализация: горизонтальный скролл по датам + вертикальный список слотов. PageView с controller.animateToPage() для плавного переключения дат. Занятые слоты — серые, забронированные пользователем — выделены цветом.
Телеконсультация — через WebRTC (Agora SDK для Flutter: agora_rtc_engine). Для базовой ветклиники достаточно видеозвонка без сложной медицинской логики.
Push-уведомления и напоминания о визите
За сутки и за час до приёма — обязательно. Firebase Cloud Messaging для серверных пуш-нотификаций, flutter_local_notifications для клиентских напоминаний о вакцинациях.
Интеграция с календарём: add_2_calendar пакет добавляет запись о визите в системный Calendar — пользователи это ценят.
Стек и сроки
Flutter (одна кодовая база iOS + Android), Riverpod для state management, Supabase или Firebase как бэкенд-сервис для MVP. REST API от клиники, если уже есть своя CRM.
MVP (профили питомцев, запись, медкарта, пуши): 8-12 недель. С телеконсультацией и системой лояльности — плюс 4-6 недель. Стоимость рассчитывается индивидуально.







