Приложение клиент-сервер для iPhone - PullRequest
3 голосов
/ 14 июля 2009

Мне нужно создать клиент-серверное приложение для iphone. Хотите сохранить базу данных на сервере и сохранить ее на iphone клиента. Какую стратегию и какие базы данных и инструменты я должен использовать для этого? КАК моя база данных может быть достаточно тяжелой

Ответы [ 5 ]

2 голосов
/ 31 июля 2011

Для сохранения на сервере вы можете попробовать Parse: http://www.parse.com, кажется, что они имеют простую систему хранения данных (без настройки каких-либо серверов).

Кроме тогоВы можете сохранить данные локально в виде plist-файлов.Вот довольно хорошее краткое изложение различных типов опций хранения: http://doganberktas.com/2010/10/16/data-storage-alternatives-on-ios-in-a-nutshell/

Если вы хотите просто, вы должны просто сохранить данные в списке, предпочтительно используя протокол NSCoding, который позволитВы легко можете хранить произвольные объекты.

2 голосов
/ 14 июля 2009

Это легко. Если вы контролируете обе части системы.

Волшебное слово здесь - PLIST.

У IBM отличный пример с исходным проектом для iPhone и развернутым рабочим механизмом приложения Google. http://www.ibm.com/developerworks/web/library/wa-aj-iphone/

Вот некоторый ультра базовый код.

// SaveOnline.

NSMutableArray *myArray = [NSMutableArray arrayWithObjects:@"one",@"two",nil];
NSURL *url = [NSURL URLWithString:@"http://www.hurl.ws/api/"];
ok = [myArray writeToURL:url atomically:NO];
if(ok) NSLog(@"saved worked");

Вы также можете загрузить этот PLIST из URL-адреса и довольно легко загрузить его обратно в ваш объект. Вся система PLIST очень крутая. Это немного многословно, но я бы не стал беспокоиться об этом, поскольку он очень гибкий и в конечном итоге сэкономит вам час и часы отладки.

Я также заметил, что на сервере есть много библиотек для преобразования PLIST в нативные объекты для PHP, Python и предполагается, что вы можете найти библиотеки для Java или .Net.

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

PLIST - ты друг, так что пользуйся ими. Джон.

0 голосов
/ 27 июля 2009

bpapa вы заметили, что "приложение может связываться с этим сервером через HTTP, используя XML", я предполагаю, что вы имеете в виду веб-сервисы?

Я спрашиваю, потому что я пытаюсь демистифицировать получение данных с iPhone в хранилище данных, например, предоставленное Google App Engine, и обратно.

Спасибо //:)

P.S.) Более того, Google предлагает отличное решение для создания масштабируемого хранилища данных без больших капиталовложений. Я смотрю на это, Amazon Web Services и Windows Azure. Похоже, что если у вас нет сильной зависимости или сильных способностей в .net, решение Google имеет смысл.

0 голосов
/ 14 июля 2009

База данных, которую вы используете на стороне сервера, не имеет значения, это просто черный ящик для приложения iPhone. Приложение может связываться с этим сервером через HTTP с использованием XML или PLIST или JSON, как рекомендуют Джон и Даниэль.

Что касается самого простого, просто выберите язык, который вы уже знаете. Думаю, проще всего запустить его на чем-то похожем на движок приложений Google.

0 голосов
/ 14 июля 2009

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...