Samsung
Компания
80,59
рейтинг
6 сентября 2013 в 14:48

Разработка → Обзор Tizen SDK. Web

Привет, Хабр!

Самые любопытные из вас успели познакомиться с ОС Tizen, посмотреть на Tizen в действии и даже поковыряться в SDK с помощью наших образов Tizen SDK Live на основе Ubuntu.

Наблюдая все те слухи, которые витают вокруг Tizen, многим уже стало понятно, что официальный анонс первых Tizen-устройств совсем не за горами и сейчас самое время начать разработку или портирование своего мобильного приложения под эту платформу. Если вы относитесь к этим многим (или ещё раздумываете), добро пожаловать под кат, где мы познакомим вас с Tizen SDK и его инструментарием.

image

Начнём мы сегодня с web-части.

Введение


Итак, мы имеем дело с Tizen — открытой операционной системой на базе Linux, которая предназначена для широкого круга устройств, таких как смартфоны, планшетные компьютеры, автомобильные информационно-развлекательные системы, ультрабуки, «умные» телевизоры, цифровые камеры, офисная, бытовая и медицинская техника и прочая носимая электроника. Co-CEO компании Samsung Electronics сказал: «Мы хотим видеть Tizen на всём», и Tizen вполне на это способен, так как для этого у него есть всё необходимое, в чём мы сейчас с вами убедимся.

Архитектура Tizen


image
Как видно из схемы выше, самый нижний слой архитектуры представляет из себя ядро Linux (для Tizen SDK 2.2 версия 3.4+) с драйверами устройств.

Чуть выше располагаются другие подсистемы ядра:

  • App Framework. Реализует функционал управления приложениями, в том числе запуск других приложений. Обеспечивает уведомление приложений об основных системных событиях, таких как недостаток памяти, низкий заряд батареи, изменение ориентации экрана и push-уведомления.
  • Graphics & UI. Реализует функционал, связанный с графикой и UI, в том числе EFL (Enlightenment Foundation Libraries), оконной подсистемой, OpenGL и т.п.
  • Multimedia. Обеспечивает поддержку мультимедиа: видео, аудио, изображения, VoIP, управления метаданными.
  • Location. Представляет функционал для геопозиционирования (GPS, WPS, Cell ID, сенсоры).
  • Messaging. Реализует функционал, связанный с SMS, MMS, email и IM.
  • Web. Реализует Tizen Web API и включает в себя WebKit, обеспечивает поддержку web-приложений.
  • Security. Реализует функционал, связанный с безопасностью, контролем доступа, управления сертификатами и т.п.
  • System. Отвечает за взаимодействие с устройством (сенсоры, дисплей, вибросигнал), управление электропитанием, мониторинг событий от таких компонент, как USB, MMC, зарядное устройство, ear jack, управление пакетами, обновление устройства, взаимодействие с alarm-сигналами.
  • Base. Содержит ряд системных библиотек, реализующих, помимо базовых функций, функционал для взаимодействия с базами данных, локализации и работы с XML.
  • Connectivity. Отвечает за всё, что связано с сетевыми взаимодействиями (3G, WiFi, Bluetooth, HTTP, NFC).
  • Telephony. Реализует функционал, относящийся к связи и работе модема (UMTS, CDMA, GSM).
  • PIM (Personal Information Management). Отвечает за такой функционал, как взаимодействие с календарём, контактами и задачами.

Из вышеперечисленного можно сделать вывод, что реализованный функционал способен удовлетворить почти любые потребности, наделяя Tizen гибкостью и универсальностью.

На самом верхнем уровне находятся пользовательские приложения, которые в Tizen бывают трёх типов: web, нативные и гибридные.

Доступ к перечисленным выше подсистемам из приложений осуществляется посредством двух фреймворков: Web Framework и Native Framework. И на каждом мы остановимся подробнее.

Web Framework


В Tizen условно можно выделить 3 типа web-приложений:

  • Мобильный сайт. Или приложение, которое работает из веб-браузера.
  • Так называемое hosted-приложение. Или приложение, являющееся клиентом к удалённым web-ресурсам.
  • Полноценное web-приложение. Или стандартное приложение, к которым мы все привыкли, но разработанное с использованием Tizen Web API.

Для последних двух типов есть возможность публиковать их в Tizen Store.

Ниже приведена структура Tizen Web API.

image

За простоту создания hosted-приложений приходится платить тем, что для них недоступен Device API. В то время как для полноценных web-приложений (их ещё называют packaged apps) никаких ограничений нет.

На сегодняшний день Tizen является лидером по поддержке стандарта HTML5 среди всех существующих мобильных платформ. В этом легко убедиться, зайдя на сайт html5test.com. Ниже приведён скриншот web-страницы с результатами.

image

Помимо jQuery и jQuery Mobile, который входит в состав SDK, в арсенале поддерживаемых фреймворков у Tizen такие, как angular.js, enyo.js, sencha.js, backbone.js, sprite.js, verlet.js, require.js, basis.js, zepro.js, box2d и многие другие.

В комплект Tizen SDK входит множество примеров, ознакомившись с которыми начать разработку своего уникального, самого лучшего в мире web-приложения предельно просто. Конечно же, только после того, как мы вас познакомим с инструментарием, который предлагает Tizen SDK разработчикам.

Tizen IDE


Интегрированная среда разработки, входящая в состав Tizen SDK, основана на Eclipse с набором необходимых дополнений и адаптаций для разработки приложений для Tizen. Перспективы Tizen Web и Tizen Native несколько отличаются. Ниже показан скриншот Tizen IDE с перспективой Tizen Web.

image

Интерфейс IDE интуитивно понятен и содержит всё необходимое для разработки, отладки, тестирования и профилирования приложений. Отдельно отметим Event Injector, с помощью которого можно эмулировать различные события, позволяя, таким образом, при разработке обойтись эмулятором, о котором мы расскажем позже.

В целом, Tizen IDE для web-разработчиков предлагает следующие инструменты/помощники:

  • Advanced Declaration View. Этот инструмент помогает при разработке, отображая тело используемых вами функций.

image

  • Code Beautifier. Этот инструмент помогает форматировать используемый вами код.
  • Code Minifier. Позволяет сократить код.
  • Configuration Editor. Позволяет редактировать настройки приложения.
  • Content Assist. Помогает писать код быстро и эффективно, предоставляя контекстную помощь при написании кода.

image

  • CSS Editor. Инструмент, упрощающий написание CSS-кода.
  • CSS Preview. Средство предпросмотра стиля.
  • HTML Editor. Инструмент, упрощающий написание HTML-кода.
  • HTML Preview. Средство предпросмотра HTML-файлов.
  • JavaScript Editor. Инструмент, упрощающий написание JavaScript-кода.
  • JavaScript Log Console View. Инструмент для просмотра логов JavaScript.
  • Privilege Checker. Инструмент, позволяющий идентифицировать потенциальные проблемы в коде приложения, связанные с выставленными в настройках приложения привилегиями.
  • Remote Inspector. Инструмент, позволяющий отладить ваше web-приложение.

Ещё один инструмент – UI Builder. Он предназначен для создания графического пользовательского интерфейса web-приложений и представляет из себя WYSIWYG (What You See Is What You Get)-редактор.

image

Инструмент также позволяет связать код с событиями UI. Он обладает простым интерфейсом и поэтому мы не будем более подробно на нём останавливаться.

Как хорошо видно, набор инструментов для web-разработчика весьма богат. Но и это ещё не всё.

Web Simulator


Ещё один инструмент – Web Simulator. Он основан на Google Chrome и позволяет проверить ваше приложение, симулировав «боевые» условия и при необходимости отладить его в инструментах разработчика Chrome.

image

Tizen Emulator


И наконец, последний инструмент из состава Tizen SDK для web-разработчиков (и не только). Это Tizen Emulator. Основанный на QEMU, эмулятор позволяет в ещё более «боевых» условиях проверить/отладить ваше приложение.

image

Command-Line Interface (CLI)


Для тех, кому необходима командная строка (например, для кастомизации процессов разработки, например, настройки Continuous Integration), предусмотрен command-line interface.
web-gen Генерирует новый проект. Например:
web-gen –-name HelloTizenWorld --path /home/myproject
web-template Ищет и устанавливает web-шаблон. Если никаких опций не указано, найденный
шаблон применяется. Например:
web-template –-search tizen
web-build Создаёт временную директорию для подписи и упаковки файлов приложения
после выполнения некоторых операций. По умолчанию выходная директория .buildResult.
Выходную директорию можно изменить, указав опцию --output.
Если директория с таким именем уже существует, она предварительно удаляется.
Например:

  • Проект web-приложения:

— Рабочая папка: /home/test/workspace/MyBasic
— Команда: $web-build. --optimize --exclude-uifw
— Результат: папка ~/MyBasic/.buildResult создана.

  • Проект гибридного приложения:

— Папка главного проекта (web): /home/test/workspace/MyWeb
— Папка сервиса (native): /home/test/workspace/MyService
— Команда: ~/MyWeb$ web-build . --optimize --exclude-uifw -rp /home/test/workspace/MyService
или ~/MyWeb$ web-build. --optimize --exclude-uifw -rp ../MyService
— Результат: папка ~/MyWeb/.buildResult создана.

Далее запустите команды web-signing и web-packaging для подписи и
упаковывания содержимого папки .buildResult.
web-packaging Упаковывает файлы в виджет (.wgt-файл). Например:
web-packaging project.wgt project/
web-signing Создаёт цифровую подпись. Например:
web-signing --profile test:profiles.xml
web-list Отображает список установленных на устройстве (эмуляторе) виджетов. Например:
web-list -d emulator-26100
web-install Устанавливает виджет на устройство (эмулятор). Например:
web-install -w hellotizen.wgt
web-uninstall Удаляет виджет с устройства (эмулятора). Например:
web-uninstall -i 91CSlOf9n
web-run Запускает виджет на устройстве (эмуляторе). Например:
web-run -i 91CSlOf9n5.hellotizen
web-debug Запускает отладку виджета. Например:
web-debug -i 91CSlOf9n5.hellotizen

И конечно же, не можем не упомянуть, что в состав Tizen SDK также входит подробная документация.

На этом мы заканчиваем наш обзор. Надеемся, было интересно и познавательно и поможет вам в дальнейшем разрабатывать качественные интересные приложения для Tizen. Более детальное описание инструментов Tizen SDK можно найти здесь.

Техническую поддержку и ответы на вопросы мы осуществляем здесь: dev.cis@partner.samsung.com

Всего наилучшего и до встречи в следующих статьях!

Tizen Eva Group
Автор: @samsung_ru
Samsung
рейтинг 80,59
Компания прекратила активность на сайте

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

  • +1
    Есть ли хотя бы минимальный туториал о том, как опубликовать hosted-приложение в store? Гугление по «tizen hosted applications» не дает практически ничего.
    • 0
      Уже подготовили приложение? После регистрации на сайте seller.tizenstore.com станет доступен раздел seller.tizenstore.com/info/guideDownload.as, где можно скачать все инструкции и правила Tizen Store.
      • 0
        Раздел с PDF-ами доступен, но не уверен, что в них есть ответ на мой вопрос. Интересует документация в духе такой или такой.

        Там легко понять, что для Chrome Store нужно загрузить zip c иконкой и манифестом, а для Firefox Marketplace просто указать ссылку на .webapp-файл. Что делать для Tizen? В панели разработчика просят загрузить абстрактный Binary File.

        Уточню: интересуют именно hosted web-приложения.
        • +1
          Все верное: собираете пакет wgt с icon.png и размещаете в сторе.
          Чуть позднее будет статья про это.
          Собрать пакет можно как в Eclipse так и командной строке.
      • +1
        Синхронные xhr запросы просто убивают при регистрации…
  • 0
    Первый и не самый важный вопрос: а зачем все это если есть Android? По-моему у Samsung на Android ооочень неплохая доля рынка.

    Второй вопрос: есть ли обзор по Native framework? Какие инструменты и платформы? Native framework Qt-based, или что-то свое?
    • +1
      Я рекомендую вам начать знакомство с Tizen вот с этих статей: habrahabr.ru/company/intel/blog/187706/ и habrahabr.ru/company/rozetked/blog/189910/

      Полагаю, много вопросов сразу отпадёт.

      Если вкратце, то Android есть у Google. Не у Samsung, не у HTC, не у Sony, а именно у них. Со всеми вытекающими.

      Обзор нативной части Tizen SDK будет в понедельник. Следите за хабом Tizen и блогом Samsung.
      Нет, Native Framework не Qt-based.
      • 0
        Я уже успел глянуть на developer.tizen.org, но надеюсь Qt будет. С нетерпением жду обзора Native framework.
  • 0
    А что с устройствами для разработчика? Почему устройства на Bada не будут обновлены до Tizen?
    Хотя, лично у меня после Bada нет особого желания работать с Tizen.
    • 0
      Вопрос об обновлении bada-устройств до Tizen — это вопрос к самому высокому руководству Samsung. Только они способны ответить на этот вопрос, здесь вы ответа не найдёте.
      Работать с Tizen после bada. Вы сравните вначале bada и Tizen, потом решите. Первая была проприетарна и целиком и полностью принадлежала Samsung. С Tizen история совершенно иная, начиная с лицензионной политики и заканчивая экосистемой и позиционированием на рынке.
      Если вы разрабатывали на bada, то легко сможете разрабатывать на Tizen. Тем более, что для миграции приложений с bada на Tizen есть специальный инструмент, который позволяет сделать это быстро и легко.
    • 0
      Устройства для разаботчика: developer.tizen.org/support/development-unit-program/available-development-units

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

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