Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

ToDoList App

ToDoList — приложение для управления задачами, разработанное на Swift и UIKit.

Позволяет создавать, редактировать и удалять задачи, выполнять поиск и фильтрацию, а также синхронизировать данные с удаленным REST API. Для локального хранения используется Core Data, благодаря чему приложение работает даже без подключения к интернету.

Дизайн и API

Скриншоты

Image

Возможности

  • Управление задачами — создание, просмотр, редактирование и удаление задач.
  • Подробная информация — каждая задача содержит заголовок, описание, дату создания и статус выполнения.
  • Offline First — данные сохраняются локально с помощью Core Data, поэтому доступны даже без подключения к интернету.
  • Синхронизация с API — при первом запуске приложение получает задачи с REST API и сохраняет их локально.
  • Поиск и фильтрация — поиск по тексту и фильтрация по статусу выполнения.
  • Асинхронная обработка — сетевые запросы и операции с базой данных выполняются в фоновых потоках с использованием GCD, что обеспечивает плавную работу интерфейса.

Технический стек

  • Swift
  • UIKit (программная верстка с Auto Layout)
  • VIPER (View–Interactor–Presenter–Entity–Router)
  • Core Data — локальное хранение данных
  • URLSession — сетевые запросы
  • REST API
  • Grand Central Dispatch (GCD) — многопоточность

Архитектура

Проект реализован с использованием архитектуры VIPER, которая разделяет приложение на независимые модули:

  • View — отображает интерфейс и передает действия пользователя презентеру.
  • Interactor — содержит бизнес-логику, отвечает за работу с сетью и Core Data.
  • Presenter — подготавливает данные для отображения и управляет логикой представления.
  • Entity — модели данных (Codable и сущности Core Data).
  • Router — отвечает за навигацию между экранами.

Каждый модуль (например, список задач или экран редактирования) имеет собственные компоненты View, Interactor, Presenter, Entity и Router, что делает код масштабируемым, удобным для сопровождения и тестирования.

Особенности реализации

  • Поддержка офлайн-режима — при запуске приложение пытается получить данные с API. Если запрос успешен, локальная база обновляется. При отсутствии сети отображаются сохраненные данные.
  • Фоновая обработка — сетевые запросы и сохранение данных в Core Data выполняются в отдельных потоках, благодаря чему интерфейс остается отзывчивым.
  • Собственный Core Data Stack — реализован отдельный менеджер, инкапсулирующий работу с NSPersistentContainer, сохранением и получением данных.
  • Модульная архитектура — независимые VIPER-модули упрощают тестирование и дальнейшее развитие проекта.

Установка

git clone https://github.com/rfhfv/ToDoList.git
cd ToDoList
open ToDoList.xcodeproj

О проекте

Приложение демонстрирует разработку современного iOS-приложения с использованием UIKit, Core Data, REST API и архитектуры VIPER. Основной акцент сделан на разделении ответственности между слоями, поддержке офлайн-режима, работе с многопоточностью и удобстве дальнейшего масштабирования проекта.

About

UIKit, VIPER, URLSession, Core Data

Topics

Resources

Stars

0 stars

Watchers

0 watching

Forks

Contributors

Languages