Главный помощник в уходе за домашними питомцами. Мобильное приложение, которое помогает владельцам не забывать давать лекарства, планировать визиты к ветеринару, вовремя делать прививки и обработки, следить за весом, питанием и настроением питомца — а ещё задавать вопросы ИИ-ассистенту по уходу.
Flutter-приложение (Android / iOS). Локально-ориентированное: основной функционал работает без интернета, облако и ИИ подключаются опционально.
- Несколько профилей питомцев с быстрым переключением
- Поддержка видов и пород, фото профиля (камера / галерея с обрезкой)
- Персональная цветовая палитра под каждого питомца
- День рождения с обратным отсчётом и расчётом «человеческого» возраста
- Оценка здоровья (норма / внимание / критично) на основе умного анализа:
- тренд веса, аномалии аппетита, просроченные прививки и события
- Вес — графики и история
- Питание — время приёма, аппетит, вес порции
- Настроение — с сортировкой по дате и времени суток
- Заметки — по симптомам с готовыми тегами и голосовым вводом
- Препараты — напоминания, несколько приёмов в день, иконка и цвет в iOS-стиле
- Обработки — прививки, паразиты и т.п. с автосозданием следующего события
- Документы — хранилище файлов по категориям (прививки, страховка…), загрузка с камеры или из файлов
- Создание и управление событиями, категории
- Повторяющиеся события с настраиваемым правилом (выбор дней недели) и датой окончания курса
- События на весь день (время указывать необязательно)
- Отметка выполнения по каждому повторению
- Привязка одного события к нескольким питомцам, режим «все питомцы»
- Подсветка и приоритизация просроченных событий
- Чат с помощником по уходу (бэкенд на GigaChat)
- Интерактивные треды: переключение между диалогами с сохранением контекста
- Прикрепление сущностей (препарат, заметка, прививка, событие) к сообщению — уходят в запрос в JSON
- Реальный индикатор доступности бота (
/health), корректная обработка ошибок сервера
- Синхронизация с облаком через PocketBase (авторизация, восстановление данных из облака при онбординге)
- Отправка ошибок и стектрейсов в PocketBase (переключатель в настройках)
- Локальные уведомления-напоминания
- «Стеклянный» (glass) UI, плавающая навигация, скелетоны загрузки
- Анимации и переходы, единый стиль выезжающих листов (draggable sheets)
- Управление внешним видом через
AppearanceController
- Flutter (Dart SDK
^3.9.2), Material + Cupertino, локализация (ru,en) - Состояние:
provider(ChangeNotifier) +get_it(синглтоны сервисов) - Локальное хранилище:
hive(чат),shared_preferences(настройки), файловая система (файлы / аватары) - Облако:
pocketbase— пользователи, питомцы, события,error_reportsи др. - Сеть:
httpповерхIOClientс доверенным корневым сертификатом (Russian Trusted Root CA, см.assets/certs/) - Графики:
fl_chart; календарь:table_calendar - Прочее:
image_picker/image_cropper,speech_to_text,flutter_local_notifications,flutter_svg,google_fonts, FontAwesome
| Назначение | URL | Эндпоинты |
|---|---|---|
| API / данные | https://api.pet-sputnik.ru |
PocketBase-коллекции (users, pets, events, error_reports, …) |
| ИИ-ассистент | https://ai.pet-sputnik.ru |
GET /health, POST /chat (GigaChat) |
pet-ai/
├─ README.md ← этот файл
├─ changelog.md ← история версий
├─ codemagic.yaml ← CI (сборка iOS ipa)
└─ pet_ai/ ← Flutter-проект (package: pet_satellite)
├─ lib/
│ ├─ main.dart точка входа, регистрация сервисов, MainPage + навигация
│ ├─ models/ доменные модели (pet_profile, event, pill, treatment, mood, …)
│ ├─ services/ бизнес-логика и интеграции (api, pb, ai, cloud_sync, crash_reporting, …)
│ ├─ pages/
│ │ ├─ main_pages/ home / health / ai_chat / events
│ │ ├─ secondary_pages/ профили, настройки, внешний вид
│ │ └─ registration_flows/ онбординг питомца и пользователя
│ └─ theme/ тема, цвета, переиспользуемые виджеты (glass, draggable sheets, …)
├─ assets/ сертификаты, иконки, шрифты
├─ android/ ios/ web/ windows/ linux/
└─ pubspec.yaml
- Flutter (канал
stable) - Android Studio / Xcode для целевых платформ
cd pet_ai
# 1. Зависимости
flutter pub get
# 2. Кодогенерация Hive-адаптеров (ai_service.g.dart)
dart run build_runner build --delete-conflicting-outputs
# 3. Запуск на устройстве/эмуляторе
flutter runЛокальная конфигурация не требуется — приложение запускается «из коробки». ИИ-ассистент общается с https://ai.pet-sputnik.ru по токену авторизации пользователя; ключ GigaChat хранится на стороне сервера, в приложении его держать не нужно.
# Android
flutter build apk --release # или: flutter build appbundle --release
# iOS
flutter build ipa --releaseИконки приложения генерируются через flutter_launcher_icons:
dart run flutter_launcher_iconsCI собирает iOS-сборку через Codemagic (workflow ios-workflow в codemagic.yaml).
Текущая версия — 0.3.x. Полная история изменений — в changelog.md.