Виджеты. Обзорная тема/FAQ.

Виджеты. Обзорная тема/FAQ.

1. Что такое виджет?
 

Это приложение, реализованное с помощью веб-технологий и исполняемое
средствами телефонного браузера. Виджет по сути представляет собой
обычную веб-страницу, но для пользователя выглядит как отдельная
самостоятельная программа. Для разработчика виджеты предоставляют
возможность реализовать гибкий пользовательский интерфейс, а также
обеспечивают высокую скорость и удобство разработки. Для установки
виджетов не требуется сертификат, файлы виджетов представляют собой
zip-архивы и устанавливаются автоматически.

2. Какие телефоны поддерживают виджеты? Что такое WRT (Web RunTime)?

На данный момент виджеты поддерживаются телефонами на платформах S60
3rd FP 2 и S60 5th (полный пополняемый список телефонов c поддержкой
виджетов можно посмотреть на сайте nokia). WRT это платформа на которой исполняются веб-приложения, т.е. в
общем случае WRT в описании телефона означает что он поддерживает
виджеты.

3. Какие именно технологии используются для создания виджетов?

Nokia заявила поддержку следующих технологий:

  • HTML 4.01 (язык разметки гипертекста)
  • XHTML Mobile Profiles (XML-совместимый расширяемый язык разметки гипертекста, с поддержкой элементов для мобильных телефонов)
  • CSS Level 2 revision 1 (CSS 2.1), WAP CSS (каскадные таблицы стилей для элементов документа)
  • JavaScript 1.5 (ECMA-262 3rd Edition) (интерпретируемый язык программирования с поддержкой объектов)
  • DOM (объектная модель документа, позволяет управлять документом и стилями как иерархией объектов, средствами JavaScript)
  • Ajax (асинхронная передача данных через Javascript, используя XML или другой формат данных)



Также в виджетах можно использовать Flash Lite, но он не заявлен как официально поддерживаемый.

Разбор для чего конкретно используется та или иная технология смотрите вопрос 6

4. Что могут приложения-виджеты и что они не могут?

Виждеты серьезно отличаются от классических приложений в плане доступа
к функциям телефона. Виждеты не имеют прямого доступа к файловой
системе и многим другим функциям, серьезно ограничены в плане
производительности. Главное их назначение - интернет и веб-сервисы.
Платформа WRT не годится для написания системных приложений, но вполне
подходит для многих прикладных.

Nokia расширила классический JavaScript, дав виджетам доступ к следующим функциям:

WRT 1.0+

  • Хранение данных виджета (аналог cookies, чаще всего применяется для настроек)
  • Изменение и назначение функций на кнопки в меню приложения
  • Доступ к информации о системе и состоянии телефона
  • Доступ к подсветке клавиш и функции вибрации
  • Воспроизведение звука (и вероятно видео) средствами HTML и Flash

WRT 1.1+

  • Доступ к информации об установленных приложениях, их запуск
  • Доступ к информации календаря
  • Доступ к адресной книге
  • Доступ к навигации
  • Доступ к информации о совершенных звонках (Log)
  • Доступ к информации о файлах в галерее (но отсутствует доступ к самим файлам)
  • Прием и отправка сообщений
  • Доступ к акселерометру

Подробнее можно ознакомится в библиотеке разработчика nokia (на английском)

Доступа к камере, Bluetooth, WiFi, файловой системе - НЕТ

пункты, отмеченные зеленым, доступны начиная с WRT 1.0 , остальные - c WRT 1.1, узнать версию WRT на конкретной модели можно на сайте nokia



5. Как создать виджет? Что нужно для написания виджета?

Для создания простого виджета требуются базовые знания HTML (крайне
рекоммендуются CSS, Javascript) или Flash, текстовый редактор и
zip-архиватор.

Виджет - зип архив, внутри которого каталог с

  • info.plist (обязательный) (XML-файл, описание виджета, пример можно взять в аттаче)
  • <name>.html (обязательный) файл который открывается при запуске виджета (допустим только 1 html файл в виджете)
  • icon.png иконка приложения-виджета (рекомендовано 88x88)
  • <name>.css файл описания стилей (может быть несколько, допустимы подкаталоги)
  • <name>.js - сценарий Javascript (может быть несколько, допустимы подкаталоги)
  • <name>.jpg/bmp/gif/png любые изображения, которые используются в html или css (может быть несколько, допустимы подкаталоги)

также работают *.swf(flash) файлы, но их поддержка не документирована.

Каталог помещается в zip-архив, расширение изменяется на wgz и
виджет можно копировать на телефон и устанавливать (а также
распространять)

Для того чтобы быстрее разобраться в структуре таких приложений
имеет смысл скачать любой существующий виджет, открыть его с помощью
winrar/winzip и ознакомится с файлами внутри.

Для разработки более сложных виджетов имеет смысл ставить SDK, в нем есть поддержка подробных отчетов о JavaScript ошибках.

Для отладки виджетов можно использовать любой дебаггер JS, например FireBug
для FireFox, но нужно адаптировать скрипт если в нем есть специфичный
для телефона код. Например, предварительно заменить специфичный для
телефона код совместимым с классическими браузерами, или создать
объекты которые будут эмулировать объекты специфичные для телефона.

6. Как организовать свой виджет? Какие технологии для чего используются?

Веб-технологии создавались не как платформа для классических
приложений, поэтому способы организации интерфейса несколько
специфичны.

HTML размечает объекты на экране, текст, картинки.

CSS описывает внешний вид, свойства отображения и метод расположения того или иного объекта.

JS - ключевой элемент виджета, он отвечает за логику программы и изменение интерфейса пользователя (используя DOM)

Flash может заменять/дополнять все вышеперечисленные технологии

принцип AJAX, например объект xmlHttpRequest позволяет получать данные из интернета или отправлять их туда.

Методика связи интерфейса с логикой заключается в назначении
функций JS на события происходящие с элементами - за это отвечают
атрибуты onclick, onmousemove и др. в HTML, также они доступны из JS
через DOM (document.object.subobject.onclick). Изменяя стили объектов
через DOM можно прятать/показывать объекты
(object.style.display='none'), изменять их внешний вид и
местоположение. В настоящее время веб-приложения перестали быть
экзотикой и в интернете можно найти множество примеров организации веб
приложений, не говоря уже о документации по упомянутым веб-технологиям.

Ссылки

Пример

Скачать info.plist_108.txt


Автор: apocalyp_sys
Источник: forum.allnokia.ru