2010-01-21 4 views
-2

Я работаю над приложением для бизнеса, который по сути является каталогом. У клиента есть веб-сайт, который использует базу данных MySQL, но он не хочет, чтобы это приложение использовалось. Его сайт предлагает RSS-каналы, но я не думаю, что это было бы хорошей идеей. Предполагается, что приложение будет доступно для поиска на основе ряда (необязательных) факторов и отображает детали каждого элемента при его выборе.Хорошая альтернатива доступу SQL на iPhone

Почему-то я не думаю, что RSS - это путь, но как его убедить? Есть ли альтернативный способ, который будет работать? Каталог часто обновляется, и это означает, что загрузка обновлений будет необходима. Должен ли я попытаться убедить его разрешить доступ только для чтения?

Предполагая, что я использую RSS, что будет лучшим графиком обновления? Как искать работу? Я запутался ...

Пожалуйста, обратите внимание:

[Мысли вслух здесь ...]

{Я новичок в разработке iPhone, это был моим первым приложением. Я занимался веб-сайтами в течение 6 лет, и я знаю HTML, JS, CSS, PHP, MySQL и Visual Basic 2008. Я занимался на языках рабочего стола (C, C++, Java), и теперь я изучаю Objective C, когда работаю. }

EDIT:

Я не знаком с JSON. Ссылки на учебники?

ответ

4

RSS - это не тот ответ, который вы ищете. RSS не подходит для произвольных структурированных данных, он построен вокруг синдикации веб-контента.

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

  • «получить категорию иерархию» - будет запрашивать базу данных для категории структуры и вернуть обратно в приложение
  • «получить товар в категории» - возвращает данные товара по определенной категории
  • «поиск» - будет принимать набор параметров, выполнять поиск в базе данных и возвращать соответствующий набор пункты

Я бы использовал JSON в качестве своих данных так как это намного проще, чем иметь дело с XML.

+0

Я второй предлагаю JSON. В дополнение к возможности легко перемещать данные вперед и назад, если ваш локальный репозиторий (если он у вас есть) структурирован правильно, вы можете легко удалить данные JSON прямо в него. Например, переход от JSON к Core Data тривиален. –

2

Какова общая база данных? Насколько велики обновления RSS? Доступен ли весь каталог через этот поток RSS? Должно ли приложение работать без подключения к Интернету? Ответы здесь, скорее всего, помогут вам принять решение.

Я, конечно же, не буду защищать прямой доступ к MySQL. Это большой риск для безопасности, и он зависит от реализации. Например, ваш клиент не мог выполнить редизайн базы данных, не нарушая при этом приложения iPhone.

Если у вас есть доступ к веб-сайту (или вы можете убедить клиента), возможно, хорошим решением будет использование ваших сильных сторон и предоставление интерфейса RESTful для SQL через Интернет. Тогда ваше приложение для iPhone может просто быть парсером и интерфейсом JSON или XML (или любого другого). Вам не нужно беспокоиться о резервном магазине или поиске на iPhone; все это будет сделано на стороне сервера.

Возможно, вы можете использовать RSS, но я полагаю, что только меняются, выталкиваются через поток. Вам нужно будет сохранить копию базы данных на телефоне и использовать RSS для обновления. Тем не менее, у вас будет очень трудное время с первой синхронизацией (поскольку предварительно заполненные данные могут быть довольно устаревшими), а затем любая синхронизация после долгой задержки, поскольку не все изменения могут быть доступны больше. Вероятно, вам придется разрешить загрузку всей базы данных через некоторый вторичный механизм. И если он действительно большой, ни пользователи, ни хозяин не будут слишком довольны этим. Более того, эвристика синхронизации будет сложной.