Элегантное, быстрое и приватное кроссплатформенное приложение для заметок, идей и списков задач
О приложении • Визуальный обзор • Возможности • Стек технологий • Архитектура • Быстрый старт
«Фиксация» — это современный инструмент для фиксации ваших мыслей, ведения заметок, создания списков дел и организации повседневных задач. Приложение создано с акцентом на высокую скорость работы, визуальную эстетику и абсолютную конфиденциальность данных.
- 🔒 100% Offline-first & Приватность: Ваши данные хранятся исключительно на вашем устройстве в реляционной базе данных SQLite. Никакой телеметрии, внешних трекеров и зависимости от облачных серверов.
- 🎨 Гибкое форматирование текста: Полноценный Rich Text редактор с поддержкой заголовков, цитат, списков, кода и цветового выделения.
- 🖼️ Медиа-вложения: Добавление фото из галереи устройства с локальной оптимизацией или быстрая вставка по внешним URL-адресам.
- 🛡️ Защита PIN-кодом: Блокировка доступа к приложению с помощью кастомной клавиатуры для защиты от посторонних глаз.
- ⚡ Мгновенный поиск и сортировка: Интеллектуальная фильтрация по тексту, заголовкам и датам создания.
- Стилизация текста: Полужирный, курсив, подчёркивание, зачёркивание текста.
- Иерархия контента: Заголовки уровней
H1,H2иH3. - Списки любого типа: Маркированные списки, нумерованные списки и интерактивные чеклисты с галочками.
- Цитаты и код: Эстетичные блоки цитат (Blockquote) и моноширинные блоки программного кода.
- Палитра цветов: Изменение цвета текста и цвета фона (маркер текста).
- Выравнивание: По левому краю, по центру, по правому краю и по ширине.
- Вставка фотографий напрямую из галереи смартфона.
- Автоматическая оптимизация и сжатие локальных изображений для экономии дискового пространства.
- Вставка изображений по URL-ссылке.
- Изоляция и безопасное хранение в директории приложения (
LocalImageService).
- Цветовая дифференциация: Каждой заметке можно назначить цвет карточки из сбалансированной дизайнерской палитры.
- Адаптивная сетка: Отображение в стиле Staggered / Reorderable Grid для эффективного использования экрана.
- Живой поиск: Мгновенный поиск в реальном времени по заголовкам, текстовому резюме и отформатированным датам.
- Быстрая настройка 4-значного PIN-кода при первом запуске или в любой момент через экран настроек.
- Безопасная верификация при входе в приложение или возвращении из фонового режима.
- Защищённая кастомная цифровая клавиатура
PinKeyboardWidget. - Возможность редактирования или полного удаления PIN-кода с подтверждением.
- Поддержка системной, светлой и тёмной тем оформления.
- Семантическое расширение
ThemeExtension(AppCustomColors) для точной адаптации контраста и акцентных оттенков. - Плавные микроанимации переходов и появления элементов (
flutter_animate). - Современный набор иконок Lucide Icons.
| Область | Технологии | Назначение |
|---|---|---|
| Фреймворк & SDK | Flutter 3.44.9, Dart 3.12+ (FVM) | Мультиплатформенная кодовая база |
| State Management | Riverpod (hooks_riverpod), Flutter Hooks |
Реактивное декларативное управление состоянием |
| База данных | Drift (SQLite), drift_flutter |
Локальная реляционная БД с реактивными Stream-запросами |
| Локальное хранилище | shared_preferences, path_provider |
Сохранение настроек темы, PIN-кода и путей к файлам |
| Навигация | GoRouter, go_transitions |
Декларативный роутинг с защитными гардами (AppRouterRedirect) |
| Редактор текста | flutter_quill, flutter_quill_extensions |
Полнофункциональный Rich Text редактор |
| Работа с фото | image_picker, flutter_image_compress |
Выбор и аппаратное сжатие изображений |
| UI & Анимации | flutter_reorderable_grid_view, flutter_animate, lucide_icons_flutter |
Адаптивная динамическая сетка, анимации и иконки |
| Кодогенерация | Freezed, JsonSerializable, Drift Dev, FlutterGen | Неизменяемые модели данных, мапперы и строгая типизация ресурсов |
| Локализация | flutter_localizations, intl (ARB) |
Мультиязычная архитектура без хардкода строк |
Приложение следует принципам Feature-first архитектуры, где каждый логический модуль полностью изолирован и содержит собственные уровни данных (Data) и отображения (Presentation):
note-taking-app/
├── showcase/ # Презентационные материалы и скриншоты приложения
├── packages/
│ ├── app/ # Основное клиентское приложение
│ │ ├── assets/ # Ресурсы (иконки, палитры цветов, документы)
│ │ ├── lib/
│ │ │ ├── main.dart # Точка входа в приложение
│ │ │ ├── core/ # Общесистемное ядро приложения
│ │ │ │ ├── database/ # Определение схемы Drift SQLite и репозиторий БД
│ │ │ │ ├── l10n/ # Файлы локализации ARB и сгенерированный intl
│ │ │ │ ├── providers/ # Глобальные провайдеры Riverpod (тема, настройки, PIN)
│ │ │ │ ├── router/ # Конфигурация GoRouter, маршруты и редиректы
│ │ │ │ ├── services/ # Системные сервисы (хранилище, диалоги, изображения)
│ │ │ │ ├── theme/ # Конфигурация темы Material 3 и AppCustomColors
│ │ │ │ └── widgets/ # Переиспользуемые общие UI-виджеты
│ │ │ └── features/ # Независимые фича-модули
│ │ │ ├── notes/ # Управление заметками (список, поиск, редактор Quill)
│ │ │ ├── pin/ # Безопасность (установка, ввод и проверка PIN-кода)
│ │ │ ├── settings/ # Настройки темы и безопасности
│ │ │ └── about/ # Сведения о приложении и условия использования
│ └── flutter_reorderable_grid_view # Модуль интерактивной сетки с перемещением элементов
- Установленный FVM (рекомендуется) или Flutter SDK
3.24.x+ - Установленный Dart SDK
^3.12.2
git clone https://github.com/aandrosov-freelancer/note-taking-app.git
cd note-taking-appfvm flutter pub getfvm dart run build_runner build --delete-conflicting-outputs# Запуск на подключенном устройстве или симуляторе
fvm flutter run# Форматирование кода проекта
fvm dart format .
# Статический анализ кода
fvm flutter analyze
# Автоматическое применение исправлений линтера
fvm dart fix --applyПроект распространяется под открытой лицензией Apache 2.0. Подробности смотрите в файле LICENSE.




