habrahabr

Представляем Intel XDK – инструмент кросс-платформенной разработки для мобильных устройств

  • вторник, 6 мая 2014 г. в 03:10:30
http://habrahabr.ru/company/intel/blog/221187/


Нашим постоянным читателям, конечно, известно, что Intel предоставляет богатый набор инструментов для разработчиков в области высокопроизводительных вычислений – компиляторы, математические библиотеки и многое другое. В этой статье пойдёт речь о весьма нетипичной для нашего блога теме – инструменте для программирования мобильных приложений на HTML5 Intel XDK.

Представьте себе, что вы решили сделать своё первое приложение для мобильного телефона. Если вы пишете для iPhone, то, вероятно, вы обратитесь к Apple за инструментами разработки с использованием Objective C. Если у вас телефон на базе Android, то вашим первым шагом будет установка Android SDK от Google. Другие целевые платформы используют свои собственные языки программирования и среды разработки. Традиционная разработка для мобильных устройств сильно фрагментирована: разработчикам приходится осваивать различные, зачастую не связанные друг с другом технологии.

Кросс-платформенной альтернативой для создания мобильных приложений является программирование на HTML5 – комбинации HTML (язык разметки), CSS (стили) и JavaScript (скриптовый язык программирования). Широко известно, что HTML5 используется для программирования web страниц. Но пока ещё несколько менее известно, что код на HTML5 можно упаковать в так называемое гибридное приложение, которое с точки зрения пользователя ничем не отличается от приложений, созданных с помощью платформенных языков, таких как Objective C на iOS или Dalvik на Android. Во время исполнения таких приложений обычно используется тот же HTML5 runtime, что и в браузере, только без пользовательского интерфейса браузера.

Использование HTML5, конечно, имеет свои ограничения. Практически любое интересное мобильное приложение работает с сенсорами, камерой и т.п. – т.е. с тем, что мы не привыкли видеть через web страницы. HTML5 – это открытый индустриальный стандарт, поэтому любые дополнения занимают время. Многочисленные API для работы с сенсорами сейчас находятся в разработке и через несколько месяцев или лет станут частью стандарта. После этого не только гибридные HTML5-приложения, но и обычные web-страницы смогут работать с сенсорами, как только производители браузеров реализуют стандарт в своих продуктах. Естественный вопрос, который при этом возникает, реализуют ли и как скоро. Никто не знает наверное, но «новейшая» история браузеров говорит в пользу HTML5. Промедление в поддержке инноваций в этой области чревато потерей части рынка, что наглядно демонстрируется динамикой популярности различных браузеров в последние несколько лет. Другое подтверждение — сайт, который широко используется web-программистами как документация по поддержке определённых аспектов HTML5 различными браузерами. Из представленной на этом сайте информации очень легко видеть, как быстро эволюционирует и добавляется поддержка HTML, CSS и JavaScript API.

Ну хорошо, скажете вы, но пока эти новые возможности не реализованы, я не могу сделать на HTML5 ничего интересного. Это не так. Существуют технологии, позволяющие в удобной форме линковать HTML5 код с платформенно-зависимым кодом. При этом необходимый платформенно-зависимый код для распространённых случаев (включая, в частности, доступ к сенсорам) уже существует и доступен в виде библиотек через JavaScript API. Например, проект Cordova предоставляет open source плагины на все случаи жизни – более 200…

Но вернёмся, наконец, к Intel. Компания работает над многими аспектами HTML5. Наиболее интересными являются HTML5 runtime (об этом как-нибудь в следующий раз) и, конечно, инструмент для разработчиков Intel XDK.

Intel XDK доступен для бесплатного скачивания и использования. Инструмент представляет собой IDE, в котором есть поддержка для всех стадий разработки: редактирование кода, тестирование через эмулятор и на реальном устройстве, отладка, профилирование и, наконец, сборка для последующей публикации в магазине приложений. Вот как, например, выглядит кодовый редактор XDK (построенный на основе open source проекта Brackets):

image

Эмулятор мобильных устройств – это одна из наиболее популярных возможностей XDK. В эмуляторе программист может «попробовать» своё приложение на виртуальных устройствах с различным размером экрана, а значит, их не обязательно иметь в физическом доступе. Например, на картинке ниже приведён Rolling Can demo, поставляемый с XDK. Эта программа работает с датчиком ускорения мобильного устройства таким образом, что банка на экране «катится» в сторону наклона. Обратите внимание на панель XDK слева, где программист может эмулировать наклон устройства в пространстве. Поддерживаются все распространённые сенсоры – например, на панели справа видно, как можно задавать виртуальное положение устройства для эмулирования GPS.

image

Ещё одной крайне интересной возможностью XDK является возможность тестирования на физическом устройстве. Если у вас есть мобильное устройство на базе Android, iOS или Windows Phone, то вы легко можете эту возможность попробовать. Начните с одной из demo программ, поставляемых с XDK, переключитесь на вкладку Test и следуйте инструкциям (установите App Preview и т.д.). Например, попробуйте Rolling Can, о котором уже шла речь выше… А потом попробуйте изменить код так, чтобы банка катилась наверх. И всё это прямо на вашем собственном устройстве. Если Вы имеете общие знания программирования, вы будете поражены, как легко это сделать, даже если вы специалист в High Performance Computing и не знаете ничего о программировании мобильных устройств.

Последним шагом в разработке мобильного приложения является сборка для публикации в магазине приложений. На картинке ниже приведён экран XDK, управляющий сборками. При нажатии на одну из опций будет предложено заполнить необходимую информацию (например, developer certificate), после чего приложение будет построено облачным сервисом XDK. Это очень удобно при кросс-платформенной разработке, поскольку программисту не надо устанавливать дополнительное ПО для сборки (XCODE для iOS, Android SDK и т.д.). Вместо этого код отправляется на сервер Intel, где необходимое ПО предустановлено, там осуществляется сборка, и Вы получаете назад собранное приложение (например, для Android – apk-файл). На картинке видно, как много целевых платформ поддерживается XDK уже сегодня.

image

В этой статье мы рассказали только об очень базовых возможностях XDK. Масса других пока осталась за кадром: UI builder, static checker, работа с контролем версий кода, удалённая отладка на мобильных устройствах, профилирование, интеграция с online сервисами… Мы планируем дополнительные статьи об XDK в нашем блоге. Stay tuned!