Все зависит от требований заказчика. Вот несколько вариантов:
Проверять папку кэш на объем каждый раз при заходе приложения, если больше определенного объема(200мб вполне хватит) то удалять все. Т.к. картинки весят не так много, эта операция будет проходить редко.
Можно периодически удалять файлы старше какой-то даты.
Можно класть в папку temp(iOS) и файлы будут сами удаляться после завершения работы приложения
а если требование, чтобы картинки обновлялись после обновления это картинки на сервере, а до этого брались из кеша, как вы посоветуете такое реализовать?
Необходимо, чтобы на сервере, при обновлении картинки, изменялось имя файла(или вместе с url на картинку приходила бы дата добавления этого файла). Тогда все просто, старый файл потом удалиться по алгоритму, описанному выше.
Толком об архитектуре ни слова. Где всякие там лайеры (сервис лайер, дата аксес лайер). Как построить связь между лайерами, какие паттерны или приемы где и как лучше использовать и тп.
То, о чём вы говорите, не есть архитектура, а есть шаблоны программирования, которых миллион в любой книжке. Не нужно разбивать типичное iOS приложение на лэеры, это просто нецелесообразно.
>Также есть фоновые запросы к серверу, которые по таймеру запрашивают данные все время работы приложения(это могут быть запросы на кол-во новых сообщений, инвайты в друзья, изменение баланса валюты внутри приложения и тд).
Такой подход никуда не годится, для этих целей необходимо использовать Push Notifications (GCM в android). Это позволит снизить трафик до минимума, а интерактивность повысить до максимума.
Несколько советов по архитектуре мобильного приложения, активно использующего сеть. Часть 1