MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

Harmattan application evolution

MeeGo 1.2 Harmattan platform evolves. While the interface changes visible to applications are kept to a minimum, some friction is inevitable. This section outlines the key findings and best practices on how to ensure that your application is usable between different versions of Harmattan.

As noted, changes in the application programming interface are kept to a minimum. In addition to API changes, other changes are:

  • Behaviour of platform (If you have created workarounds to mitigate bugs in the platform, they may be unnecessary or even misleading.)
  • The UI of the platform.
  • New credentials required by the platform security

Harmattan emulator (QEMU) for the Qt SDK and Scratchbox is available as PR1.0, PR1.1 and PR1.2 images, so you have access to older environments as well. You can also use the RDA (remote device access) at http://apu.ndhub.net/devices.

Platform releases

A typical version number is formatted as XX.YYYY.WW-#_PR_VVV, where:

  • XX is the GSM Software Version Number (SVN)
  • YYYY is the build year
  • WW is the build week
  • # is the release candidate serial number on that week
  • VVV is the variant configuration code

For Nokia N9 the SVN number 10 stands for Harmattan 1.0, 20 for Harmattan 1.1, 22 for Harmattan 1.1.1 (Arabic) and 30 for Harmattan 1.2. For Nokia N950 Developer Device the first SVN number 1 stands for Harmattan 1.0, number 2 stands for Harmattan 1.1 and 3 stands for Harmattan 1.2 beta.

A variant configuration within a release consists of same software code line but some application data, modules or applications them self may be in or out between variants. For example, a typical space consuming regional variable in devices is the pre-loaded maps data. The VVV variant codes are as follows:

  • 001: Europe
  • 003: China
  • 005: SEAP
  • 006: Arabic
  • 009: Europe-2 (almost identical to 001)

Additionally to these listed variants, there are numerous country- and operator-specific variants with differences, for example, in selection of preloaded applications or operator specific needs.

The version number 3.2012.02-6_PR_003_RM680 can be read as Harmattan PR 1.2 (beta) for Nokia N950 that was built on week 2 of 2012, 6th release candidate during week 2, production image, Chinese variant for RM680 where RM680 is the production code for Nokia N950.

Released public software versions for both N950 and Nokia N9 are as follows, in chronological order:

  • Harmattan beta 1 for N950: 1.2011.22-6_PR_RM680 – Not supported and should not be used any more
  • Harmattan beta 2 for N950: 1.2011.34-2_PR_RM680 – Equivalent to Harmattan 1.0 001 variant for Nokia N9
  • Harmattan 1.0 for Nokia N9: 10.2011.34-1_PR_### – 001, 005, 009 and other variants, no 003 or 006 variants
  • Harmattan 1.1 for N950: 2.2011.39-5_PR_###_RM680 – Equivalent with 001 Harmattan 1.1 variants for Nokia N9
  • Harmattan 1.1 for Nokia N9: 20.2011.40-4_PR_### – 001, 003, 005, 009 and other variants
  • Harmattan 1.1.1 for Nokia N9: 22.2011.44-2_PR_### – 006 and other Arabic regional variants, not available for 001, 003, 005, 009 and other equivalent variants
  • Harmattan 1.2 beta for N950: 3.2012.02-6_PR_RM680 - The 1.2 beta release for the Nokia N950
  • Harmattan 1.2 for Nokia N9: 30.2012.##-#_PR_### - Available later on all variants, release number not disclosed yet

Target releases

Despite the number of platform releases, there is only one Harmattan target version. The application programming interface of the device is effectively frozen to the PR1.0 level.

The API is effectively frozen, changes to it are backwards compatible and extend the existing functionality. Bug fixes in the device software imply no interface changes.

This keeps things simple for developers, as there is no need to maintain multiple parallel versions.

Application releases

Nokia Store accommodates only a single version of an application at a time. Therefore, platform release-specific versions cannot be utilised.

If an application's dependencies cannot be satisfied on the device and the content of Nokia-maintained applications repository, an attempt to install it will trigger a platform update (once it has been downloaded to the device, the package manager functionality takes care of dependency management). If an update is not available, the application cannot be installed.

Hence the best proposition is to create an application that is usable in all Harmattan platform releases. To make sure that your application is compatible with all Harmattan versions, do not use the APIs that are only available in the latest platform release.

Effects on application development

Effectively there are two main cases to consider:

  • Porting an existing application to PR1.1.1/1.2:
    • The font metrics for the default font are different. This impacts layouts where changing text heights pushes content off screen. In the worst case scenario this renders the application unusable as the interactive elements are no longer available). For more information, see section Font sizes in different Harmattan releases.
    • If your application uses the calendar service, the GRP::calendar security token is required. However, the token existed already in PR1.0 and it is still added automatically to the Aegis manifest file when you package your application.
  • Creating a backwards-compatible applications that work on PR1.0 and PR1.1 platforms also:
    • The font metrics are different. For more information, see section Font sizes in different Harmattan releases.
    • Different versions of platform components, for example:
      • Qt Quick Components
      • WebKit
    • Bugs in the old platform

The FCam API

The new API introduced in PR1.2, FCam, provides mechanisms to control the various components of the Nokia N9 camera to facilitate complex photographic applications. The API is added to the SDK by downloading it and installing it with the MADDE terminal.

For more information and installation instructions, see: FCam.