Scalability

The term scalability refers to the ability of an application UI to function as designed in mobile devices with different screen resolutions or orientations. For example, in the figure below, the UI scales to fit both portrait and landscape orientations.

Figure: Scaling

When you enable scaling in your application, you allow your application to support the different display sizes, resolutions, and layouts for different devices based on the Symbian platform. The Symbian platform provides APIs and other support to enable scaling in applications. Some scaling issues are handled by the application framework if support is enabled, while other issues need to be handled by the application. The details of what can be handled where depend on the nature of your UI architecture. A general rule of thumb is that the greater the degree of customization in your application, the more you need to handle scalability issues in the application.

You are not required to enable scaling in your applications, although it is recommended as it enhances usability for mobile device users.

The following issues should be kept in mind when enabling your application for scaling:

  • Layout information should not be hard-coded.

    The Symbian platform provides the AknLayoutUtils class for building layouts from resource files.

    Note that you also need to override CCoeControl::HandleResourceChange() and CEikAppUi::HandleResourceChangeL() in your application to draw your application again in the event that the orientation of the display changes.

  • Scalable fonts should be used.

    The Symbian platform provides methods in the AknLayoutUtils for using logical fonts from an enumeration in the avkon.hrh file.

  • Scalable icons should be used.

    Scalable icons are based on SVG Tiny (SVG-T) format graphics.