Как лучше написать гибридное приложение для iPhone?
Я разрабатываю приложение для iPhone, которое будет обращаться к файлам XML (или что-то подобное) с сервера. Я хочу преобразовать эти данные в удобный интерфейс на iPhone. С моими текущими знаниями я уже смог сделать это, загрузив файлы, проанализировав их, написав собственный код для заполнения структур данных и преобразования данных в элементы пользовательского интерфейса. Однако, поскольку я знаю, что это распространенная проблема при разработке iPhone, я склонен думать, что существует более простой метод, который может абстрагировать некоторые процессы.
Какой лучший и наиболее подходящий способ написать гибридное приложение, не изобретая колесо?
1 ответ
Есть несколько готовых абстракций, но большинство из них сосредоточены на XMLRPC, который имеет тенденцию становиться немного неуклюжим.
Ваша лучшая ставка, вероятно, написать NSXMLParserDelegate
, что достаточно просто; а затем просто создайте свой парсер, используя -initWithContentsOfURL:
, С помощью этого метода загрузка файлов XML и их анализ становятся одним шагом; и вы создаете свои структуры данных, как вы идете. Преобразование в элементы пользовательского интерфейса происходит с помощью обычных механизмов абстракции (dataSource и делегат).
Это освобождает вас от ограничений, накладываемых извне XML-схемой, но предполагает, что ваши XML-файлы относительно легки, или может быть (существенное) отставание интерфейса. Может быть целесообразно загружать XML в отдельном потоке и перезагружать интерфейс по мере того, как становится доступным больше данных (хотя и не слишком часто), особенно если файлы имеют размер более пары КиБ каждый.
Изменить: Несколько замечаний: В целом вы хотите избежать UIWebView, если вы делаете что-то даже удаленно сложное. Это не так быстро, как встроенные элементы управления, и внешний вид конечных приложений, как правило, немного отличается.
Кроме того, это звучит для меня как то, что вы хотите, более или менее XML-file => UITableView
Тип приложения или хотя бы что-то концептуально похожее. Это действительно легко построить; самая сложная часть - это выяснение формата XML, который содержит информацию, которую вы хотите, без раздувания. На самом деле, я бы порекомендовал вам начать там; просто потребитель XML и контроллер навигации; использование этого в качестве отправной точки должно позволить вам убедиться, что ваша структура нормальна и файлы не слишком большие; что приводит нас к другой проблеме с использованием UIWebView:
Вы не можете контролировать кеширование, особенно если вы обрабатываете или получаете файлы с помощью JS. Это хорошо для большинства веб-браузеров, где WebKit обычно делает правильные вещи, особенно когда сталкивается с нормальными настройками веб-сервера (ну, не фактические настройки, а практические результаты конфигурации: нормальные заголовки).
Когда вы используете собственный анализатор и систему кеширования, вы получаете большую степень контроля и множество приемов, которые вы можете использовать, чтобы гарантировать, что вы никогда не загрузите больше, чем строго необходимо.