понедельник, 29 апреля 2013 г.

Об использовании HTML5 в мобильных приложениях

Давайте рассмотрим вопрос создания нативных приложений для мобильных платформ и тех преимуществ которые мы получаем используя для подобных задач HTML5. 
Небезызвестный Марк Цукерберг как то сказал что ограничиваясь только лишь HTML5 - это не совсем хороший вариант, несмотря на то что его компания поступила именно так в недалеком прошлом. Поэтому доверять его словам на сто процентов тоже не стоит. 
HTML5 обрел популярность среди разработчиков благодаря тому что многие из них уже знакомы с HTML, CSS и Javascript. 
Основной вопрос  затрагиваемый в нашей статье это вопрос создания так называемого "единого пользовательского интерфейса" способного работать на любом устройстве для выполнения любого сценария. 
Еще одним конкурентным перимуществом HTML5 является простота (по сравнению со старым HTML) обновления веб приложения, которая не требует от пользователя какой то принудительной загрузки или установки физических обновлений на свои устройства; как бы это могло быть в случае с нормальным "классическим" приложением которое установлено на смартфон, планшет или какой то еще девайс. 
Поскольку нативные приложения как правило выполняются в основном в оффлайн режиме без необходимости наличия интернет соединения, процесс портирования таких приложений на другие устойства и платформы может быть не всегда простой и быстрой задачей, HTML5 здесь бы справился значительно лучше. 
Но у HTML5 также есть и свои недостатки. 

Взаимозависимость, нюансы и проблемы фрагментации 
Является ли HTML5 единым пользовательским интерфейсом во всех случаях использования через браузер? Нет не совсем, HTML5 приложения могут отображатся и работать по разному в зависимости от используемого браузера и платформы устройства, здесь столько всяких взаимозависимостей, нюансов и проблем фрагментации, что ставить под вопрос реальность идеологии "одно и тоже приложения на любой платформе - во всяком случае пока. 
HTML5 также подвергается критике за более бедный по сравнению с нативными платформами набор элементов и возможностей пользовательского интерфейса. 
Также существуют вопросы по поводу отсутствия HTML5 API и невозможности использования HTML5 на более старых платформах, которые не поддерживают HTML5. 
Продолжая далее разговор о недостатках HTML5 можно выделить отсутствие поддержки требуемого уровня DRM (Digital Rights Management) который просто обязан присутствовать во всем мультимедиа сервисах. 
Поддержка фоновых вычислений и общей безопасности хранения данных также находится под вопросом. 
Если руководствоваться основными законами физики, то выполнения HTML5 приложения (на данном этапе) также логически отстает в производительности и масштабности от родного приложения, которое максимально использует все возможные ресурсы устройства таких как камера, акселерометр, гироскоп, GPS , микрофон, календарь и т. д. 
Необходимо помнить что в данный момент все еще сравнительно рано сравнивать платформу HTML5 и нативные приложения. Первая еще до сих пор находятся на стадии формирования и компромис  "Native или HTML5" еще можно расматривать только лишь на абстрактном уровне. То есть, разработчик может использовать нативные приложения и пытаться лишь некоторые его элементы, которые связаны с Web реализовать на HTML5 - только в этом случае можно как то извлекечь выгоду из новой платформы. 
Также я верю в то что имеют место быть так называемые гибридные приложения, в которых нативные код используется в качестве внешней оболочки HTML5. 

И полемика о таких решениях еще только начинается.

Идея статьи взята отсюда:
http://www.computerweekly.com/blogs/cwdn/2013/03/the-future-for-html5-is-hybrid-native-mobile-apps.html