Loading repository data…
Loading repository data…
orloff-n / repository
Тестовое задание: Список задач на UIKit и CoreData с применением архитектуры VIPER
A transparent discovery signal based on current public GitHub metadata.
This score does not audit code, security, maintainers, documentation quality, or suitability. Verify the repository and its current documentation before adoption.
Задача: Необходимо разработать простое приложение для ведения списка дел (ToDo List) с возможностью добавления, редактирования, удаления задач.
Бонус:
Формат данных из JSON не соответствует макету приложения. Из полученного JSON используются только два поля: todo (заголовок) и completed (статус). Поле заметки при первой загрузке остаётся пустым, но пользователь может добавить его при редактировании. Интерфейс адаптирован так, чтобы ячейки корректно отображались как с заметкой, так и без неё.
В требованиях указано выполнять все операции с задачами (создание, загрузка, редактирование, удаление, поиск) в фоновом потоке. Однако некоторые операции я намеренно решил выполнять на главном потоке:
viewContext на главном потоке, поскольку удаление в фоновом контексте приводит к нарушению анимаций UICollectionView.NSFetchedResultsController инициализирован с viewContext. Инициализировать его с фоновым контекстом, на мой взгляд, неразумно, поскольку он обновляет UI через делегат, предоставляя новые снапшоты для diffable data source. Изменение предиката в нём не блокирует главный поток.