# Opera Widgets: Cross platform applications

The Opera widgets runtime is available on all platforms where Opera 9.x is available. This article discusses the nature of Opera Widgets, as cross platform applications, goes through the benefits of their implementation model, and looks at some platform variations to be aware of when creating widgets.

## The same web technologies on all platforms

A key feature of Opera is that the browser is based on a common implementation of web technologies which is reused on all platforms where Opera is available.

The Opera Widgets runtime is based on the same common implementation of web technologies as is used by the browser. A widget can use the same web technologies even if its running on platforms as different as a Windows desktop machine or a mobile phone running a proprietary operating system. The web developer has access to the same features with the same quality on all platforms.

The benefits of this include:

- Reuse of knowledge
- Reuse of code
- Shorter development time
- Less risk, higher quality
- Increases the user base for your widgets
- Simplification of development process

The Opera widgets runtime is available on platforms like:

- Windows Mobile
- Linux for various embedded systems architectures
- Linux on x86, Sparc and PowerPC architectures with support for a large number of distributions
- Microsoft Windows on x86 architecture
- Solaris on Sparc and x86
- Mac OS X
- FreeBSD on x86
- KDDI auWidgets – based on Opera 8
- Nintendo Wii
- UIQ

## Platforms have different characteristics

Even though the same web technologies are available on many platforms, a widget may not behave the same way on all platforms.

This is primarily due to the fact that platforms have different characteristics, for instance:

- CPU performance
- RAM amount available and access speed
- Permanent storage space and access speed
- Network bandwidth and latency

Also, the devices will vary with respect to issues like:

- Input capabilities, support for full or limited keyboard, mouse, stylus, joystick, etc
- Screen size, pixel density, screen readability
- Power source and battery life.

Such characteristics either directly affect the performance of a widget limit, or even aid the user in interacting with the widget.

## Different use contexts

Users use different devices in different settings, for instance, a desktop computer is used while sitting down, focusing fully on what’s on the screen. A mobile phone is mostly used when moving around, supporting the user in his primary task.

The user’s needs are not the same in different use contexts, even when using the same widget.

As an example, consider a travel related widget:

- While planning the trip, the user uses the widget on his desktop computer to research places he may want to visit
- When out traveling, the user use the widget on his mobile phone to quickly get access to maps and key information aiding him in getting around

A widget need to adapt to the use context in order to be successful.

## Conclusions

Using your web developer skills and the Opera Widgets runtime you can create applications able to run on a wide variety of platforms.

In order to develop successful widgets you must understand the use contexts and devices where the widget will be used. You also need to consider the characteristics of the device it will be running on.