Flutter-приложение для кондитеров. Хранит рецепты тортов и автоматически пересчитывает количество ингредиентов при изменении размера формы (диаметр × высота) или итогового веса.
- Рецепт = набор секций одного из 10 типов: Бисквит, Крем, Начинка, Покрытие, Ганаш, Пропитка, Мусс, Безе, Глазурь, Декор. У каждого типа свой режим масштабирования (по объёму, по площади или фиксированный).
- Пересчёт по размеру — задаёшь новый диаметр и высоту, ингредиенты пересчитываются по объёму/площади/остаются как есть в зависимости от типа секции.
- Пересчёт по весу — задаёшь целевой вес, fixed-секции (декор) корректно исключаются из расчёта.
- Список покупок — суммирует одинаковые ингредиенты по всем секциям масштабированного рецепта.
- Поделиться — формирует читаемый текст для отправки коллеге через любой мессенджер.
- Заметки — свободное поле для шагов приготовления / комментариев.
- Поиск — фильтр по названию для коллекции из 5+ рецептов.
- Auto-update — приложение само проверяет GitHub Releases и предлагает скачать новую версию (Android-only).
Все измерения — только в граммах.
Скачать последнюю app-release.apk на странице Releases и открыть на Android-устройстве (потребуется разрешить установку из неизвестных источников).
Требования: Flutter stable (Dart ^3.11.4), Android SDK для APK.
flutter pub get
flutter analyze
flutter test
flutter build apk --releaseAPK окажется в build/app/outputs/flutter-apk/app-release.apk.
Локально:
./release.sh <version> "<message>"Скрипт обновляет версию в pubspec.yaml, делает коммит, пушит, ставит тег v<version> и пушит его. Тег триггерит GitHub Actions workflow, который собирает подписанный APK и публикует Release с auto-generated changelog.
Для подписи нужны GitHub Actions secrets: KEYSTORE_BASE64, STORE_PASSWORD, KEY_PASSWORD, KEY_ALIAS.
Каждый push в main и pull request прогоняет flutter analyze + flutter test (см. .github/workflows/ci.yml).
Чтобы локально проверять flutter analyze перед каждым коммитом, включи hooks из репо:
git config core.hooksPath .githooksЗапретит коммит, если flutter analyze находит warnings.
См. CHANGELOG.md.