ToDoList - это клиент-серверное приложение для iOS, которое позволяет пользователям создавать, редактировать, удалять и отмечать выполненные задачи. Приложение использует JWT токены для аутентификации и авторизации пользователей на сервере. Приложение имеет две основные части: часть с регистрацией и часть с заметками.
Часть с регистрацией состоит из трех экранов:
- Экран входа в аккаунт, где пользователь может ввести свой логин и пароль, или перейти к экрану регистрации или восстановления пароля.
- Экран регистрации новых пользователей, где пользователь может ввести свой логин, пароль, имя и электронную почту, или вернуться к экрану входа в аккаунт.
- Экран восстановления пароля (в реализации), где пользователь может ввести свой логин или электронную почту, и получить ссылку для сброса пароля на свою почту.
Часть с заметками состоит из одного экрана, где пользователь может видеть список своих заметок, добавлять новые заметки, редактировать или удалять существующие заметки, и отмечать заметки как выполненные. Пользователь также может выйти из своего аккаунта и войти в другой аккаунт.
Приложение имеет понятный и простой UI, который соответствует стандартам дизайна и удобства использования. Приложение использует светлые и яркие цвета, четкие иконки и шрифты, анимации для переходов между экранами, и нажатия на кнопки.
Приложение написано на языке программирования Swift 5.9, с использованием фреймворка UIKit для создания UI. Приложение не использует фреймворков для взаимодействия с сетью, а только стандартные возможности языка. В качестве временного хранения данных приложение использует UserDefaults. Также реализована сущность TokenManager, которая запрашивает, хранит и следит за обновлением JWT-токена, когда он истечет.
Сервер написан на языке программирования Python, с использованием фреймворка Django Rest Framework для создания REST API. Сервер использует базу данных SQLite для хранения данных пользователей и заметок. Сервер также использует библиотеку Djoser для генерации и проверки JWT токенов.
Приложение распространяется под лицензией MIT, которая позволяет свободно использовать, копировать, изменять и распространять приложение.