ToDoList - демо приложение для ведения списка дел с возможностью добавления, редактирования, удаления задач.
- Отображение списка задач на главном экране
- Задача должна содержать название, описание, дату создания и статус (выполнена/не выполнена)
- Возможность добавления новой задачи
- Возможность редактирования существующей задачи
- Возможность удаления задачи
- Возможность поиска по задачам
- При первом запуске приложение должно загрузить список задач из указанного json api
- Обработка создания, загрузки, редактирования, удаления и поиска задач должна выполняться в фоновом потоке
- Интерфейс не должен блокироваться при выполнении операций
- Данные о задачах должны сохраняться в CoreData
- Приложение должно корректно восстанавливать данные при повторном запуске
- Должны быть написаны unit тесты
- Архитектура Clean Architecture, система разбита на слои, зависимость слоев однонаплавленная, без циклических ссылок
- Навигация NavigationStack с помощью Coordinator
- Для тестов CoreData используется в режиме inMemory
- Приложение разбито на модули, SPM Package
- Подключена дизайн система
- Подключено логирование на базе OSLog
- Тестирование с помощью Swift Testing
- Локализация приложения: русский, английский
- Подключение зависимостей через DI контейнер
- Моковые координатор и DI контейнер для корректной работы Swift Preview
Дизайн приложения (Figma) Техническое задание DummyJson API DummyJson API Doc
| Системные требования | Значение |
|---|---|
| Версия iOS | Minimum 16.0 |
| Платформа | iPhone |
| Ориентация устройства | Портрет (только) |
| Шрифт | Системный |
- UI: SwiftUI
- Architecture: MVVM + Coordinator, Clean Architecture
- Dependencies: Swift Package Manager (SPM)
- Persistence: Core Data
- Storage: UserDefaults (для настроек)
- Networking: JSON API (DummyJSON)
- Testing: Swift Testing
- Unit tests
- Xcode
- Figma
- Postman
ToDoList is a demo iOS application for managing a task list with support for adding, editing, deleting, and searching tasks.
- Display task list on the main screen
- Each task includes: title, description, creation date, and status (completed / not completed)
- Add a new task
- Edit an existing task
- Delete a task
- Search through tasks
- On first launch, the app loads the initial task list from a JSON API
- All create / load / update / delete / search operations are performed in a background thread
- The UI remains responsive during any data operations (no freezing)
- Tasks are persistently stored using Core Data
- The app correctly restores data on subsequent launches
- Unit tests are implemented
- Clean Architecture — the system is divided into clear layers with unidirectional dependencies (no circular references)
- Navigation using NavigationStack + Coordinator pattern
- Core Data is used in in-memory mode for tests
- The project is split into modules using Swift Package Manager (SPM)
- Implemented design system
- Logging using OSLog
- Testing with Swift Testing
- App localization: English + Russian
- Dependency Injection container
- Mock coordinator and DI container for correct SwiftUI Previews
Design (Figma) Technical specification DummyJSON API (todos) DummyJSON API Documentation
| System Requirement | Value |
|---|---|
| iOS version | Minimum 16.0 |
| Platform | iPhone only |
| Device orientation | Portrait only |
| Font | System font |
- UI: SwiftUI
- Architecture: MVVM + Coordinator, Clean Architecture
- Dependencies: Swift Package Manager (SPM)
- Persistence: Core Data
- Storage: UserDefaults (for settings)
- Networking: JSON API (DummyJSON)
- Testing: Swift Testing
- Unit tests
- Xcode
- Figma
- Postman




