Skip to content

ZyFun/NTPro

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

14 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Xcode Swift IOS
Target Version
UIKit UITableViewDiffableDataSource MVP GCD AutoLayout

Работа с большим потоком данных

Тестовое задание

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

Screenshots

Demo

About

Тестовое задание

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages