Skip to content

pugdevgit/ToDoCombine

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

ToDoCombine

Небольшое демонстрационное приложение «Список дел» на SwiftUI с использованием Combine и архитектуры MVVM.

Возможности

  • Добавление/редактирование/удаление задач
  • Валидация формы при создании/редактировании задачи
  • Сохранение данных через UserDefaults (локально) с помощью расширения FileManager
  • Реактивные обновления UI через Combine и @EnvironmentObject

Стек

  • SwiftUI — интерфейс
  • Combine — реактивное управление состоянием
  • MVVM — разделение ответственности
  • UserDefaults/FileManager — локальное хранение

Требования

  • Xcode 14+ (рекомендуется)
  • iOS 15+ (минимальная версия может отличаться — при необходимости скорректируйте в настройках таргета)

Запуск

  1. Откройте проект: ToDoCombine.xcodeproj в Xcode.
  2. Выберите симулятор или подключённое устройство iOS.
  3. Нажмите ▶︎ Run.

Структура проекта

ToDoCombine/
├─ ToDoCombineApp.swift        // Точка входа SwiftUI
├─ Info.plist
├─ Assets.xcassets
├─ Extensions/
│  └─ FileManager+Extension.swift
├─ Models/
│  ├─ Todo.swift
│  ├─ ToDoError.swift
│  └─ ModalType.swift
├─ ViewModels/
│  ├─ DataStore.swift
│  └─ ToDoFormViewModel.swift
└─ Views/
   ├─ ContentView.swift
   └─ ToDoFormView.swift

Коротко об архитектуре

  • Models: типы данных (Todo), ошибки (ToDoError), служебные перечисления (ModalType).
  • ViewModels: DataStore управляет списком задач и их сохранением; ToDoFormViewModel — логика формы.
  • Views: экраны и формы на SwiftUI, подписаны на изменения через EnvironmentObject/@Published.

Данные и персистентность

  • Данные задач хранятся локально (на основе UserDefaults/файловой системы). Для очистки/сброса можно удалить приложение или соответствующие записи UserDefaults.

Планы (Roadmap)

  • Фильтры и сортировки
  • Поиск по задачам
  • Напоминания/уведомления
  • Импорт/экспорт

Лицензия

Добавьте файл LICENSE при необходимости (например, MIT).

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages