Переход с RestKit на чистый AFNetworking 2.0

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

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

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

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

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

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


person yariksmirnov    schedule 10.04.2014    source источник
comment
Если вы работаете с JSON, AFNetworking + Mantle — хорошая комбинация.   -  person David Snabel-Caunt    schedule 11.04.2014
comment
К сожалению, вы задали несколько вопросов, и они не подходят для Stack Overflow.   -  person David Snabel-Caunt    schedule 11.04.2014
comment
Спасибо за мантию. Почему они не подходят? Я думал, что здесь можно обсудить все темы программирования. На мой вопрос нет одного ответа, но, возможно, люди захотят поделиться своими мыслями по этому поводу.   -  person yariksmirnov    schedule 11.04.2014


Ответы (1)


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

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

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

person user1307434    schedule 31.10.2014