Skip to content

SKemenov/simple-todo-ios

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

English version

ToDoList iOS

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

Автор

Сергей Кеменов

Screenshots

ToDoList iOS app

ToDoList is a demo iOS application for managing a task list with support for adding, editing, deleting, and searching tasks.

Core Features

  • 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

Bonus / Advanced Features

  • 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

Customer Requirements / References

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

Tech Stack

  • 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

Tests

  • Unit tests

Tools Used

  • Xcode
  • Figma
  • Postman

Author

Sergey Kemenov

About

ToDo List - demo SwiftUI app for managing a task list

Topics

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages