Вы можете съесть торт и съесть его.
Вы можете легко смешивать веб-приложение и собственное приложение, используя экземпляры UIWebView
, например реализовать чувствительные к производительности части в коде Какао / Objective-C и вставлять представления WebKit частями, которые потребовали бы слишком много времени, чтобы переписать их как родные.
Вы даже можете обернуть все веб-приложение в нативный пакет, если хотите распространение в App Store - см. PhoneGap.
Вы также можете разработать чистое веб-приложение, которое не будет выглядеть так, как будто оно запущено через Safari, если пользователь добавит вашу страницу на свой домашний экран - см. jQTouch.
Недостатки:
Веб-приложения могут быть не такими быстрыми, как собственные приложения, хотя с автономной поддержкой HTML5 и расширениями, специфичными для WebKit, такими как переходы и анимация, вы можете уйти довольно далеко. Убедитесь, что вы используете события касания - Safari с задержками onclick
.
Трудно сделать так, чтобы чистое веб-приложение выглядело как полноценное нативное приложение. Например, мобильный WebKit не поддерживает position:fixed
, необходимый для репликации верхней панели навигации, а веб-представления имеют скорость прокрутки, отличную от представлений таблиц. Это поправимо, но для этого требуется тонна JavaScript.
Преимущества:
Быстрое развитие. Я действительно оценил, насколько полезен CSS / HTML для сложных макетов, когда мне приходилось реплицировать приложения в UIView
s (InterfaceBuilder подходит только для полуфиксированного макета).
Вы застрахованы от того, что Apple внезапно возненавидит и запретит что-то еще. Если они удалят ваше приложение из AppStore, вы можете предоставить пользователям доступ к нему через Интернет (Google сделал это с приложениями Voice и Latitude).
Легче переносить веб-приложения на Android и другие (WinMo, HP Pre, последние BlackBerries и т. Д.). Apple занимает первое место в мире, но доля ее умов не пропорциональна доле на рынке. Другие догоняют.
Если вы выберете родной
Вы должны делать это так, как Apple: Objective-C и Какао (вы можете делать части приложения на простом C или C ++). По этой теме есть множество руководств и книг, поэтому я не буду их здесь повторять. Просто несколько случайных советов:
Несмотря на то, что файлы plists являются родным для iPhone форматом, они не подходят для взаимодействия клиент-сервер. XML-списки связаны с большими накладными расходами даже по стандартам XML, а создание и отладка двоичных списков может оказаться сложной задачей. JSON на самом деле быстрее и обычно с ним проще работать.
Если вы извлекаете только небольшие кусочки информации, NSConnection
только усложняет ситуацию. Вы можете просто использовать [NSData dataWithContentsOfURL:]
в методе, запущенном через performSelectorInBackground:
.
Уведомления не доставляются, пока UITableView
прокручивается. Если вы хотите, чтобы изображения в таблице загружались лениво, загрузите и установите их с помощью обратных вызовов.
person
Kornel
schedule
16.05.2010