Skip to content

About

Заметки, мысли, идеи, задачи

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

9 Commits

Folders and files

Repository files navigation

Фиксация — Иконка приложения

Фиксация

Элегантное, быстрое и приватное кроссплатформенное приложение для заметок, идей и списков задач

Flutter 3.44.9 Dart 3.12+ Riverpod Drift SQLite License Apache 2.0 Platforms

О приложении • Визуальный обзор • Возможности • Стек технологий • Архитектура • Быстрый старт


📖 О приложении

«Фиксация» — это современный инструмент для фиксации ваших мыслей, ведения заметок, создания списков дел и организации повседневных задач. Приложение создано с акцентом на высокую скорость работы, визуальную эстетику и абсолютную конфиденциальность данных.

🌟 Главные преимущества:

  • 🔒 100% Offline-first & Приватность: Ваши данные хранятся исключительно на вашем устройстве в реляционной базе данных SQLite. Никакой телеметрии, внешних трекеров и зависимости от облачных серверов.
  • 🎨 Гибкое форматирование текста: Полноценный Rich Text редактор с поддержкой заголовков, цитат, списков, кода и цветового выделения.
  • 🖼️ Медиа-вложения: Добавление фото из галереи устройства с локальной оптимизацией или быстрая вставка по внешним URL-адресам.
  • 🛡️ Защита PIN-кодом: Блокировка доступа к приложению с помощью кастомной клавиатуры для защиты от посторонних глаз.
  • ⚡ Мгновенный поиск и сортировка: Интеллектуальная фильтрация по тексту, заголовкам и датам создания.

📱 Визуальный обзор

🎯 Организация, Редактирование и Задачи

📝 Главный экран ✍️ Гибкий редактор ✅ Списки и чеклисты
Фиксация — Главный экран Фиксация — Редактор заметок Фиксация — Задачи и чеклисты
Организация и поиск
Карточки с цветовой палитрой, быстрый поиск и динамическая сетка заметок.
Rich Text & Медиа
Форматирование, стили шрифта, вставка фото и палитра маркеров.
Интерактивные задачи
Списки дел с чекбоксами для комфортного планирования дня.

🔒 Безопасность и Адаптивный дизайн

🛡️ Защита данных 🌓 Адаптивная тема
Фиксация — PIN-код Фиксация — Тёмная тема
Приватность под защитой
Блокировка доступа по 4-значному PIN-коду и кастомная цифровая клавиатура.
Material 3 & Dark Mode
Автоматическая системная, светлая или тёмная тема на ваш вкус.

✨ Ключевые возможности

📝 Мощный текстовый редактор (Rich Text)

  • Стилизация текста: Полужирный, курсив, подчёркивание, зачёркивание текста.
  • Иерархия контента: Заголовки уровней H1, H2 и H3.
  • Списки любого типа: Маркированные списки, нумерованные списки и интерактивные чеклисты с галочками.
  • Цитаты и код: Эстетичные блоки цитат (Blockquote) и моноширинные блоки программного кода.
  • Палитра цветов: Изменение цвета текста и цвета фона (маркер текста).
  • Выравнивание: По левому краю, по центру, по правому краю и по ширине.

🖼️ Фотографии и медиафайлы

  • Вставка фотографий напрямую из галереи смартфона.
  • Автоматическая оптимизация и сжатие локальных изображений для экономии дискового пространства.
  • Вставка изображений по URL-ссылке.
  • Изоляция и безопасное хранение в директории приложения (LocalImageService).

🗂️ Умная организация заметок

  • Цветовая дифференциация: Каждой заметке можно назначить цвет карточки из сбалансированной дизайнерской палитры.
  • Адаптивная сетка: Отображение в стиле Staggered / Reorderable Grid для эффективного использования экрана.
  • Живой поиск: Мгновенный поиск в реальном времени по заголовкам, текстовому резюме и отформатированным датам.

🔐 Безопасность и PIN-код

  • Быстрая настройка 4-значного PIN-кода при первом запуске или в любой момент через экран настроек.
  • Безопасная верификация при входе в приложение или возвращении из фонового режима.
  • Защищённая кастомная цифровая клавиатура PinKeyboardWidget.
  • Возможность редактирования или полного удаления PIN-кода с подтверждением.

🎨 Качественный интерфейс и Material 3

  • Поддержка системной, светлой и тёмной тем оформления.
  • Семантическое расширение 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

1. Клонирование репозитория

git clone https://github.com/aandrosov-freelancer/note-taking-app.git
cd note-taking-app

2. Установка зависимостей

fvm flutter pub get

3. Генерация кода (Drift, Freezed, FlutterGen)

fvm dart run build_runner build --delete-conflicting-outputs

4. Запуск приложения

# Запуск на подключенном устройстве или симуляторе
fvm flutter run

🧑‍💻 Инструменты разработки

# Форматирование кода проекта
fvm dart format .

# Статический анализ кода
fvm flutter analyze

# Автоматическое применение исправлений линтера
fvm dart fix --apply

📄 Лицензия

Проект распространяется под открытой лицензией Apache 2.0. Подробности смотрите в файле LICENSE.

Создано с любовью и вниманием к деталям на Flutter 💙

About

Заметки, мысли, идеи, задачи

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages