Многостраничное приложение предназначено для загрузки из сети и создания новых "to do" целей.
Цели приложения:
- Загрузка из сети первоначальных задач.
- Добавление новых и изменение старых целей.
- При первом запуске приложение загружает из интернета список задач.
- Главный экран состоит из ленты с задачами. Пользователь может просматривать их, добавлять, изменять и удалять задачи.
- При выполнении задачи на главном экране задача будет отображаться с зеленым задним фоном.
- Экран создания состоит из 2х текстовых полей для обозначения задачи.
- Экран изменения состоит из 2х текстовых полей и флажка для обозначения выполненной задачи.
- Все данные хранятся с помощью CoreData, а поля обновляются с помощью FetchResultController.
- При первом входе или при отсутствии задач в памяти они загружаются из сети в виде JSON файла.
- Лента реализована с помощью UITableView.
- В приложении использованы UITextField, UITextView, UIBarButtonItem, NavigationController, NavigationBar, UITableView.
- Предусмотрен только светлый режим.
При первом входе в приложение или при отсутствии задач в памяти данные загружаются из сети : "https://dummyjson.com/todos"
Экран задач:
- Название приложения
- Table view с задачами
- Кнопку «+»
Алгоритмы и доступные действия:
- При входе в приложение пользователь видит список задач;
- Пользователь может изменить задачу нажатием на нее;
- При изменении данных в UITextField меняется заголовок задачи;
- При изменении данных в UITextView меняется текст задачи;
- При изменении положения UISwitch меняется статус выполнения задачи;
- Кнопка "сохранить" становится доступна при не пустом UITextView; 1. При нажатии на кнопку "сохранить" данные задачи изменяются в CoreData и таблица на главном экране обновляется;
- Пользователь может добавить задачу нажатием на кнопку "+";
- При изменении данных в UITextField меняется заголовок задачи;
- При изменении данных в UITextView меняется текст задачи;
- Кнопка "готово" становится доступна при не пустом UITextView; 1. При нажатии на кнопку "готово" данные задачи изменяются в CoreData и таблица на главном экране обновляется;