Подтвердить что ты не робот

Переход от RestKit к чистому AFNetworking 2.0

Я использовал RestKit последние два года, но в последнее время я начал думать о переходе с этой монолитной структуры, поскольку кажется, что она действительно переполнена.

Вот мои плюсы для продвижения вперед:

  • Существует большая потребность в использовании NSURLSession для фоновых захватов, а RestKit имеет только экспериментальную ветвь для перехода на AFNetworking 2.0. Нет фактических дат, когда переход будет завершен. (Основной Причина)
  • Нет необходимости поддержки CoreData в сетевой библиотеке, поскольку нет необходимости в полностью функциональном автономном хранилище данных.
  • Наличие головной боли с новой концепцией дескрипторов ответа/запроса, поскольку они не поддерживают разные параметры в шаблонах путей (например, параметр доступа к токенам), и нет способа создать операцию запроса объекта в одной строке с пользовательским дескриптором. Здесь я теряю функции диспетчера объектов как фасад.

I. Самая большая потеря RestKit для меня в процессе сопоставления объектов . Не могли бы вы рекомендовать автономные библиотеки, которые вы используете, которые проявляют себя гибкими и стабильными?

II. И, как мне жаль, мне не нужно полностью функциональное хранилище, но в некоторых местах мне все еще нужна поддержка кеширования. Я слышал, что NSURLCache стал полезным в последней версии ОС. Вы использовали его и какую стратегию? Возвращает ли кэшированные ответы API при отключении сетевого соединения?

III. Кто-нибудь сталкивается с теми же проблемами? Какие решения вы применили? Может быть, кто-то может дать несколько советов по архитектуре, которые он или она использует в нескольких приложениях с чистым AFNetworking?

4b9b3361

Ответ 1

я. По согласованию с другими, кто прокомментировал, AFNetworking + Mantle - это простой и эффективный способ взаимодействия с Restful API и замены отображения объектов RestKit процесс, который вы пропустите.

II. Ответ на требования вашей поддержки кеширования сильно зависит от контекста. Тем не менее, я нашел для своих последних функциональных требований, что кэширование модели представления для конкретного экрана контроллера и только кэширование ссылочных данных, возвращаемых API-интерфейсами, позволяет мне достаточно логично поддерживать логику приложения, предоставляя пользователю некоторую непрерывность. Простое уведомление об ошибках для проблем с подключением может быть рассмотрено сквозным образом.

III. Одна из соображений архитектуры, относящаяся к этому аспекту, заключается в том, чтобы гарантировать, что API-интерфейсы приложения зависят от предоставления данных в соответствии с опытом приложения. Это позволяет вашему приложению сосредоточиться на том, что хорошо (очень тонкий пользовательский опыт) и переводит логику в API ближе к зависимостям API, таким как данные. Это имеет еще одно преимущество для снижения популярности приложения.