ASIHTTPRequest vs AFNetworking framework
Я собираюсь разработать приложение для iPad,и в нем есть огромное количество фоновых сетевых вызовов.
Я хотел бы знать, какой из них будет лучше? ASIHTTPRequest все еще работает, но не поддерживается. Однако немногие источники говорят, что AFNetworking framework создает много сложностей.
2 ответа:
Обновление (Сентябрь 2013)
Прошло почти два года с тех пор, как я впервые написал этот ответ, и многое изменилось.AFNetworking
вот - вот войдет в версию 2.0 и имеет процветающее сообщество разработчиков, в то время какASIHTTPRequest
практически мертв. Кроме того,AFNetworking
имеет десятки великолепных вспомогательных библиотек и классов, доступных для обработки таких вещей, как OAuth, Amazon S3 и тому подобное. Он настолько популярен, что на нем доступно несколько книг.Учитывая это, нет никакой причины вообще продолжать использовать
ASIHTTPRequest
. Мой первоначальный ответ приведен ниже, поэтому, если вам все еще интересно, читайте дальше - просто имейте в виду, что я бы сейчас рекомендовал, без сомнения, не использоватьASIHTTPRequest
и пойти с чем-то более современным (а именно,AFNetworking
, но другие варианты доступны).Оригинальный Ответ (Декабрь 2011)
Сколько у тебя времени? Вот мои мысли, хотя как субъективный вопрос я не думаю, что есть правильный или неправильный ответ.
Я возглавляю группу разработчиков, которая работает над коммерческие приложения для крупных клиентов, и некоторые из моих коллег всегда ищут новые библиотеки, которые могут сделать все проще. В настоящее время я думаю, что подавляющее большинство наших сетей использует
ASIHTTP
. Мы посмотрели наAFNetworking
около шести месяцев назад и решили в то время придерживаться того, что мы знаем. ASI существует уже некоторое время, и существует гораздо больше документации и полезных советов, доступных для него в интернете. Это солидная кодовая база, и она существует достаточно долго, чтобы получить много тяга и уважение.Тем не менее (и, надеюсь, люди, которые не согласны со всем, что я сказал выше, будут читать дальше!), Я думаю, что если вы начинаете заново, сейчас самое время перейти к чему-то другому. Даже тот разработчик АСИ так думает . Учитывая все изменения, которые произошли с iOS 5, я думаю, что современный активно поддерживаемый фреймворк, такой как
AFNetworking
(и есть другие варианты, такие как RestKit), является хорошим выбором.Теперь вы правы, говоря некоторые у людей возникают проблемы с использованием AFNetworking в своем приложении. Но точно так же быстрый google показывает многих людей, у которых были проблемы с ASI (действительными или нет)! Я думаю, что независимо от того, с какой структурой вы идете, кто-то где-то будет иметь проблемы с ней, либо из-за чего-то действительно неправильного в структуре, либо из-за своих собственных ограничений.
Итак, имея все это в виду, я думаю, что я бы нырнул в AFNetworking, и посмотреть, как вы справитесь! Одно из моих новогодних решений будет заключаться в том, чтобы перейти на новая сетевая библиотека, и я думаю, что это, вероятно, будет AFNetworking.
из комментария автора:
Небольшое обновление: мне действительно очень понравилось использовать AFNetworking, и во многих отношениях это значительно лучше (вероятно, не совсем правильное слово: "рафинированный", возможно), чем ASI. Тем не менее, вы не должны входить в него, ожидая замены "like for like", и есть определенные вещи, которые вы можете рассмотреть другие варианты (Amazon S3, который ASI поддерживает из коробка, например). Но в целом я очень доволен и нахожу его четкой, хорошо документированной библиотекой. Поэтому, если вы хотите перейти от ASI к чему-то другому, вы действительно не можете ошибиться с AFNetworking...
Https://github.com/BoydYang/BYRequest BYRequest основан на MKNetowrkKit, но он работает как ASIHttpRequest, поэтому вы можете легко перенести свой проект из ASIHttpRequest в BYRequest, а также наслаждаться ARC.