# Widget development process

The widget development process includes several steps. It is important that you go through all these steps.

To develop a widget for S60 mobile devices:

1. Define the purpose and scope of your service and design the widget.

   Before starting widget development, analyze and define the requirements, scope, and functionality of the widget to ensure efficient functionality and a smooth user experience. Design the widget for a single purpose and analyze how it can best serve its users. Carefully consider the special features of the mobile device environment when you design the implementation. For more information, see Designing widgets.

   This step also involves choosing the Web Runtime (WRT) version for which you develop the widget. Different versions support different features. The functionality of the widget determines which features it uses. While the WRT environment is backward-compatible, so that widgets created for an earlier version run also on a newer one, the opposite is not guaranteed. The WRT version you choose thus determines not only the available features for implementing your widget but also the range of devices that can run the widget. For more information, see sections Web Runtime features and Web Runtime versions and device support.

   Your design should also take into consideration whether the target devices support user interaction by touch and running widgets on the home screen. For more information on home screen widgets, see Introduction to home screen widgets.

2. Create the widget functionality and all the required component files.

   Widgets are based on standard Web technologies, so you can develop your widget using the same tools that you would use to create Web content. For instructions on how to implement the widget functionality, see section Developing widgets. For more information on the required widget component files, see section Widget component files. For code examples, see the section Web Runtime API reference and the Web Runtime Code Examples available at Forum Nokia.

   It is also possible for you to port existing widgets from the Web or desktop environment to S60 mobile devices. For more information on important porting related considerations and changes that you may need to make, see section Porting widgets.

3. Create the widget installation package:

   1. Select the file system directory that contains the widget component files.

   2. Right-click to create a ZIP archive of the directory using a ZIP utility, such as WinZip.

      Note: The directory must be included in the ZIP archive. That is, the root of the ZIP archive must contain the directory, which in turn contains the widget component files.

   3. Rename the ZIP file manually to have a `.wgz` extension.

4. Test the widget.

   You can test your widget on a compatible S60 mobile device or on the emulator included in the S60 C++ SDK. For more information on testing widgets, see section Testing your widget.

5. Publish the widget and offer it to end users for installation on S60 mobile devices.

   For more information on deploying widgets, see section Deploying widgets.