Как лучше написать гибридное приложение для iPhone?

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

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

1 ответ

Решение

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

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

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

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

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

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

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

Другие вопросы по тегам