Похоже, вы новичок на сайте.
Чтобы быстрее понять, о чём здесь идёт речь, советую почитать:
что такое виджеты,
чем они хороши
и каковы их перспективы.
Это сообщение показывается только один раз. Такие же ссылки вы можете найти в правой колонке, в блоке "Рекомендую прочесть"
Фев 21

Konfabulator
Итак, если вы хотите заняться разработкой виджетов Yahoo!, то первое место, куда следует заглянуть, это раздел Tools and Documentation. Там можно скачать SDK, почитать подробную документацию и найти инструкцию, как сделать свой первый виджет. Если будут возникать какие-то вопросы, можно посоветоваться с другими разработчиками на форуме Konfabulator. Народ там вежливый и адекватный: приятное отличие заграничных форумов от отечественных.

В Yahoo Widgets для разметки используется свой диалект XML, а для придания интерактивности — JavaScript. Также можно вставлять HTML, Flash и использовать CSS (правда, в урезанном варианте).
Свой язык разметки — это, с одной стороны, хорошо, потому что позволяет легко делать страницы типа «О программе» и определять настройки виджета с помощью специальных конструкций. Но с другой стороны, с непривычки вёрстка становится нетривиальной задачей.

Помимо обычного JavaScript, виджеты могут пользоваться дополнительным возможностями: хранить данные в SQLite, легко изменять и получать настройки, работать с операционной системой (например, узнавать загрузку процессора или информацию о беспроводных сетях)…

У виджетов есть режим отладки, в котором, кроме самого виджета, показывается консоль отладчика, где можно просматривать служебные сообщения и выполнять JavaScript-код.

Готовое приложение уваковывается в файл с расширением .widget. Есть два способа упаковки: zip (просто архивируете каталог с виджетом, после чего меняете расширение) и «однородный файл» (flat file), который создаётся с помощью виджета «Widget Converter», входящего в SDK. ZIP считается устаревшим методом упаковки и не рекомендуются к использованию из-за проблем с производительностью.

Когда ваш виджет готов, вы можете попросить других разработчиков потестирвоать его на форуме, в специальном разделе Widget Test Ground. Более того, Yahoo! настоятельно рекомендует это делать, особенно, для первой версии программы. Правда, я, например, комментариев к своему «Last.fm recent track» так и не дождался: наверное, он оказался слишком специфическим и пользователей Last.fm на форуме не было.

Теперь вы можете отправить ваш виджет в галерею виджетов Yahoo!. По идее, после этого он попадёт в очередь на утверждение, будет подвергнут автоматизированной проверке на безопасность (не спрашивайте меня, как они это делают) и просмотрен модератором, который сделает скриншот и напишет небольшой обзор. В моём случае скриншот они сделать не смогли, поэтому попросили его выслать, причём непременно с альфа-каналом (и то я просил опубликовать скриншот на тёмном фоне, а они сделали на светлом, из-за чего буквы на нём плохо читаются). Да и моё описание виджета оставили неизменным.
Кстати, будьте готовы к тому, что ваш виджет появится в галерее далеко не сразу. Мой, например, был отправлен на добавление в декабре, а появился в галерее только в первой половине февраля. Надеюсь, эти задержки с рассмотрением были временными.

Наконец-то! Мы подошли к финальной части: наш виджет опубликован и теперь его пора распространять. Делать это можно двумя способами: просто давать ссылку на его страницу в галерее (но это не очень удобно) и сделать бэдж для установки виджета прямо с вашего сайта. Если сразу после попадания виджета в галерею бэдж не создаётся (возникает ошибка вроде «Виджет не найден»), подождите день-другой и попробуйте ещё раз: похоже, там есть какая-то задержка. Ваше терпение будет вознаграждено вот таким красивым инсталлятором:

А в следующей заметке я хочу рассказать об использовании виджетов Yahoo! для бизнеса.

Share Button
Комментировать (3)

Фев 7

color and motionЗаканчивая обзор технологий разработки веб-виджетов, расскажу о самых «мощных» из них.

HTML+JavaScript+серверный язык (например, PHP).

Такая связка позволяет создавать очень гибкие и интерактивные виджеты, поведение которых может зависеть как от действий пользователя, так и, например, от контента страницы, на которой виджет размещается. Эти технологии используются, в частности, для показа контекстной рекламы.
При такой схеме JavaScript, как правило, отвечает за формирование внешнего вида виджета, а сервер — за ресурсоёмкие операции вроде обработки текста и вычислений (а часто ещё и за формирование JavaScript-а).
Распространяться такие виджеты могут везде, где разрешена вставка JavaScript: на сайтах, в автономных блогах, некоторых блогохостингах.

Плюсы:

  • максимальная гибкость и интерактивность, можно реализовать самые смелые идеи

Минусы:

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

Где можно использовать:

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

Flash или Silverlight (+ сервер)

С помощью Adobe Flash делаются самые красивые виджеты, и самые технически сложные: например, всем знакомая вставка видео с YouTube. Сейчас набирает обороты конкурент Flash — технология Microsoft Silverlight. И хотя виджетов на ней я пока не встречал, уверен, скоро они начнут появляться.
Распространяться такие виджеты могут везде, где разрешена вставка Flash, а в некоторых случаях эта технология является вообще единственным вариантом: например, только с её помощью можно создавать приложения Вконтакте.

Плюсы:

  • большие возможности для дизайнеров
  • облегчается реализация технически сложных функций

Минусы:

  • трудоёмкость разработки
  • виджеты часто получаются «тяжёлыми», медленно загружаются

Ещё одна прелесть flash-виджетов состоит в том, что существуют сервисы для их автоматической генерации. К сожалению, в Рунете я таких не нашёл, а западные использовать неудобно, потому что они ориентированы на другую часть Сети. Приведу лишь пару примеров:

  • Sprout — мощный редактор. К сожалению, с февраля становится полностью платным и с русским языком не умеет работать абсолютно.
  • Widgetbox — позволяет легко делать несколько типов виджетов. Например, вот я буквально парой кликов сделал виджет для показа RSS своего блога:

Но увы, интерфейс этого виджета не русифицирован, местами слетает кодировка, а механизм распространения «заточен» под западные социальные сети. Так что полноценно использовать его в Рунете не получится. Хотя, например, в качестве элемента дизайна блога (показывать в сайдбаре анонсы постов) или в качестве рекламы блога на других своих площадках — почему бы и нет.

Share Button
Комментировать (3)

Янв 28

Перейдём к динамическим виджетам и рассмотрим ещё пару технологий.

HTML+JavaScript (формируются статически)

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

Тут, на мой взгляд, ничего особо интересного нет: добавляя JS, мы придаём немного больше интерактивности нашему виджету (переключение закладок, всяческие таймеры и всплывающие окошки), но при этом сильно ограничиваем его распространение. Дело в том, что многие сервисы хостинга блогов, и уж тем более форумы, в целях безопасности не разрешают пользователям вставлять JavaScript. Поэтому такие виджеты будут работать, в основном, на автономных блогах, личных сайтах или на каких-то определённых страницах (например, в профиле пользователя LiveJournal, но не в его постах). Да и чтобы сделать что-то завлекательное на одном только JavaScript и HTML, надо постараться.

У меня пока есть только одна идея, как это можно использовать: счётчики. Например, организуете вы конкурс, который должен начаться через 14 дней. Делаете виджет с надписью «До начала мегаконкурса осталось:  столько-то часов-минут-секунд», на котором тикает время в обратную сторону, вешаете у себя в блоге и предлагаете посетителям тоже повесить на своих блогах. Постоянно тикающий таймер будет подогревать аудиторию ничуть не хуже зажигательных постов, и вам для этого ничего не надо будет делать.

Микросайтинг

Очень интересная технология, которую нельзя не упомянуть. Интересная своей простотой, изяществом и «живучестью».

Придумал её Дамир Ramainen ainu Фахрутдинов, и началось всё с этого поста (по крайней мере, это первое упоминание, которое мне известно).

В чём «фишка». Микросайт — это маленький самостоятельный сайт, встраиваемый в код другого, «большого» сайта. Код его представляет собой только ссылки и картинки, чем и объясняется «живучесть»: такой сайт-виджет можно разместить мало того что на любом блоге, но даже в подписи на форуме, где кроме BB-кодов вставлять ничего не разрешается.

Для разработчиков: исходники можно скачать по ссылке с приведённого выше поста на Хабре. Общий принцип работы: ссылки микросайта ведут на скрипты его родительского сайта-хостинга. Там, при клике, для пользователя стартуется сессия, в которой сохраняется его текущее положение на микросайте, и заново отрисовываются все картинки.

Плюсы:

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

Минусы:

  • При клике по ссылке микросайта происходит перезагрузка страницы (есть варианты без перезагрузки, но они используют JavaScript)
  • Улучшение дизайна — несколько более трудоёмкий процесс по сравнению с HTML

Где это можно использовать?

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

У меня есть мысль на этой технологии построить игру для блоггеров. Например, крестики-нолики. Представьте: блоггер вставляет картинку с клеткми 3х3 в конец поста. Первый читатель, который видит эту картинку, кликает на клетку — там ставится крестик и его видят остальные читатели. Потом ходит автор поста, а все остальные ждут, пока он поставит свой нолик, после чего ходить уже может другой читатель, и так далее. Этакое интеллектуальное соревнование между автором и аудиторией. Как считаете, это было бы интересно?

Share Button
Комментировать (6)