# Porting widgets

Although widgets are conceptually similar in different environments, the way they are implemented and built varies depending on the underlying execution environment and the type of browser that is used to run them. Especially the UI resources available may differ notably between environments. For this reason, there are some changes that you need to make manually when porting a widget from a desktop environment to the Web Runtime (WRT) environment of S60 mobile devices.

The most important aspects to consider in the porting process include:

- Adjusting UI components

  Due to the differences between the user interface of a desktop environment and that of a mobile device, you need to implement the S60 platform UI requirements on top of your widget. This includes scaling the UI to make it suitable for the mobile device screen size as well as handling possible screen orientation changes. For more information on UI related considerations, see Designing for mobile devices.

- Navigation in the widget

  Due to the small screen size and lack of a mouse and a full-size keyboard, the navigation experience of a widget should be made as simple and easy as possible. This may mean adjustments to the navigation mode, scrollbar usage, and key input handling, for example. Consider using softkeys and menu options in your widget.

  For more information, see Managing user interaction and Moving within widgets.

- Differences in supported tags and API functionality

  The underlying execution environments for widgets share many common features. However, the WRT environment may include some limitations to tag and method support compared to the environment from which you are porting. On the other hand, the Web Runtime API reference provides some additional features that are mobile device specific.

- Differences in file paths

  You may need to modify the file path references of the widget to make it compliant with the file system of the S60 platform.

- Plug-in interface support

  Your widget may include functionality that relies on plug-in interface extensions, and the WRT environment may not support such plug-ins. In this case, you may not be able to implement certain functionality in your widget in the WRT environment.

- Library support

  The WRT environment only supports libraries that are not copyrighted or protected by any means.

- Deployment

  The way in which widgets are deployed to the S60 mobile devices differs from widget deployment in other execution environments. For more information, see sections Widget development process and Deploying widgets.

For more information on porting widgets, see Porting Apple Dashboard Widgets to S60 available at Forum Nokia.