Какой тип webservice лучше всего работает с iOS?

Я собираюсь создать внутреннее приложение для iPhone и iPad, которое будет отслеживать звонки продаж, связанные с ними кавычки, фотографии и рисунки для этих котировок. Я все еще на стадии разработки концепции, и я пытаюсь прочитать различные способы связи между моим приложением и веб-сервисом. Очевидно, так как это будет использоваться в основном по 3G или … Edge Я хочу эффективный протокол, поэтому моя реакция на кишок должна держаться подальше от XML-подобных вещей, таких как XML-RPC или SOAP. Я хотел бы использовать PHP и MySQL на сервере и планировать использование Core Data в iOS.

Поэтому у меня есть пара конкретных вопросов:

  1. Какую схему я должен использовать для производительности?
  2. Какую схему я должен использовать для удобства работы с сервером?
  3. Какую схему я должен использовать для удобства работы с iOS?
  4. Какую схему я должен использовать, рассматривая проект в целом?
  5. Является ли использование схемы на основе XML лучше, несмотря на сетевые издержки? Зачем?

2 Solutions collect form web for “Какой тип webservice лучше всего работает с iOS?”

Учитывая то, как вы задали несколько вопросов, вы, вероятно, понимаете, что конечное решение, которое вы используете, будет балансирующим действием между конкурирующими целями.

1: Вам нужно определить «производительность» лучше. Я предполагаю, что вы имеете в виду время передачи по сети, что означает, что время ожидания сервера низкое и количество байтов, переданных на низком уровне. Конечным является, вероятно, собственный протокол бинарных проводов, который также анализируется на сжатие и сжатие, применяемые там, где это необходимо (например, повторяющиеся строки или последовательности). Недостатком такого протокола является то, что, скорее всего, будет сложнее кодировать как сервер, так и клиент, поскольку вы не сможете использовать поддержку SDK для стандартизованных кодировок, и если тщательно продуманные двоичные протоколы не будут хрупкими для поддержки будущих изменений и расширения вашего приложения.

Также вы должны подумать о том, как вы определяете транзакции своего протокола, даже с эффективной кодировкой, если ваш протокол требует много поездок в оба конца по сравнению с одной поездкой в ​​оба конца, вы все равно будете медленными.

Наконец, в зависимости от размера отправляемых данных накладные расходы на кодирование могут быть несущественными по сравнению с размером данных.

Я рекомендую придерживаться стандартизованного формата кодирования, который может быть проанализирован с поддержкой библиотеки, который сужает поле до двух основных грамматик: XML или JSON.

2: XML и JSON хорошо поддерживаются в серверных средах. При использовании служб XML я рекомендую шаблон стиля REST, поскольку их обычно легко создавать, и вам не нужно соответствовать вашему приложению в чужом стиле.

Я бы держался подальше от веб-сервисов на основе SOAP, хотя их создание может быть хорошо поддержано (особенно на платформах Windows), потому что сложность полного анализа SOAP на мобильном клиенте высока и не поддерживается. Я не нахожу автоматически сгенерированную сериализацию объектов компиляторами WSDL, чтобы выиграть для экономии времени при кодировании, обычно довольно легко сериализовать XML в стиле REST или часто даже проще для JSON.

3: iOS поддерживает встроенный XML-парсер SAX в стиле SAX, и существует множество доступных библиотек классов, которые поддерживают реализации DOM в памяти с различными функциями и уровнями скорости. Выберите лучшее для ваших нужд. Я лично предпочитаю TBXML, который является быстрым, довольно легким и простым в программировании, но поскольку он не проверяет схемы и является деревом в памяти, в некоторых ситуациях он не подходит. Вот перерыв в производительности библиотеки XML iOS.

Для iOS доступно несколько JSON-библиотек, если вы используете Google. Или посмотрите в этом ответе .

SOAP поддерживается не очень хорошо, и есть ограниченный выбор библиотеки. Вы всегда можете вручную разобрать ответы SOAP, сгенерированные сервером, но они хрупки для изменений на стороне сервера, которые являются законными SOAP (например, префиксы разных пространств имен), которые могут сломать жесткий код XML-кода.

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

JSON имеет преимущества быть немного проще в анализе, может быть менее многословным, а также может быть проще повторной задачей для других целей, например, создание веб-клиента Ajax поверх ваших услуг.

5: XML против JSON против других кодировок? Я думаю, что это личное предпочтение. XML может быть более самоописательным, чем JSON, но, скорее всего, будет больше работать для разбора. JSON может быть ниже накладных расходов в сырых байтах и ​​легко анализируется. Опять же, служебные данные кодирования могут быть значительными или могут быть незначительными в зависимости от размера вашего контента. Также вы можете применить внешнее сжатие в любом случае.

UPDATE: iOS5 теперь включает встроенную поддержку JSON с новым классом NSJSONSerialization . Вы можете прочитать учебник по использованию JSON с iOS5 здесь:

http://www.raywenderlich.com/5492/working-with-json-in-ios-5

  • Различия между веб-сайтами и длительным опросом для пошагового игрового сервера
  • Удалить / переместить строку UITableView, прикрепленную к веб-службе
  • Могу ли я назвать веб-сервис FireMonkey для iOS?
  • Автоматическое заполнение текста при ответе на вызов веб-службы
  • Не удалось передать значение типа «__NSArrayM» (0x34df0900) в «NSDictionary» SWIFT
  • AFNetworking 2.0 Вопрос POST | замена устаревшего multipartFormRequestWithMethod: путь: параметры
  • Приложение Orcale MAF iOS отклонено Apple - сетевая совместимость с IPV6
  • Как заставить webservice пропускать ошибки через соединение NSURLConnection: didFailWithError :?
  • Как правильно реализовать класс Services в моем приложении iOS?
  • Как сгенерировать и отправить сертификат в ios на веб-службу через NSURLConnection
  • Идеальный способ вытащить данные (JSON) из службы с помощью Monotouch и iOS?
  • Interesting Posts

    iPhone – правильный способ получения текущей даты и времени для данного места / часового пояса и сравнить его с другой датой / временем в одном и том же месте

    Фильтр NSPredicate by letter

    Подсказка пользователю дать пятизвездочный рейтинг

    Как я могу программным образом загружать собственное потребление батареи приложения iOS?

    Передача данных из контроллера просмотра в дочерний контроллер в Swift

    Что значит «API NSURLSession отличается высокой асинхронностью»?

    Пользовательский Push Segue удаляет панель навигации и панель вкладок в доске объявлений

    Есть ли в iOS библиотеки для идентификации фонетически одинакового звука

    Как сообщить ABPeoplePickerNavigationController список только контактов, у которых есть адрес электронной почты?

    Передача переменных в xcode возвращает null

    Как проверить URL-адрес на iPhone

    UITableView heightForHeaderInSection не работает

    AVMutableComposition поворачивает видео

    Позиция HTML-элемента внутри WKWebView

    Невозможно установить действие для UITabbarItem Programmatically

    PhoneC: Разработка iOS проста с помощью XCode, Swift3, UITableView, cocatouch, давайте создадим приложения для iPhone, iPad и Macbook.