48
Виджеты: интернет- проект за пределами сайта Глеб Белогорцев (РБК)

белогорцев глеб белогорцев

  • Upload
    rit2010

  • View
    2.208

  • Download
    1

Embed Size (px)

DESCRIPTION

 

Citation preview

Page 1: белогорцев глеб белогорцев

Виджеты: интернет-проект за пределами сайта

Глеб Белогорцев (РБК)

Page 2: белогорцев глеб белогорцев

Введение Виджет - это небольшой, лёгкий в установке и использовании программный модуль, требующий для своей работы некоторой среды (т.н. «движка», widget engine) и исполняющий, как правило, одну определённую функцию.

Page 3: белогорцев глеб белогорцев

В чем прелесть виджетовДля пользователей:

• Новые возможности• Украшение рабочего стола и сайта

Для владельцев интернет-проектов:• Распространение влияния за пределы сайта• Новые посетители, повышение лояльности старых

Page 4: белогорцев глеб белогорцев

Обзор платформ для виджетов

Виджеты

Для веба Для рабочего стола Мобильные

Page 5: белогорцев глеб белогорцев

Виджеты для веба

Page 6: белогорцев глеб белогорцев

ВКонтактеТехнологии: Flash.

Популярность: у самого популярного более 8 млн. участников, меньше года назад было 3 млн.

Page 7: белогорцев глеб белогорцев

МойМир@Mail.RuТехнологии: Flash, iframe (HTML, JS, Silverlight и т.д.)

Популярность: У самого популярного приложения 3 с лишним млн. пользователей.

Page 8: белогорцев глеб белогорцев

LiveJournalТехнологии: HTML, Flash, не разрешён JavaScript

Page 9: белогорцев глеб белогорцев

Стартовые страницы

Page 10: белогорцев глеб белогорцев

iGoogle

Технологии: XML, JavaScript. Есть поддержка OpenSocial.

Page 11: белогорцев глеб белогорцев
Page 12: белогорцев глеб белогорцев

Мой Rambler (Netvibes)Технологии: XHTML, JavaScript, используется движок http://netvibes.com

Open source: http://netvibes.org

Page 13: белогорцев глеб белогорцев

Виджеты ЯндексаТехнологии: XHTML, JavaScript

Page 14: белогорцев глеб белогорцев

Виджеты для рабочего стола

Page 15: белогорцев глеб белогорцев

Yahoo! Widgets

Самый популярный русский виджет, который я нашёл, имеет 31 000 загрузок.

Page 16: белогорцев глеб белогорцев

Гаджеты Windows 7/VistaБлагодаря распространенности ОС, имеют большие перспективы.

Наиболее популярный русский гаджет имеет 1 млн. загрузок

Page 17: белогорцев глеб белогорцев

Примеры:

Page 18: белогорцев глеб белогорцев

Виджеты OperaУ самого популярного русского, который я нашёл, 2700 загрузок за последнюю неделю

Page 19: белогорцев глеб белогорцев

Для мобильных телефонов

Samsung – уже можно разрабатывать.

LG – есть SDK и эмулятор, но устанавливать в телефон ещё нельзя.

Своя технология есть у Nokia.

Page 20: белогорцев глеб белогорцев

Для телевизоров

Yahoo! Widgets под конец подались в ТВ.

Телевизоры с виджетами делают Sony, Samsung и Panasonic.

Page 21: белогорцев глеб белогорцев

Особенности проектирования и разработки виджетов

Page 22: белогорцев глеб белогорцев

Основные составные части• Серверная

• Функциональное «ядро»

• Хранилище данных виджета

• Система загрузки обновлений

• Система сбора статистики

Page 23: белогорцев глеб белогорцев

Как добиться максимальной степени кроссплатформанности

Проблема: у всех платформ разные API, требования к разметке и описанию приложения.

Задача: облегчить написание версий одного виджета для разных платформ

Page 24: белогорцев глеб белогорцев

Способ №1 Ядро (Flash)

«Обёртка» (зависит от платформы)

Page 25: белогорцев глеб белогорцев

Способ №2

Неизменная часть

настройки

описаниеэффекты

Page 26: белогорцев глеб белогорцев

Статистика использования Задача: собрать данные об использовании виджета.

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

Page 27: белогорцев глеб белогорцев

Мой вариант решения

БД

AJAX

Код действия с виджетом

Уникальный id клиента

Page 28: белогорцев глеб белогорцев

Посмотреть систему в действии можно здесь: http://widgetok.ru/wstat/view/wikiday/

Page 29: белогорцев глеб белогорцев

Загрузка обновлений

• У виджета есть номер версии, и сам виджет его всегда знает.

• На сервере лежит XML с описанием последней стабильной версии

Page 30: белогорцев глеб белогорцев

<?xml version="1.0" encoding="utf-8" ?><update><version>1.0</version> <url>http://widgets.rbc.ru/files/windows/TNews.gadget</url></update>

В XML хранится номер версии и ссылка для скачивания виджета.

Page 31: белогорцев глеб белогорцев

Виджет запускается

получает с сервера XML

сравнивает свой номер

версии

если его версия устарела,

предлагает обновиться

Page 32: белогорцев глеб белогорцев

Нужно ли вообще заморачиваться с обновлениями?

Page 33: белогорцев глеб белогорцев

Гаджеты Windows 7/Vista

Page 34: белогорцев глеб белогорцев

Почему о них стоит знать?

По данным LiveInternet

Page 35: белогорцев глеб белогорцев

Материалы для знакомства

• находятся в Гугле по запросу «msdn gadget»

• на русском: «Создание гаджетов для Windows sidebar» на сайте http://designformasters.info

Page 36: белогорцев глеб белогорцев

Что они из себя представляют• HTML документ, отображаемый движком от IE

• Добавлено несколько дополнительных тегов разметки (g:background, g:image, g:text)

• Разрешен JavaScript

• Есть JS-API для работы с гаджетом и системой

Page 37: белогорцев глеб белогорцев

Верстка

• Можно не думать о кроссбраузерности

• Проверять - прямо в гаджете, или в IE

Page 38: белогорцев глеб белогорцев

Основная проблема с вёрсткой – прозрачный фон

g:background + PNG с прозрачностью => могут появиться розовые и чёрные области. Как этого избежать?

Page 39: белогорцев глеб белогорцев

Если гаджет имеет фиксированный размер

1. Прописать для элементов body и g:background в css-стилях нужную ширину и высоту.

2. Сделать картинку-фон для g:background точно таких же размеров.

3. Если не помогло и на фоне остались розовые пикселы, скорее всего они не полностью прозрачные

Page 40: белогорцев глеб белогорцев

Если размер гаджета заранее не известен

g:background.addImageObject()

Код можно посмотреть в гаджете РБК, скачав с http://w7.rbc.ru

Фон, N x 1px

Шапка

Подвал

Page 41: белогорцев глеб белогорцев

Текст на прозрачном фоне – увы... :(

Page 42: белогорцев глеб белогорцев

JavaScript Можно использовать JS-фреймворки, я пользуюсь JQuery и JQueryUI

Page 43: белогорцев глеб белогорцев

Особенности onсlick • Если навесить его на элемент, за этот

элемент виджет нельзя будет перетаскивать мышью по экрану

• Клики на прозрачных областях не обрабатываются.

Page 44: белогорцев глеб белогорцев

Устанавливать обработчик события можно только в виде

element.onclick=function(){…}

$(‘selector’).get(0).onclick= function(){…}

А вот

element.attachEvent(‘onclick’, function(){…})

$(‘selector’).click( function(){…})

не сработают.

Page 45: белогорцев глеб белогорцев

Хранение данных

• Встроенный механизм - значения до 2048 символов

• Если хочется больше и дольше - PersistentSettings.js

http://blogs.msdn.com/sidebar/

Page 46: белогорцев глеб белогорцев

Доступ к системеС помощью объекта ActiveX можно читать, писать, копировать файлы, смотреть содержимое директорий и т.д.

Также можно использовать VBSctipt.

Page 47: белогорцев глеб белогорцев

Безопасность• Гаджеты ближе к программам, чем к веб-страницам

• Запускаются со стандартными правами пользователя

• Если для выполнения операции гаджету требуются права администратора, операция не выполняется и не показывается диалоговое окно разрешения действия

Page 48: белогорцев глеб белогорцев

Спасибо за вниманиеВопросы?

Контакты

E-mail: [email protected]

Блог: http://WidgetOK.ru