Компания
281,80
рейтинг
5 мая 2014 в 09:08

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


Нашим постоянным читателям, конечно, известно, что 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!
Автор: @lunarserge
Intel
рейтинг 281,80

Комментарии (52)

  • +5
    На картинке видно, как много целевых платформ поддерживается XDK уже сегодня.

    Кликабельной сделайте картинку-то.
  • +3
    HTML 5 это конечно хорошо, а как быстро работает сиё чудо?
    • +6
      Работает так же как и PhoneGap — т.е. не быстро.
      • +3
        Печальненько. Лучше, пожалуй, с Qt поковыряюсь.
      • +1
        Я бы сказал, что Phonegap (точнее отпочкованная Cordova) на html5 без всяких канвасов работает и запускается быстрее XDK. Да и по умолчанию apk от XDK у меня весило около 6 мегабайт, а от Cordova 1.8 с теми же самыми сорцами в assets…
    • +1
      Есть такие приложения, где скорость работы не критична. Если нет анимаций сложных, 3D. Например, для вывода географических карт — фонегепа хватает с головой. А вот для динамичных игр — это уже критично.
      • +2
        Вот как раз из-за таких как вы дохрена лагающих приложений. Может под десктопом никто и не обратит, но под iOS, Android, WP уж соизвольте сделать все плавненько.
  • 0
    Из-за них Mozilla OS может и не взлететь.
    Впрочем, здесь время решает: кто первый встал, того и тапки.
    • 0
      Мы-то как раз двумя руками «за», чтобы взлетел. То, что FireFox OS пока не значится на нашем экране с целевыми платформами, обманчиво. Добавим.
  • +1
    Все кнопочки и прочее — это конечно здорово.

    Вы скажите о главном — sqlite поддерживается?
    • 0
      В Intel XDK никакой специальной поддержки нет. Но в целом это больше зависит от целевой платформы. Насколько я знаю, Android и iOS webview поддерживают sqlite. Так что хотя у нас в эмуляторе, например, нет специальной поддержки, но технологию App Preview можно использовать для отладки на устройстве. Ну и, конечно, собранное приложение должно работать.
      • 0
        минуточку, а у вас там Android Webview или все же crosswalk на базе chromium? вопрос критичный для версий 4-4.3, так как webview там просто убогий.
        • +1
          И то, и другое. Что выберите на вкладке Build, то и будет.
          • 0
            Это очень позитивный момент. Пожалуй, для Android инструмент действительно неплох, хотя бы этим.
            • 0
              Спасибо! На текущий момент XDK действительно имеет некий перекос в сторону Android. Мы работаем над тем, чтобы обеспечить аналогичные возможности для других платформ.
  • НЛО прилетело и опубликовало эту надпись здесь
    • 0
      Это верно. Сейчас множество проектов пытаются решить эту проблему. Например, www.idangero.us/framework7. Есть надежда, что пройдёт время и технология разовьётся.
  • +3
    Вместо этого код отправляется на сервер Intel, где необходимое ПО предустановлено, там осуществляется сборка, и Вы получаете назад собранное приложение
    Ушёл читать лицензионное соглашение, нет ли там передачи прав на загруженное ПО. После последних откровений, я ничему уже не удивлюсь.
    • 0
      Нет такого в лицензионном соглашении. Анонимную статистику собираем, да.
      • 0
        Понимаю, что за два года многое могло измениться, но вот читаю сейчас лицензионное соглашение и не могу понять:

        G. Intel obtains no right, title or interest from you (or your licensors) under the TOU in or to (i) any software applications that you develop using the Intel Materials, including any intellectual property rights that subsist in those applications, or (ii) to the Content.

        то есть, вроде бы как права на приложение не переходят. Но сразу же, дальше:

        By posting or storing the Content on or through the Intel Materials or this Site, you hereby grant Intel a worldwide, royalty-free, and non-exclusive license to reproduce, adapt, modify, translate, publish, publicly perform, publicly display and distribute such Content for the sole purpose of enabling Intel to provide you with the Intel Materials.

        Можете прояснить данный момент?
        • 0
          Ух, ещё читают материалы почти двухлетней давности :) Кажется, можно написать, что у нас есть нового с XDK. Много воды утекло, проект живёт и развивается.

          По существу — обратите внимание на последнюю часть: "for the sole purpose of enabling Intel to provide you with the Intel Materials". Например, XDK отправляет код на сборку в облако, так что нам нужно "reproduce", сервер может оказаться физически в той или иной стране, так что нам нужно "worldwide" и т.п.

          Можно вполне резонно спросить — а почему, например, "publicly perform / publicly display"? Подозреваю, что эта часть просочилась из основной лицензии Intel Developer Zone. Там это более осмысленно, поскольку пользователи форума должны давать размещение на открытую публикацию оставляемых комментариев. К XDK это, конечно, не имеет отношения. Просто у юристов нет времени полировать лицензию для каждого конкретного продукта, а права прользователей в случае XDK защищены фразой "for the sole purpose of enabling Intel to provide you with the Intel Materials".
          • 0
            Спасибо за ответ, ситуация более-менее прояснилась. Впрочем, я не утерпел — скачал, поставил и потыкал с целью ознакомления :)

            ещё читают материалы почти двухлетней давности :)

            Гугл привёл — вот и читаем ))
  • +1
    Сначала долго создавал пароль (нужно уменьшить, добавить спецсимвол, да не абы какой, а из предложенных), потом получил окно логина поверх окна регистрации и всё вообще повисло.
    • 0
      По поводу пароля — все продукты от Intel используют одинаковые правила. А то, что не заработало, жаль. Мы старались, чтобы работало, а не наоборот. Надеюсь, при перезапуске проблема уйдёт.
      • +1
        Это здорово, что у Intel одинаковые правила во всех продуктах. Только на третьей попытке завести аккаунт я сдался и удалил продукт. Версия была для MacOS.
        • 0
          Понял. А можно чуть больше деталей? Это была техническая проблема или требования к паролю вызвали слишком сильный негатив? В любом случае, спасибо за мнение — будем исправляться!
          • 0
            1) Сначала я вообще не мог понять, почему не работает. Окно регистрации вылезает за пределы экрана моего MacBook Air. И сообщения валидатора формы вывелись там. Я, как веб-разработчик, в первый раз вижу, чтобы сообщения валидатора были ниже формы ввода. Это да, немного доставило негатива.

            2) Пароли я генерю в KeePass и стараюсь, чтобы меньше 20 символов не было. В итоге пришлось сократить, убрать лишние символы и создать его вручную в итоге. Тоже немного доставило негатива.

            3) В итоге, после того, как всё одобрилось, вместо отправки данных на ваш сервер поверх окна регистрации всплыло окно с требованием залогинится. Это уже техническая проблема. Тоже доставила.

            4) Встречают по одёжке. Я сделал вывод, что если при установке продукта имею такие проблемы, то дальше мучаться с ним смысла нет. Что, в принципе и подтверждают комментарии ниже. Я как-то привык с яблочным софтом, XCode включая, что его драг-н-друп и всё магически заработало, можно работать.
            • 0
              1 и 3 пункты имеют место и на окнах.
              • 0
                Благодарю за детальный комментарий. 100% согласен, что встречают по одёжке!
                • 0
                  Хотелось бы добавить, что ограничение на максимальное колличество символов — довольно странное требование. Вы там у себя пароли в открытом виде храните? Хеши ж одинаковой длины.
          • +1
            Вся проблема в этом — and at least one special character (!@#$%).

            У меня есть свой привычный пароль для второстепенных сервисов и прочего, который содержит все нужные символы. Тут же меня заставляют использовать только один из тех 5, что в этих скобках и никакой другой.
  • 0
    Это движение в правильном направлении. Тому же PhoneGap очень не хватает дистрибутива «все в коробке». Чтоб поставил одним инсталлятором и ADT и IDE и необходимый NodeJS — и сразу все готово к разработке.
  • 0
    Я так понимаю, HTML5 + JS выбран для поддержания спроса на мощные процессоры?

    От Intel я ожидал конкурента Qt (C++), но ни как не решение на HTML + JS
    • 0
      Не совсем так. HTML5+JS выбран как кросс-платформенное решение, не завязанное напрямую на какую-либо из платформ. Мощные процессоры всегда найдут спрос.
  • 0
    Установил в Ubuntu 14.04 — не могу ввести ни одной буквы в редакторе. Возможно, это ошибка Brackets, а может быть XDK
    • 0
      Спасибо, посмотрим и исправим. Мы тестировались до последнего времени в основном на 13.10.
      • 0
        У меня на Ubuntu 14.04 отлично редактор работает
  • 0
    Приезжал к нам в универ представитель компании Intel, рассказал нам про этот Intel XDK. Установил, начал писать веб приложение, потом увидел, что эта программа создает такой бардак в коде, ничего изменить вручную невозможно. Программа глюченая, под винду еще можно работать, на маках это самоубийство. Программа подходит только под создание прототипа, но никак не для разработки. Я писал о ней в статье про хакатон. Дать ей еще годик, и может быть будет что нибудь более менее, но сейчас кроме как скачать и по баловаться, больше бы не советовал.
    • 0
      Ух, звучит не слишком позитивно… А можно ссылку на «статью про хакатон»?
  • 0
    Каков уровень поддержки технологии Bluetooth LE (GATT)?
    • 0
      Пока могу предложить взглянуть на вот этот Cordova плагин. Вкладку Build XDK можно использовать сегодня для сборки с использованием плагинов. В будущем планируем расширять понятие плагина. Тогда появится возможность, например, эмулировать функциональность плагина на вкладке Emulate. Но пока этого нет.
  • +1
    Интересует, почему Вы используете свой репозиторий для расширений Brackets, мне некоторых плагинов не хватает, к примеру.
    • 0
      Не все расширения Brackets работают с XDK «out of the box», так что приходится валидировать. Пока добавили самое популярное. Если не секрет, чего конкретно Вам не хватает?
      • 0
        Что уж греха таить — не юзаю я вашу библиотеку, поэтому я все искореняю и подключаю ангулар, и вот тут-то мне бы хотелось видеть расширение AngularJS for Brackets. А так отладка через кроссвалк очень нравится.
        • 0
          Понятно. Мы хотим улучшить поддержку Angular в целом. Я посмотрю, можно ли ускорить AngularJS for Brackets. Спасибо за комментарий!
          • 0
            спасибо!
            • +1
              Готово! Будем благодарны за любые другие комментарии.
  • 0
    Не все расширения Brackets работают с XDK «out of the box», так что приходится валидировать. Пока добавили самое популярное. Если не секрет, чего конкретно Вам не хватает?
  • 0
    Мне XDK IDE понравился. Неплохо было бы в него помимо эмуляции на мобильных устройствах еще и добавить кнопку запуска проекта в десктопном браузере.

Только зарегистрированные пользователи могут оставлять комментарии. Войдите, пожалуйста.

Самое читаемое Разработка