Простое кроссплатформенное приложение для создания и управления заметками, созданное с помощью Flutter.
- Создание, редактирование и удаление заметок: Базовый функционал для работы с заметками.
- Темная тема: Поддержка светлой и темной тем оформления.
- Поиск по заметкам: Быстрый поиск заметок по их содержимому или заголовку.
- Сортировка: Возможность сортировки заметок (например, по дате создания или изменения).
- Кроссплатформенность: Поддержка Android, iOS, Web, Windows и macOS.
- Тесты: Наличие юнит-тестов, виджет-тестов и golden-тестов для обеспечения качества кода.
- Сплэш-скрин: Кастомный экран загрузки при запуске приложения.
- Кастомная иконка приложения: Уникальная иконка приложения для всех платформ.
- Кастомные анимации: Плавные анимации переходов между экранами и анимированные элементы интерфейса (кнопки, возможно, списки).
- Локализация: Поддержка нескольких языков (английский, русский).
- Фреймворк: Flutter
- Язык: Dart
- Управление состоянием: flutter_bloc
- База данных: Isar (локальная NoSQL БД)
- Внедрение зависимостей (DI): get_it / injectable
- Локализация: easy_localization
- Анимации: flutter_animate, animations
- Тестирование: flutter_test, mockito, golden_toolkit
- Генерация иконок/сплэша: flutter_launcher_icons, flutter_native_splash
- Шрифты: google_fonts
- Прочее: equatable, path_provider, intl, shared_preferences
Проект придерживается принципов Clean Architecture, разделяя логику на слои:
- Data: Источники данных (локальная БД Isar), репозитории.
- Domain: Сущности (Entities), интерфейсы репозиториев, Use Cases (хотя в данном проекте могут быть неявно выражены в BLoC).
- Presentation: UI (экраны, виджеты), управление состоянием (BLoC).
Внедрение зависимостей осуществляется с помощью get_it и injectable. Управление состоянием построено на flutter_bloc.
- Убедитесь, что у вас установлен Flutter SDK. Инструкции по установке: https://flutter.dev/docs/get-started/install
- Клонируйте репозиторий:
git clone <URL репозитория> cd proviante_notes
- Установите зависимости:
flutter pub get
- Запустите генерацию кода (необходимо для Isar и Injectable):
Примечание: Эту команду нужно выполнять после изменений в моделях Isar или конфигурации Injectable.
flutter pub run build_runner build --delete-conflicting-outputs
- Запустите приложение:
Выберите целевое устройство (эмулятор, реальное устройство или десктоп/веб).
flutter run
Для запуска всех тестов выполните команду:
flutter testДля обновления golden-файлов (если виджет-тесты используют golden_toolkit):
flutter test --update-goldens