Mobile widget developer tips.

In my presentation Developing Mobile Widgets at Mobile Web Ameicas, I used these guidelines from Opera. Hope you find them useful. If you have any tips to add, I can include them here. Many thanks to the team at Opera for this!


- Keep the user interface simple

- Keep the technical solution simple


- Optimize client/server network communication

- Minimize amount of data transferred

- prefer JSON over XML

- Batch requests to the server, use HTTP pipelining

- Let the server return HTTP 304 when data has not been updated on



- Keep your DOM short, simple and shallow

- Store data in Javascript variables and create DOM elements only for

the current view.

- Avoid hiding large number of elements with CSS display: none;

instead remove the elements from the DOM and store data in

Javascript variables


- Avoid reflows. Examples of things that may cause reflows:

- Change of class names

- Change of element dimensions and positions

- Insertions of elements into the DOM; insert completed

document fragments; don’t add element by element


- Follow the steps of user centered design:

- Understand the needs of your users

- Understand the environment where the widget will be used

- device characteristics

- context where the widget will be used, e.g. mobility, light,


- Create scenarios and use-cases

- Wireframes, prototype and test

- Inputing data on mobile devices is generally difficult, let the user

make selections instead of typing

- Desktop services to be presented as mobile widgets must be

redesigned to work

- Use CSS style sheets to adapt the visual presentation of the widget

for devices with different characteristics


  1. Erdem says:

    Hey there,
    If you want to create mobile widgets easily, you can best use GLOWE.
    The Global Language for Open Widget Environments is ment to be an open specification that everyone can use.
    Very easy to create a first widget. :-)

  2. Shridhar says:

    Hi All,
    I need to develop a widgets for mobile phones using java script. I am new to this field. If it is possible, please give me a reference.
    Is there any online tutorial?
    Hope I get a reply from u ppl.
    Thanks in advance.
    Shridhar G