Когда программист начинает работать над мобильным приложением, то один из первых вопросов, который у него возникает, — это выбор между нативной и веб-технологией разработки.
Хотя язык Objective-C является ключевым при разработке приложений для iOS, так же как Java для Android и BlackBerry, а C# и инструменты Visual Studio для Windows Phone, возможность разрабатывать приложения на основе стандартизированных веб-технологий побуждает многих разработчиков расценивать веб-программирование как приоритетную опцию. HTML5 и JavaScript изменили правила игры.
Аналитическое агентство Forrester Research в январе 2012 г. выпустило на эту тему отчет под названием “Building Mobile Apps? Start With Web; Move to Hybrid” (“Разработка мобильных приложений? Начните с веб-инструментов и переходите к гибридной разработке”). В нём определены даже не два вида разработки (нативная и веб), а четыре: нативная, гибридная (нативный код с HTML и JavaScript), разработка на основе мобильных платформ и промежуточного ПО и наконец разработка на основе “чистых” веб-технологий при помощи HTML5 и JavaScript.
“Не думаю, что в споре между нативными и веб-технологиями при разработке приложений будет выявлен конкретный победитель, но различные типы нагрузок обусловят использование первой или второй технологии в разных ситуациях, — рассказал eWeek ведущий автор отчета Forrester Джеффри Хеммонд. — Мне до сих пор кажется, что большинство приложений для клиентов написаны на основе нативного кода, в то время как многие корпоративные приложения для сотрудников основаны на гибридном подходе к разработке или использовании промежуточного ПО. Аналогично этому приложения для работы устройства в основном созданы с использованием нативного кода, а мультиканальные сервисы (например, контентные и социальные) все чаще используют веб-разработку или гибридный подход”.
“Если граница между нативной и веб-разработкой быстро стирается, то приложения, имеющие общую, основанную на веб-стандартах базу программного кода, представляют собой естественный и привлекательный вариант, — отметил Дилан Шиман, глава компании SitePen и соразработчик Dojo Toolkit, библиотеки инструментов программирования на JavaScript. — Для меня совсем не удобна идея разработки приложений для каждой нативной платформы, а также веб-приложений для персональных компьютеров, которые основаны на различных технологиях, особенно теперь, когда у нас есть HTML5 и открытые веб-технологии для создания отличных функциональных мобильных приложений, например Dojo Mobile, Wink Toolkit, Maqetta, PhoneGap. Четко отделяя данные от средств взаимодействия с пользователем, можно еще эффективней разрабатывать приложения для платформ настоящего и будущего”.
С одной стороны, при использовании нативного кода последний исполняется быстрее по сравнению с JavaScript. Однако портирование веб-приложений на различные платформы не в пример дешевле, чем в случае с нативными приложениями. Кроме того, веб-приложения легко можно модифицировать и они предоставляют разработчикам более высокую степень контроля над контентом.
Да и найти опытных веб-разработчиков намного проще, чем разработчиков нативных приложений. Более того, аналитики из Forrester указывают, что стандартизированные веб-технологии менее подвержены риску нарушения интеллектуальной собственности и не становятся объектами патентных исков в такой степени, как приложения с нативным кодом.
Продвижение веб-технологии
Вероятно, наиболее свежий пример того, как крупный игрок рынка продвигает веб-разработку мобильных приложений, — это компания Mozilla, объявившая в ходе Международного мобильного конгресса в Барселоне в феврале нынешнего года об открытии сервиса Mozilla Marketplace для разработчиков веб-приложений. Будучи основанным на открытых веб-технологиях вроде HTML5 и предложенных Mozilla программных протоколов, каталог приложений Mozilla Marketplace позволяет создавать приложения, совместимые с различными устройствами и платформами. Компания Mozilla, исповедующая философию открытого Интернета и стремящаяся обеспечить контроль самих пользователей над Интернетом, предоставляет им возможность использовать однажды приобретенное приложение на любом устройстве с поддержкой HTML5.
“Мы рассматриваем Интернет как рынок и даем разработчикам шанс играть на самом масштабном поле, — утверждает Тодд Симсон, руководитель направления инновационных разработок в Mozilla. — Наша компания обеспечивает недостающие части в этой концепции, что раскрывает возможный потенциал Сети как платформы для создания и потребления контента в любом месте земного шара”.
Кроме того, представители Mozilla утверждают, что сервис работает на смартфонах, которые будут запускать приложения в своем браузере. Эта инициатива связана с проектом Boot to Gecko, в рамках которого компания преследует цель создать мобильную операционную систему на основе веб-технологии. Её план состоит в том, чтобы разработчики, использующие стандартные веб-технологии типа JavaScript и HTML5, имели все средства, позволяющие создавать приложения для смартфона на платформе Mozilla.
Однако Хеммонд из Forrester в отношении этих планов сказал: “Они собираются бороться за место под солнцем на очень насыщенном рынке, и я не уверен, добьются ли они успеха”.
В то же время, по словам Шимана из SitePen, учитывая продолжающуюся в Mozilla разработку мобильной ОС, можно сказать, что лучший вариант для разработчиков — это обширный выбор инструментов от чисто нативных до гибридных и веб-решений. Он также добавил: “Имея такой разноплановый набор средств программирования, разработчики должны сделать свой выбор и решить, какие технологии будут наиболее эффективными при создании высококачественных приложений и ресурсов для пользователей, а также для поддержания функционирования сервисов и приложений сегодня и в будущем”.
HTML5: в планах разработчиков
Между тем создаётся впечатление, что язык HTML5 занимает умы всех разработчиков мира. Исследование, проведенное компанией Evans Data среди более 1200 разработчиков в ноябре и декабре 2011 г., показало высокий уровень использования HTML5: 43% в Северной Америке, 39% в регионе EMEA (Европа, Ближний Восток и Африка) и аж 58% в Азиатско-Тихоокеанском регионе. С учётом респондентов, указавших, что уже планируют использовать этот язык, доля тех, кто использует HTML5, составляет более 75% от общего количества разработчиков в этих регионах.
“Повсеместное активное использование HTML5 не вызывает сомнений, де-факто это уже стало стандартом, — отметил Джанел Гарвин, глава Evans Data. — HTML5 имеет сильные преимущества для мобильных и кроссплатформенных приложений, а отрасль клиентских устройств развивается именно в этом направлении, так что этот язык очень привлекателен для многих разработчиков мира”.
В ходе исследования тенденций разработки в четвертом квартале 2011 г., проведённого компанией Appcelerator, 66% опрошенных программистов заявили о желании разрабатывать мобильные веб-сайты на основе HTML5. Фирма Appcelerator предлагает мобильную платформу, предоставляющую интегрированные решения для нативных, гибридных и веб-приложений на основе HTML5.
Среди крупных ИТ-вендоров Adobe и Microsoft продвигают HTML5 наиболее агрессивно. Компания Adobe приобрела Nitobi — создателя платформы приложений PhoneGap на базе HTML5, которая ускорит развитие стратегии веб-стандартов и будет работать параллельно со стратегией Adobe в направлении инноваций платформ Flash и Adobe AIR.
Денни Винокур, вице-президент и генеральный менеджер развития интерактивных технологий в Adobe, в своем блоге 9 ноября заявил: “HTML5 поддерживается распространенными мобильными устройствами, в некоторых случаях эксклюзивно. В результате этот язык видится лучшим решением для создания и развертывания контента в браузере на многих мобильных платформах. Это радостный факт, и мы продолжим работать с ключевыми членами сообщества HTML, включая Google, Apple, Microsoft и RIM, чтобы и дальше развивать инновационные характеристики HTML5 для применения в мобильных браузерах”.
Уолтер Лю, глава и один из создателей Ansca и бывший ведущий разработчик Flash Lite в Adobe, заявил eWeek: “Совершенно ясно, что Adobe в течение некоторого времени теряла хватку в области мобильных технологий. Flash приняли холодно. Компании надо было что-то делать. И этим “что-то” стал HTML5.”
Microsoft поддерживает PhoneGap
Компания Microsoft, развивающая стратегию разработки для Windows Phone, также поддерживает PhoneGap и HTML5 в сфере мобильных разработок. PhoneGap является платформой на HTML5, которая позволяет разработчикам писать нативные приложения с использованием веб-технологий и получать доступ к протоколам API и магазинам приложений.
Жан-Кристоф Симетье, старший технический стратег в области интероперабельности в команде Windows Phone в Microsoft, в сентябре написал в своем блоге: “Мы очень рады совместно с Nitobi объявить о доступности бета-версии PhoneGap с поддержкой ОС Windows Phone Mango. Новая опция для написания приложений для Windows Phone предоставляет более широкий выбор. В частности, веб-программисты могут использовать навыки работы с HTML5 для разработки решений на Windows Phone”.
Microsoft стремится обеспечить разработчикам платформу, которая позволит им воспользоваться имеющимися навыками и технологиями для быстрого создания приложений. Корпорация продолжает следовать этой стратегии, и в скором времени платформа разработки получит дальнейшее развитие и станет известна как Windows Phone Runtime, заявили в Microsoft.
В ходе подготовки этой статьи представители Microsoft давили редакции eWeek следующий комментарий: “Microsoft активно развивает компоненты, из которых будут состоять решения на базе Silverlight и HTML5. Эти технологии активно инвестируются”.
Однако HTML5 не будет единственным решением для разработки клиентских приложений на основе платформы Microsoft. В случае Windows Phone поддержка HTML5 будет доступна на телефонах с Internet Explorer 9, но платформа разработки приложений для Windows Phone позволяет разработчикам создавать реалистичные и инновационные приложения и игры, которые запускаются локально.
В дополнение к заявлению касательно Nitobi PhoneGap можно упомянуть компанию Sencha, которая является еще одним поставщиком сред и инструментов разработки на HTML5. “Наша продукция способствовала росту интереса к HTML5, так как мы впервые предоставляем разработчикам возможность использовать развивающиеся технологии HTML5 и создавать функциональные веб-приложения, стирающие грань между нативными и веб-приложениями”, — отметил глава Sencha Майкл Муллани.
Флагманом продуктового портфеля компании является инструмент для разработки приложений на основе touch-технологий — Sencha Touch.
“Решение Sencha Touch было создано с нуля, чтобы использовать возможности HTML5, CSS3 [Cascading Style Sheets] и JavaScript при создании сложных веб-приложений, которые с самого начала выглядят и функционируют как нативные”, — подчеркнул Крейг Уокер, технический директор Xero, производителя онлайнового программного обеспечения для ведения бухгалтерской отчетности. — Используя расширенный набор виджетов, видов и анимации пользовательского интерфейса, мы сразу можем вводить в эксплуатацию новый функционал и не беспокоиться о том, какая архитектура лежит в основе приложений. При этом мы смогли воспользоваться преимуществами веб-технологий и навыками работы с ними”.