Как лучше написать гибридное приложение для iPhone? - PullRequest
0 голосов
/ 13 июля 2010

Я разрабатываю приложение для iPhone, которое будет получать доступ к файлам XML (или что-то подобное) с сервера. Я хочу преобразовать эти данные в удобный интерфейс на iPhone. С моими текущими знаниями я уже смог сделать это, загрузив файлы, проанализировав их, написав собственный код для заполнения структур данных и преобразования данных в элементы пользовательского интерфейса. Однако, поскольку я знаю, что это распространенная проблема при разработке iPhone, я склонен думать, что существует более простой метод, который может абстрагировать некоторые процессы.

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

1 Ответ

0 голосов
/ 13 июля 2010

Есть несколько готовых абстракций, но большинство из них сосредоточены на XMLRPC, который имеет тенденцию становиться немного неуклюжим.

Ваш лучший выбор - написать NSXMLParserDelegate, что достаточно просто; а затем просто создайте свой парсер, используя -initWithContentsOfURL:. С помощью этого метода загрузка файлов XML и их анализ становятся одним шагом; и вы создаете свои структуры данных, как вы идете. Преобразование в элементы пользовательского интерфейса происходит с помощью обычных механизмов абстракции (dataSource и делегат).

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

Редактировать: Несколько замечаний: В целом вы хотите избегать UIWebView, если вы делаете что-то даже удаленно сложное. Это не так быстро, как встроенные элементы управления, и внешний вид конечных приложений обычно немного невелик.

Кроме того, для меня это звучит так, как будто вы хотите более или менее приложение типа XML-file => UITableView или, по крайней мере, нечто концептуально похожее. Это действительно легко построить; самая сложная часть - это определить формат XML, который содержит информацию, которую вы хотите, не раздутый. На самом деле, я бы порекомендовал вам начать там; просто потребитель XML и контроллер навигации; использование этого в качестве отправной точки должно позволить вам убедиться, что ваша структура нормальна и файлы не слишком большие; что приводит нас к другой проблеме с использованием UIWebView:

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

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

...