Переход от RestKit к чистому AFNetworking 2.0
Я использовал RestKit последние два года, но в последнее время я начал думать о переходе с этой монолитной структуры, поскольку кажется, что она действительно переполнена.
Вот мои плюсы для продвижения вперед:
- Существует большая потребность в использовании NSURLSession для фоновых захватов, а RestKit имеет только экспериментальную ветвь для перехода на AFNetworking 2.0. Нет фактических дат, когда переход будет завершен. (Основной Причина)
- Нет необходимости поддержки CoreData в сетевой библиотеке, поскольку нет необходимости в полностью функциональном автономном хранилище данных.
- Наличие головной боли с новой концепцией дескрипторов ответа/запроса, поскольку они не поддерживают разные параметры в шаблонах путей (например, параметр доступа к токенам), и нет способа создать операцию запроса объекта в одной строке с пользовательским дескриптором. Здесь я теряю функции диспетчера объектов как фасад.
I. Самая большая потеря RestKit для меня в процессе сопоставления объектов .
Не могли бы вы рекомендовать автономные библиотеки, которые вы используете, которые проявляют себя гибкими и стабильными?
II. И, как мне жаль, мне не нужно полностью функциональное хранилище, но в некоторых местах мне все еще нужна поддержка кеширования.
Я слышал, что NSURLCache стал полезным в последней версии ОС.
Вы использовали его и какую стратегию?
Возвращает ли кэшированные ответы API при отключении сетевого соединения?
III. Кто-нибудь сталкивается с теми же проблемами?
Какие решения вы применили?
Может быть, кто-то может дать несколько советов по архитектуре, которые он или она использует в нескольких приложениях с чистым AFNetworking?
Ответы
Ответ 1
я. По согласованию с другими, кто прокомментировал, AFNetworking + Mantle - это простой и эффективный способ взаимодействия с Restful API и замены отображения объектов RestKit процесс, который вы пропустите.
II. Ответ на требования вашей поддержки кеширования сильно зависит от контекста. Тем не менее, я нашел для своих последних функциональных требований, что кэширование модели представления для конкретного экрана контроллера и только кэширование ссылочных данных, возвращаемых API-интерфейсами, позволяет мне достаточно логично поддерживать логику приложения, предоставляя пользователю некоторую непрерывность. Простое уведомление об ошибках для проблем с подключением может быть рассмотрено сквозным образом.
III. Одна из соображений архитектуры, относящаяся к этому аспекту, заключается в том, чтобы гарантировать, что API-интерфейсы приложения зависят от предоставления данных в соответствии с опытом приложения. Это позволяет вашему приложению сосредоточиться на том, что хорошо (очень тонкий пользовательский опыт) и переводит логику в API ближе к зависимостям API, таким как данные. Это имеет еще одно преимущество для снижения популярности приложения.