Amapic - это iOS-приложение, которое в итоге должно представлять собой альтернативную галерею для просмотра фотографий (т.е. альтернативу Photos). Фотографии группируются по похожести.

Приложение уже в App Store, его можно протестировать

Ваша задача - улучшить пользовательский опыт с приложением:

  1. Добавить кеширование групп. После того, как пользователь один раз импортировал альбом или часть альбома с определёнными датами, нужно записывать полученные группы в кэш. В следующие разы, когда пользователь импортирует тот же альбом или часть альбома с теми же датами, нужно проверять, есть ли под это запись в кэше. Нужно так же проверить, что импортируемый альбом не изменился, чтобы решить, использовать ли группы из кэша или пересоздать новые.
  2. Добавить листание фотографий по свайпу. На нижнем слое, когда пользователь смотрит отдельно взятую фотографию, нужно дать возможность просмотреть фотографию после открытой свайпом влево; и фотографию перед открытой свайпом вправо. Так же, как в обычной галерее Photos.
  3. На нижнем слое, когда пользователь смотрит отдельно взятую фотографию, нужно добавить возможность приближать фотографии пальцами. Для этого есть стандартный термин pinch to zoom, и так же работает в обычной галерее Photos.
  4. Исправить то, что попытка удалить фотографию крашит приложение, особенно если фотография всего одна в группе. Если пользователь удаляет единственную фотографию в группе, нужно уводить пользователя на уровень вверх
  5. При импорте фотографий из галереи нужно игнорировать видео - не использовать их в группировке.
  6. Для каждой группы фотографий нужно считать среднее время создания. То есть, если в группе 2 фотографии, у одной время создания 27 Feb 20:29:54, а у другой 28 Feb 00:01:02, то среднее время создания группы 27 Feb 22:15:28. И после этого в любом списке групп нужно сортировать группы по среднему времени создания группы - самые новые наверху, самые старые внизу

Итоговый результат работы - код в ветке #28-improv-ux репозитория. Этот код при запуске на локальном iPhone SE 2020 (не симуляторе) через XCode должен запускать приложение, которое делает все описанное выше.