Мобильное приложение для расчета Индекса Массы Тела (ИМТ) с сохранением истории расчетов.
Приложение позволяет:
- Рассчитывать ИМТ на основе веса и роста
- Сохранять результаты расчетов в историю
- Просматривать историю предыдущих расчетов
- Управлять сохраненными данными
- Flutter - кроссплатформенный фреймворк
- Flutter Bloc - управление состоянием приложения
- SharedPreferences - локальное хранение данных
- Material Design - дизайн система
lib/ ├── main.dart # Точка входа приложения ├── screens/ │ ├── screen_provider.dart # Провайдер главного экрана │ ├── screen.dart # Главный экран с калькулятором │ ├── history_screen.dart # Экран истории расчетов │ ├── cubit/ │ │ ├── screen_cubit.dart # Логика главного экрана │ │ ├── screen_state.dart # Состояния главного экрана │ │ ├── history_cubit.dart # Логика истории │ │ └── history_state.dart # Состояния истории │ └── shared_preferences/ │ └── shared_prefs.dart # Работа с локальным хранилищем
- Flutter SDK (версия 3.0+)
- Dart SDK
- iOS: Xcode и macOS
- Android: Android Studio
- Клонирование репозитория
git clone <repository-url> cd app_store flutter pub get # На iOS симуляторе
flutter run -d "iPhone"
flutter run -d "Android"
flutter run
Откройте проект в Xcode
cd ios open Runner.xcworkspace
Запустите приложение
Сохранение в историю
Добавление нового расчета
Просмотр истории
Экран истории Просмотр всех сохраненных расчетов
Удаление отдельных записей
Обновление списка pull-to-refresh
Сортировка по дате (новые сверху)
Стиль: Минималистичный Material Design
Цветовая схема: Белый фон с акцентными цветами
Типографика: Четкая иерархия шрифтов
Компоненты: Центрированные элементы ввода/вывода
Формула: ИМТ = вес (кг) / (рост (м) × рост (м))
Категории:
< 18.5 - Недостаточный вес (оранжевый)
18.5-24.9 - Нормальный вес (зеленый)
25-29.9 - Избыточный вес (оранжевый)
≥ 30 - Ожирение (красный)
SharedPreferences для:
Последних введенных данных
Согласия на обработку
Истории расчетов (в формате JSON)
flutter pub add <package_name>
Сборка релизной версии
flutter build ios
flutter build apk
flutter test
Очистка проекта flutter clean flutter pub get
Проблемы с iOS cd ios pod repo update pod install cd ..
Проблемы с кэшем flutter precache
Филатов Данька