Работа с большим потоком данных
Тестовое задание
Description
Очень удобно использовать в мороз для согрева рук, или утром чтобы пожарить яичницу.
Каждые 2 секунды формируется коллекция примерно с 2000 случайных объектов, у которых могут быть одинаковые ID. Объекты с совпадающими ID заменяются новыми данными. Эти данные сортируются по указанным пользователем данным. Приложение сделано так, что даже с 300 000 объектов, интерфейс приложения не тормозит и пользователю комфортно с ним работать.
Описание используемых технологий
- Алгоритмы и структуры данных, для оптимизации работы на сколько это было возможно с таким потоком данных.
- Реализована пагинация.
- Многопоточность приложения построена на GCD. В планах переписать на NSOperation, так как при огромном потоке данных (более 500 0000) нужна отмена сортировки и получения нового пакета, чтобы дать пользователю возможность отсортировать так, как он хочет. Сейчас реакция сортировки при таких условиях медленная, так как идёт ожидание завершения предыдущей операции, чтобы не обращаться к уже использующемуся массиву данных.
- Приложение написано на архитектуре MVP.
- Вместо стандартного data source у теблицы используется UITableViewDiffableDataSource
- Вёрстка итерфейса сделана полностью кодом с помощью AutoLayout
- Весь дизайн взят из ТЗ.
Installations
Clone and run project in Xcode 14 or newer