Фокус сместился с WebApps на Native, когда App Store был представлен с выходом iPhone 3G с iOS 2.0.1, который был представлен 9 июня 2008 года на WWDC.
Изначально веб-приложения предназначались для использования с первым iphone, но основной сдвиг произошел с выпуском специального программного обеспечения для iOS (или iPhone OS, как его называли тогда), анонсированного 6 марта на мероприятии iPhone Software Roadmap, 2008. SDK позволяет разработчикам создавать приложения с использованием Xcode, которые будут изначально работать на iPhone, iPod Touch и iPad. Даже до этого включенные приложения были написаны изначально, несмотря на то, что Стив Джобс однажды заметил:
Полный движок Safari находится внутри iPhone. И так, вы можете написать удивительный веб
Приложения 2.0 и Ajax, которые выглядят точно и ведут себя точно
как приложения на iPhone. И эти приложения могут прекрасно интегрироваться с
услуги iPhone. Они могут позвонить, они могут отправить электронное письмо, они
можно найти местоположение на Google Maps.
И угадай что? Там нет SDK, что вам нужно! У вас есть все, что вам нужно
если вы знаете, как писать приложения, используя наиболее
современные веб-стандарты для написания удивительных приложений для iPhone сегодня. Так
разработчики, мы думаем, у нас есть очень приятная история для вас. Вы можете
начните создавать свои приложения для iPhone сегодня.
Разница столь же проста, как и разница между «интерпретированными» и «скомпилированными» приложениями.
Нативные приложения написаны с использованием языков более низкого уровня (Objective C, C, C ++ с использованием среды разработки Xcode) и скомпилированы с API-интерфейсами, которые предназначены для извлечения максимальной скорости и эффективности с использованием алгоритмов и функций, которые написаны специально для оборудования, для которого они предназначены. запускать на. Компиляция кода в непосредственно исполняемый машинный код почти всегда является самым быстрым способом выполнения для данной программной задачи.
WebApps - это общие не скомпилированные фрагменты кода, которые не могут использовать эти API и должны либо воссоздавать их, либо не использовать их. Они написаны на языках более низкого уровня, таких как Javascript, Python или Perl, и интерпретируются через среду выполнения на этапе выполнения, что обеспечивает определенную гибкость за счет необработанной скорости. Функция прокрутки является одним из примеров того, где собственное приложение имеет доступ к высокооптимизированным подпрограммам, позволяющим осуществлять суперскользкую прокрутку, но веб-приложение этого не делает, потому что оно не знает или не имеет доступа к соответствующим API. Многие веб-приложения компилируются на лету с использованием методов компиляции «вовремя», но, хотя это может привести к некоторым улучшениям скорости, оно не может удовлетворить отсутствие надлежащей оптимизированной платформы API на языке более высокого уровня, чем Javascript (который является единственным среда выполнения на стороне клиента, которую фактически поддерживает iOS, хотя другие ОС, мобильные и настольные компьютеры могут иметь доступ к другим), в которые записаны веб-приложения iOS. Другие среды выполнения доступны для использования, если они выполняют на стороне сервера, что обеспечивает дальнейшее снижение производительности.
В конкретном случае Twitter приложение для твиттера просто не использует webkit, оно использует другие подпрограммы, написанные на цели C, которые снова (ключевое слово, я полагаю) оптимизированы для достижения наилучших результатов, чего не может достичь ни один браузер. Как ни странно, я думаю, что Facebook родное приложение является на самом деле это тонко завуалированная оболочка вокруг веб-интерфейса.