← Назад к вопросам

Расскажи про первый проект

1.0 Junior🔥 171 комментариев
#Другое

Комментарии (1)

🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)

Ответ сгенерирован нейросетью и может содержать ошибки

Первый проект — фитнес-приложение FitTrack

Контекст

Мой первый коммерческий Flutter-проект был мобильным приложением для отслеживания тренировок и прогресса в спортзале. Это был стартап, где я был одним из двух разработчиков на проекте.

Технологический стек

  • Flutter 2.5 (был в то время)
  • Dart с null safety
  • Firebase (Firestore, Real Time Database, Authentication)
  • GetX для управления состоянием (тогда это был хороший выбор)
  • Dio для HTTP запросов
  • Hive для локального кеша
  • Provider для инъекции зависимостей

Архитектура

Структура была классическая:

  • models/ — дата-классы с JSON сериализацией
  • services/ — Firebase, API, локальное хранилище
  • controllers/ — бизнес-логика (GetX)
  • views/ — UI компоненты
  • widgets/ — переиспользуемые компоненты

Основной функционал

Авторизация: email/password через Firebase Auth Трекинг тренировок: запись упражнений, подходов, весов, времени отдыха Статистика: графики прогресса, персональные рекорды, история Social: возможность добавлять друзей и смотреть их тренировки Уведомления: push-уведомления о времени тренировки через Firebase Cloud Messaging

Ключевые вызовы и решения

Вызов 1: Синхронизация данных Проблема: когда пользователь оффлайн, данные должны синхронизироваться при восстановлении соединения. Решение: использовал Firestore offline persistence + очередь синхронизации в Hive.

Вызов 2: Производительность списков Проблема: при большом количестве тренировок UI замораживался. Решение: переход на ListView.builder() с пагинацией, ограничение в запросе Firestore.

Вызов 3: Управление состоянием Проблема: GetX дарует слишком много свободы, код разрастался. Решение: установил правила: контроллеры только для UI-state, бизнес-логика в сервисы.

Чему я научился

  1. Важность архитектуры — можно писать на Flutter быстро, но без продуманной структуры код становится спагетти
  2. Firebase — отличный выбор для MVP — быстро запустили, не тратились на бэкенд
  3. Тестирование нужно с самого начала — потом добавлять тесты сложнее
  4. Мобильная оптимизация критична — не всегда быстрый Интернет, нужно работать с оффлайном
  5. Code review с коллегой спасал — огромное количество багов ловились до продакшена

Результат

Приложение вышло на iOS и Android, собрало 5000+ активных пользователей за полгода, затем был акквизирован более крупным фитнес-сервисом. Это дало мне уверенность, что я могу доводить проекты до боевого состояния.

Расскажи про первый проект | PrepBro