Designing for multiple devices

Creating applications for multiple devices can produce design challenges that need to be considered at the design phase. The variations between mobile devices mean that checking the implementation details of each device and testing the application on all target devices is mandatory. The following is a list of the main issues in designing for multiple devices:

Porting considerations

With S60 and Series 40 devices, five key issues affect the amount of work needed to port MIDlets from one device to another:

  • Display

    The difference in size between Series 40 and S60 device displays is considerable: from 128 x 128 pixels for Series 40 devices to up to 416 x 352 pixels for S60 devices. It may be possible to use the same graphics for both platforms, but optimizing the graphics for each screen size requires redrawing the images from scratch. This allows taking full advantage of the display.

  • Processing power

    Current S60 devices have significantly more processing power than current Series 40 devices. This means that a MIDlet using standard MIDP will run, without modifications, on S60 devices as well as or better than on Series 40 devices. However, taking full advantage of the device requires modifications to the code. This might include, for example, adding more visual background layers for the S60 version.

    Keep also in mind that although S60 devices have greater processing power, using expensive operations can negate the advantage. For example, including unnecessary screen drawings where larger screen sizes can quickly absorb most of the processing power. Therefore, great care is needed when optimizing application performance.

  • Amount of heap memory

    Series 40 devices have a limited amount of heap memory, whereas S60 devices have a scalable heap. Because of this, a MIDlet developed for the Series 40 Platform can be ported without modification to the S60 Platform.

  • JAR file size limitation

    Series 40 devices using MIDP 2.0 have a JAR file size limitation from 128KB to up to 1MB depending on the device, whereas for the S60 Platform, the JAR file size is limited by the mobile device's total application memory space. Since the application memory space is usually measured in megabytes, it should not become an issue. In theory, a MIDlet developed for the Series 40 Platform can therefore be ported without modifications to the S60 Platform.

    Note: There might also be device-specific maximum download sizes, which define the maximum size of content allowed to be downloaded to the device. In many products the maximum download size (for any content) is smaller than the maximum allowed application size. This means that it may be possible to install applications via PC suite, for example, where they could not be downloaded over the air.

  • Keypad

    The location of softkey labels on the display can change between mobile devices or even within the same device when switching between device configurations. As long as the application uses only high-level Command APIs, the softkeys are correctly accessible regardless of the device configuration.

    Current MIDP 2.1 devices support multiple simultaneous key presses. MIDlets designed with a single key press in mind usually work without modification in MIDP 2.1 devices. However, to take full advantage of the devices, support for multiple key presses should be added. Adding support for multiple key presses into a ready-made game might be a tedious task. Therefore, designing the application from the start to support multiple key presses saves time. If using multiple key presses is essential, the MIDlet may have to alert the user that multiple key presses are not possible when running on devices without this support.