October 2007 Archives

  1. Oct29

    Widget Basics

    The total number of widget platforms and deployment options intimidate many newcomers. Each platform offers a unique audience and features, but widget basics remain the same across Windows Vista, Nokia S60, Google, MySpace. and more. In this post I will outline the basic components of a widget including static assets, user preferences, processing remote data, and rendering your final widget.

    Create a default view

    Every widget has an at-rest state. Your widget might have a background image or color, static text, or other fixed pieces not dependent on external data updates. You will likely define areas of your widget that will later contain the result of dynamic data updates. This at-rest state, or default view, is the first step towards a complete widget and the first thing your users will see before retrieving their custom data.

    Apple Dashboard widget front background

    Apple's Dashboard weather widget has a slim background with a simple layout showing the current temperature and weather condition. Today's temperature is displayed on the right, with a degree sign built-in for data context. The current weather condition (sunny, cloudy, raining, etc) will appear in the center.

    Gather custom preferences

    Every widget platform supports user customizations collected using a familiar user interface and stored on the parent platform along with other user data. In some cases you might be able to tap into preference data already stored on the platform such as a user's location, age, or preferred number of headlines per widget.

    iGoogle weather preference

    iGoogle's weather widget stores both a country and a city as your weather location. A weather widget might use different data APIs by country or region, or adjust its wording based on a user's location (i.e. Postal Code vs. ZIP Code).

    Widget preference data is stored on the widget platform -- Windows Vista, iGoogle, etc. -- inside a user data store. Preferences can be structured as drop down lists, sliders, numbers, text, and much more depending on the data you would like to capture.

    Retrieve dynamic data

    Dynamic widgets receive regular data updates from a remote source and process the results. You will likely customize the data retrieved based on the user preferences defined above and create a targeted experience for each user. Data updates are often cached and processed by each widget platform to save development time and increase your widget's performance. The data formats below can be cached and processed by the parent widget platform to produce fast response times and allow same domain access to your data.

    Web feed
    RSS 2.0 or Atom Syndication Format 1.0. Your site might already produce these syndicated feeds popular for distributing the latest news headlines from your site to specialized feed readers. Widget platforms typically store a subset of all available feed elements (e.g. title, content, link, and author) which may or may not meet your needs.
    JSON
    JavaScript Object Notation, a lightweight data interchange format. JSON offers fast processing and manipulation of custom data. Your website may already produce JSON output to power asynchronous JavaScript requests that can be extended into your widgets. Most widget platforms will convert your JSON objects into their appropriate number, text, or list types for easy manipulation by your widget.
    XML
    XML is a popular data interchange format for custom-defined data sent between computers and their programs. XML snippets power Ajax (Asynchronous JavaScript and XML) functionality on many websites and can also provide your widgets with dynamic data updates.
    Plain text
    Plain text is the most lightweight data format and is swallowed whole by widget platforms. Plain text is a good data choice for small pieces of content (i.e. current temperature is 65) or complete HTML snippets you would like to insert directly into your widget. You could also process a list of comma-separated values or other forms of structured data as a plain text data source.

    Creating dynamic data in an appropriate syndication format is often the first step widget publishers need to take before kicking off a broader widget program. You will need to expose your data in a syndicated format before distributing your widget.

    Draw your widget

    You have defined your blank widget, collected preferences and customizations from the user, and retrieved your widget's dynamic data. You now need to place your processed data into the locations you defined in your initial view.

    Your widget code should construct the appropriate HTML or Flash markup describing your updated data. In the weather widget described above we need to update the temperature field with the current temperature and display a picture corresponding to current weather conditions if available. We have already assigned an identifier to our widget's temperature and weather condition areas, and update these elements with our latest data.

    Final Apple Dashboard weather widget

    Pictured above is an example of a final widget view. The current weather in San Francisco is 58 degrees and cloudy.

    The term "San Francisco" is a verified location based on the user's defined preferences (you were able to interpret the input and map it to a unique identifier compatible with your data provider). Our weather API returned two pieces of data: a condition of cloudy and temperature of 58. We displayed a pre-defined picture of the cloudy weather condition inside our widget's condition area and updated the temperature text to 58.

    Summary

    Every widget platform has a similar method of widget construction and processing. Available features, caching, proxies, and widget helpers vary by platform but the basic approach and mentality remains the same. You are creating a tiny application on the Web, mobile, or desktop that may respond to its environment and collect live updates from the Internet.

    A provided a simplified view of a very broad development area. I'll dive a bit deeper into each platform type and the capabilities of major widget platforms in future blog posts. This post expands on my opening slide from my recent 8-minute "high order bit" presentation at the Web 2.0 Summit.

  2. Oct26

    Microsoft opens widget marketplace for Vista and Windows Live

    Windows Live Gallery Marketplace

    Microsoft opened a new online marketplace last night to sell a new class of desktop and web applications directly to consumers. The new version of Windows Live Gallery extends the existing Windows Live Gold partnership program with premium content listings, partner storefronts, and the ability to charge Microsoft's users for each new widget. Microsoft's widget marketplace uses the same Microsoft Points currency system as Xbox Live Marketplace and Zune Marketplace. The new gallery site also includes the ability to rate reviews ("4 out of 5 people found this review helpful") and widget developers featured on the front page of the site.

    Customers can buy a new widget and customize before making a final purchase. A music company might license songs bloggers can include in their Windows Live Spaces page, or The Wall Street Journal might sell a premium content widget for Vista Sidebar users. Publishers can set their own price and tap into Microsoft's existing payment processing and currency-independent marketplace used by millions of people around the world.

    The Windows Live Gallery Marketplace is the latest attempt by Microsoft to monetize small transactions on its platform. Xbox Live has been extremely popular source of tiny games such as Tetris or Zuma, helping the company reach new audiences of game players and developers alike. The new Gallery Marketplace opens up Microsoft's platform as a paid distribution endpoint for content from around the web, which should shake things up a bit as new platforms consider new ways to help their developers monetize applications and content.

  3. Oct06

    Google releases stand-alone desktop widget engine

    iGoogle Desktop widgets

    Google Desktop widgets can now be embedded in your iGoogle personal start page. This new functionality adds OS-level functionality such as CPU utilization, currently playing tracks in iTunes, or a battery indicator inside a Web interface. Google Desktop 5.5 is now available in a widget-only version for Windows 2000, XP, and Vista to bridge the desktop and Web worlds.

    The decoupling of Google Desktop Sidebar puts its desktop widget platform in direct competition with Windows Vista Sidebar and Konfabulator. Google can use its widget platform as a beachhead onto the desktop and later encourage its users to enable more Google Desktop features such as search and personalization.

    (Disclosure: Google is a sponsor of my upcoming widget conference, Widget Summit.)

  4. Oct05

    Widget Summit schedule complete

    The Widget Summit schedule is now complete, and I am pretty happy with the results. My goal for the conference is to provide two days of intensive education about the current state of the widget industry and share best practices with the many new publishers entering the space. This year's conference spans two days, October 15-16, covering both the business and implementation of widgets. I will share some of my speaker notes before the conference, but first let's take a look at some of the overarching themes of Widget Summit.

    I've invited the key people behind the platforms to share their first-hand expert knowledge and answer detailed question. You'll hear from the creator of the Facebook Platform, Dave Fetterman, instead of a vision talk or summary from Mark Zuckerberg. I'm sure Mark might sell more tickets, but you can read the history of Facebook in your favorite business press.

    Mobile

    We'll have the heads of third party widget development for both Nokia S60 and Apple iPhone on stage talking about new ways developers can create rich applications for smartphones. Yes, Apple does have a small team dedicated to independent software developers on the iPhone.

    We'll also have University of Maryland professor Ben Bederson sharing his many years of experience designing for mobile displays and interfaces.

    Monetization

    Publishers are pretty familiar with measurement and monetization of traffic on their own websites, but widgets are still a source of confusion. Traditional web measurement tools such as Google Analytics have extended their reach into widgets. We've also seen new widget-specific entrants such as Clearspring and Gigya wrap widgets in a proprietary container for new forms of measurement. All three companies will present during the Widget Measurement panel at Widget Summit.

    Once you have measured your widget audience, how do you monetize? Traditional advertising solutions such as DoubleClick have extended their reach to power in-widget advertising. VP of Rich Media Ari Paparo will share the latest ways big companies are experimenting with widget advertising. We will also have some of the largest widget-specific advertising networks on stage, virtual currency site Peanut Labs and widget promotion network RockYou. The Widget Advertising panel will present widgets as a new revenue source for content syndication.

    Implementation

    It's not enough to simply talk about building a Facebook application or a Dashboard widget. Publishers want to know how much work is involved, the skills needed to create widget content for each platform, and the features necessary to make sure their investment in time and money is ultimately successful. We'll have sessions at Widget Summit that walk you through the steps needed to create an application on Facebook, a sidebar widget for Windows Vista, or a JavaScript widget for blog sidebars.

    If a widget book existed it would likely be out of date at the time of printing. The best way to learn about the latest technologies and implementations is to directly engage the creators of the widget platform and the people creating new widget content every day. They will help you avoid common mistakes, expose a few short cuts, and make sure you don't make some of the most common mistakes.

    Summary

    Widget Summit is just over a week away and should provide an in-depth education for anyone considering a widget strategy or deeper syndication involvement. The schedule is now complete, with some of the best available speakers in their subject areas sharing their expert knowledge on stage. Each speaker is directly involved in widgets at his or her company, and uniquely positioned to answer in-depth questions either on-stage or in the audience.

    Tickets are still available if you would like to join us for two days of widget education and networking.

Niall Kennedy Niall Kennedy is a web technologist in San Francisco, California in the United States. I am very interested in the world of... MORE »

Search this weblog:

Subscribe:

Latest feature: Widget development

Archives: Popular Categories

Sites: More from Niall