У меня есть приложение для iPhone, которое, помимо прочего, позволяет пользователям хранить фотографии. Когда новая фотография добавляется в хранилище данных приложения, я кэширую уменьшенную версию изображения, чтобы сетки миниатюр фотографий загружались в разумные сроки.
Проблема в том, что эти миниатюры отлично смотрятся на экране до Retina Display, но на RD дисплеях они выглядят немного размытыми. Это не так плохо, что изображения непригодны для использования, но я действительно хотел бы получить все преимущества Retina Display для пользователей изображений, сохраненных с более старыми версиями моего приложения.
Проблема в том, что воссоздание всех этих миниатюр занимает слишком много времени. В моих тестах потребовалось около полутора минут, чтобы перекодировать образец базы данных в миниатюры с высоким разрешением (по общему признанию, большие) на моем iPhone 4. На старом оборудовании это будет еще хуже.
Как я могу обойти это? Выполнение однократной миграции кажется невозможным, учитывая приведенные выше результаты производительности. Другие варианты - ленивое сжатие миниатюр (то есть, когда они отображаются на экране), а затем их сохранение в базе данных. Экраны, заполненные старыми изображениями, будут вялыми при первом просмотре, а затем - быстрее.
Есть ли другие подходы для рассмотрения? Кто-нибудь еще сталкивался с этой проблемой?