Yahoo готовит платформу для создания универсальных мобильных приложений
Компания Yahoo работает над созданием универсального инструментария для разработки переносимых мобильных приложений, которые смогут работать на всех популярных мобильных платформах. Для распространения подобных программ планируется подготовить специальных облачный сервис. Основной акцент в платформе Yahoo делается на средствах доставки контента на устройства пользователей, упрощая организацию взаимодействия между создателями контента и потребителями.
Разрабатываемая в Yahoo система позволит создавать приложения с использованием web-технологий: будет подготовлен набор компонентов на базе JavaScript, HTML5 и CSS3, которые смогут выполнять задачи по обработке данных и формированию интерфейса в мобильных приложениях для любых операционных систем, проповедуя принцип "написано один раз, работает везде". Постепенно развиваемый инструментарий планируется перевести в категорию открытых проектов.
Первым через несколько недель планируется открыть код фреймворка Mojito, предназначенного для организации работы гибридных модулей-виджетов (mojit), которые без изменений могут выполняться как на сервере (используется Node.js), так и в браузере. Например, mojit-приложение может начать выполняться на сервере, а по мере загрузки необходимых компонентов клиенту, продолжить работу внутри браузера, не заставляя пользователя ждать пока завершится загрузка контента, необходимого для локальной работы web-приложения. При этом на сервере и в браузере может выполняться один и тот же код, но во время работы кода на сервере клиенту лишь транслируется внешний вид страницы. Таким образом при выполнении mojit-приложений web-интерфейс сразу доступен и прозрачен для пользователя, независимо от того как много данных требуется для работы приложения и насколько высока пропускная способность текущего сетевого соединения.
Вторым звеном является Chromeless Web Runtime, который содержит минимальные браузерные компоненты, необходимые для выполнения web-приложения - без дополнительных управляющих элементов и вспомогательных систем. Иными словами, это окружение для обеспечения запуска web-приложений в обособленном режиме, как обычных программ. Например, при помощи Chromeless Web Runtime для целевой платформы может быть сформирован самодостаточный пакет, при запуске которого пользователь будет взаимодействовать с обычным на первый взгляд мобильным приложением, не догадываясь о том, что работает по сути с web-приложением в сильно урезанном web-браузере. При нехватке ресурсов локальной системы, например, если мало памяти или программа работает медленно, использование Mojito позволяет организовать перенос выполнения текущего web-приложения на сервер.
Третьим компонентом является проект Manhattan, в рамках которого будет создан приватный облачный сервис, который можно будет развернуть на своих мощностях. Manhattan берёт на себя задачу обеспечения серверного выполнения mojit-приложений. В основе Manhattan лежит серверная JavaScript-платформа Node.js, дополненная такими средствами как система изоляции сбоев, компоненты для обеспечения безопасности и аутентификации пользователей. В простейшем случае для запуска Mojito достаточно специально настроенного Node.js.
Таким образом, если какой-то издатель захочет создать для доступа к контенту своего сайта мобильное приложение, ему достаточно создать на языке JavaScript универсальное mojit-приложение с использованием библиотеки виджетов, организовать процесс доступа к контенту и оформить, воспользовавшись Chromeless Web Runtime, готовые мобильные приложения для различных мобильных платформ (Android, iOS и т.п.). Для организации регистрации и подписки, издатель может задействовать как собственную базу пользователей, так и привязать приложение к аккаунтам в Yahoo.
В настоящее время наблюдается большая фрагментация средств разработки для мобильных систем: для iOS программы пишутся на Objective-C, для Android на Java, для Windows Phone на C#. Существующие проекты создания универсальных фреймворков, такие как PhoneGap, Appcelerator Titanium, Kinoma, The-M-Project, Rhodes и MoSync, не получили широкого распространения и остаются нишевыми продуктами. Платформа Yahoo с технической точки зрения не выделяется от ранее выпускаемых аналогичных систем, но в отличие от аналогов у Yahoo имеются значительные ресурсы для продвижения и популяризации своей платформы. Существенную конкуренцию продукту Yahoo может оказать продвигаемый компанией Hewlett-Packard открытый фреймворк Enyo, выполняющий сходные задачи. Кроме того, web-технологии для создания мобильных приложений предлагают использовать такие проекты, как Tizen, Mozilla B2G и Bada, при этом Mozilla работает над стандартизацией Web API для мобильных приложений.