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

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages