MeeGo 1.2 Harmattan Developer Documentation Develop for the Nokia N9

MeeGo 1.2 Harmattan API Overview

MeeGo 1.2 Harmattan API is a collection of APIs aimed for application developers. It is an essential part of the developer offering for Harmattan application development. The information in this API documentation has been collected from various sources. There is a separate summary page for each API library that explains its contents and features.

On this site, you can browse MeeGo 1.2 Harmattan API and learn about its capabilities. To serve both beginners and more advanced developers, MeeGo 1.2 Harmattan API has been categorised both according to topics and libraries.

To get started, you have two options:

MeeGo 1.2 Harmattan API Topics

The MeeGo 1.2 Harmattan API topics contain MeeGo 1.2 Harmattan APIs categorised according to function. This categorisation makes it easier for you to find APIs to use for a particular function in your application.

Each API listed in the topics linked to below is a part of a specific library in the MeeGo 1.2 Harmattan API. In some cases, it may be necessary to identify the originating libraries of the APIs you decide to use. Therefore, for each API, the originating library is also identified in the rightmost column of the tables on the topic pages.

For information on the Nokia N9 user experience and user interface items, see the Nokia N9 UX guidelines.

The table below describes MeeGo 1.2 Harmattan API by topic:

MeeGo 1.2 Harmattan API topics
Topic Content
Application Frameworks Frameworks for building application UIs
Communications Social and human interaction, connectivity and networking
Graphics Generating and rendering 2D and 3D graphics
Location Identifying geographical location of the device or, for example, landmarks.
Multimedia Media playback and recording, streaming
Personal Information Management Personal information, such as contacts, calendar entries, and business cards
System Access to device resources

MeeGo 1.2 Harmattan API Libraries

You can also browse MeeGo 1.2 Harmattan API categorised according to library. This categorisation makes it easier for advanced developers to choose which specific libraries they want their application to have as a dependency.

MeeGo 1.2 Harmattan API libraries consist of:

The tables below describe MeeGo API libraries and Nokia Specific APIs:

MeeGo API libraries
Library Content
EGL 1.4 An interface between the platform window system and rendering APIs such as OpenGL and OpenVG. Makes it possible to use several rendering APIs together. Can be used for accelerated mixed-mode 2D and 3D rendering.
GStreamer and GLib Libraries which allow you to create media-handling components, such as simple audio playback, audio and video playback, recording, streaming and editing. The components can be used to create versatile multimedia applications including video editors, streaming media broadcasters, and media players.

GStreamer is written in the C programming language with the type system based on GObject, and it is licensed under the GNU Lesser General Public License. GLib is a C standard library released under the GNU Library General Public License (GNU LGPL). It provides data types, macros, type conversions, string utilities, file utilities, a main loop abstraction, and so on. Glib supports many UNIX-like platforms, Windows, OS/2, and BeOS.

OpenGL ES 1.1 A low-level API for producing hardware-accelerated 2D and 3D graphics.

Use OpenGL ES 1.1 to maximise portability to a large number of devices.

OpenGL ES 2.0 A current version of OpenGL ES. Features a programmable 3D graphics pipeline.

Use OpenGL ES 2.0 to achieve maximum performance with the programmable hardware.

PulseAudio Low-latency tools for advanced audio processing
Qt 4.7 Qt is a cross-platform application and UI framework. Using Qt, you can write web-enabled applications once and deploy them across desktop, mobile and embedded operating systems without rewriting the source code.

Note: Harmattan supports Qt 4.7.

Qt Mobility 1.2 Qt APIs that enable access to many mobile device specific functionalities. Qt Mobility APIs enable cross-platform mobile application development.

Note: Harmattan supports Qt Mobility 1.2.

Qt Webkit 2.1 The QtWebKit module provides a web browser engine as well as classes to render and interact with web content.
Telepathy-Qt4 Qt4 high-level binding for Telepathy, which is a D-Bus framework for unifying real time communication. It allows access to services such as instant messaging, voice calls, and video calls.

Nokia Specific API libraries
Library Content
Accounts-Qt An interface for setting up account information, and managing accounts.
EGLIBC A set of common system and library calls for UNIX-compliant systems. Defined in ISO C and POSIX standards. Regarded as part of the unified UNIX standard.
Events Feed Events Feed provides an interface to the event feed that the developers can use to create and manage event feed items.
FCam Provides mechanisms to control various components of a camera to facilitate complex photographic applications.
GConf Provides an API for managing configuration settings for applications.
In-App Analytics API In-App Analytics API allows developers to track application usage, reporting usage data to the back-end server, which generates usage reports.
MDeclarativeCache MDeclarativeCache provides way for QML applications to ask already created instances of QApplication and QDeclarativeView classes. It helps to reduce application startup time.
NDEF Message Push Provides a Qt-based API to push NFC (Near Field Communication) messages to other devices.
Notification API Provides an interface to handle Ovi notifications
QmSystem Library which provides public interfaces to different system functionalities and hardware through Qt API. For example, energy management, system state management, sensors, device mode, accessories, display back light control, and time management functionalities can be interacted with using QmSystem.
Qt Games API Qt Games API adds to Qt a pure OpenGL ES 2.0 interface with specific functionalities to aid in game development and game porting.
Qt Quick Components Qt Quick Components provide a set of Qt Meta-Object Language (QML) based widgets and other elements that you can use to build a user interface for your application that matches the native look and feel of the device. The use of Qt Quick Components is recommended for the native look and feel.
Qt Quick Components Extras Qt Quick Components Extras provide an additional set of Harmattan widgets and building blocks. They are built with QML and you can use them in your QML application in the same way as the other Qt Quick Components.
QtSparql Library which allows clients to query information from RDF databases. The API provides backends for:
  • Tracker search engine
  • online databases such as DBpedia
  • Virtuoso Universal Server
Resource Policy Library used to request resources from the Policy Resource Manager, which controls prioritisation of applications for using resources. Additionally, each application is tied to a device mode, and the active device mode is chosen based on which running application has the highest priority. Device modes include, for example, telephony, camera, and media player.
SignOn An interface for setting up user authentication.
Transfer UI Transfer client API provides way for Qt based applications to request Transfer UI to present transfers of application to user.

Legal notice

Nokia is a registered trademark of Nokia Corporation. OpenGL is a registered trademark and the OpenGL ES logo is a trademark of Silicon Graphics Inc. used by permission by Khronos. Other product and company names mentioned herein may be trademarks or trade names of their respective owners.

GStreamer is released under the LGPL license.

MeeGo is a registered trademark of The Linux Foundation.

Copyright © 2010-2012 Nokia Corporation. All rights reserved.