Skip to content

VKEducation/ios-itmo-2020-assignment-5

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

1 Commit
 
 
 
 
 
 
 
 

Repository files navigation

Загрузчик изображений

Предпосылки

Приложения часто отображают большое кличество изображений с сервера доступных по url. Для показа их надо предварительно загрузить, а так же кэшировать, что бы избежать повторной загрузки.

Исходные данные

Прилоежние содержит один экран с таблицей, таблица отображет список изображений и их url. В каждой ячейке доступен ImageDownloader. И с его помощью зашружаются изображения.

Задание

Основное: Необходимо добавить имплементацию в класс ImageDownloader не меняя публичного интерфейса. ImageDownloader должен загружать изображения по ссылке. Уже загруженные изображения должны кэшироваться в оперативной памяти и на диске.

Алгоритм получения фото должен быть следующий: 1) Ищем изображение в памяти и если оно имеется возвращаем его 2) Иначе ищем на диске, если нашлось возвращаем его 3) Иначе загружаем изображение из сети, добавляем в кэш, возвращаем.

Каждое изображение должно обрабатываться в отдельном потоке. Можно использовать GCD или Operation по вкусу. Необходимо обрабатывать ситуацию, когда изображение зпрашивается повтороно, в момент когда операция его получения находится в процессе. При этом, Повторный запрос должен дождаться окончания предыдущей операции и использовать ее результат из кэша в оперативной памяти.

Дополнительные: Реализовать собственную имплементацию Operation и OperationQueue поверх GCD и использовать в ImageDownloader. Не обязательно реализовывать все интерфейсы. Достаточно минимума для использования в ImageDownloader.

Подсказки

  • В качестви id изображения удобно использовать url изображения, но при использовании url в качестве имени файла не корректно, необходимо кодировать в безопасный формат.
  • Пока вы не умеете работать с файловой системой, можно ограничится кэшированием в оперативной памяти

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages