В последнее время часто можно слышать доводы в пользу создания хорошо адаптированных к мобильным браузерам веб-приложений вместо отдельных нативных приложений для каждой отдельной платформы. Это снижает затраты на разработку и поддержку, существенно сокращает итерации и т.д. Но можно ли повторить в веб-приложении то качество взаимодействия, которое имеется в нативных приложениях?
Здесь имеется несколько аспектов, среди которых можно выделить возможность работы в автономном (оффлайновом) режиме, скорость работы приложения и доступ к датчикам, push-уведомлениям и другим полезным функциям устройства. Современные веб-технологии позволяют реализовать автономный режим в рамках стандартных веб-приложений.
Со скоростью работы же все несколько сложнее. Хотя интерпретация JavaScript постоянно оптимизируется разработчиками, при работе с онлайн-приложением скорость неизбежно зависит еще и от скорости соединения. В статье Андре Шарлана и Брайана Леру подробно анализируются особенности работы нативных и веб-приложений. В частности рассматривается интересный вариант, который может позволить соединить лучшее из обоих миров: специальные фреймворки позволяют исполнять приложения, написанные на HTML, CSS и JavaScript, в виде локально установленных приложений на различных мобильных платформах. Это позволяет снизить затраты на портирование приложений с одной системы на другую (как в веб-приложениях), но при этом приложение устанавливается и работает локально. Кроме того, специальный API позволяет JavaScript’у получать данные от датчиков телефонов.
Подробнее об этом и других аспектах разработки и реализации пользовательского опыта на мобильных платформах читайте в статье, опубликованной в журнале ACM Queue. Электронные выпуски журнала находятся в бесплатном доступе.
Mobile Application Development: Web vs. Native