Небольшое демонстрационное приложение «Список дел» на SwiftUI с использованием Combine и архитектуры MVVM.
- Добавление/редактирование/удаление задач
- Валидация формы при создании/редактировании задачи
- Сохранение данных через
UserDefaults(локально) с помощью расширенияFileManager - Реактивные обновления UI через
Combineи@EnvironmentObject
- SwiftUI — интерфейс
- Combine — реактивное управление состоянием
- MVVM — разделение ответственности
- UserDefaults/FileManager — локальное хранение
- Xcode 14+ (рекомендуется)
- iOS 15+ (минимальная версия может отличаться — при необходимости скорректируйте в настройках таргета)
- Откройте проект:
ToDoCombine.xcodeprojв Xcode. - Выберите симулятор или подключённое устройство iOS.
- Нажмите ▶︎ 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.
- Фильтры и сортировки
- Поиск по задачам
- Напоминания/уведомления
- Импорт/экспорт
Добавьте файл LICENSE при необходимости (например, MIT).