Introduction to Nokia Asha

Nokia Asha software platform builds on the strength of the Java ME Platform, and further extends it with a number of powerful features. There are a number of Nokia APIs that extend the platform’s capabilities and provide features often seen in smartphones. Nokia Asha platform is a direct descendant to Series 40 platform and therefore most Java ME applications are very easy to get working on both platforms.

This section covers Nokia Asha user interface, key mobile technologies, and enablers you can use in developing Nokia Asha applications. You can also get additional information on developing apps for Nokia Asha on Nokia Asha developer site.

It is also possible to develop web apps for Nokia Asha with the Nokia Web Tools. The focus of this library is on Java ME based development.

Devices running Nokia Asha platform

Nokia Asha devices are affordable smartphones that are easy to use and have a long battery life. The first device to run the new Nokia Asha software platform is Nokia Asha 501. The full-touch phone design is optimised for use with one hand. The display resolution is 240x320 pixels. For detailed information, see Device specifications.

Figure 1. Nokia Asha 501

UI layer - LCDUI

LCDUI (Limited Connected Device User Interface) is the default UI toolkit for Java ME applications. It provides a resource-efficient approach to UI development.

LCDUI has a simple screen-based approach, where a single Displayable at a time is always active in the display area of the application UI. The Displayable can contain predefined screen elements, or it can be manipulated in more specific ways. It provides high-level APIs with easy-to-use view components, as well as more customisable low-level APIs.


Figure 2. UI examples using LCDUI high-level APIs and low-level APIs

High-level LCDUI components use the predefined touch implementation provided by the device, so you do not need to separately program touch interaction for them. Low-level LCDUI components, however, do not automatically implement touch functionality, so you need to separately listen for and handle touch events for these components. In other words, MIDlets that use only high-level LCDUI components work on touch devices automatically and do not need to separately handle touch interaction, whereas MIDlets that use low-level LCDUI components need specialised methods to handle touch events and implement touch functionality.

High-level APIs: ready-to-use components

The high-level APIs provide ready-to-use classes, where aspects such as drawing, fonts, and navigation are taken care of. You only need to populate them with content, and they map directly to native Nokia Asha or Series 40 UI controls.

It is also possible to combine the power of the high-level and the low-level APIs by creating custom view items based on the CustomItem class. In this approach, you have full control over how a single item gets drawn, but you still get a lot of functionality for free from the platform.


Low-level APIs: custom Canvas

To give you greater control over the fine details, the low-level APIs provide less abstraction than the high-level APIs. These components are designed for applications that need precise placement and control of graphic elements, customisable features and access to key input events coming from other sources than only soft keys. Applications programmed using the low-level components might need additional capability detections depending on how they are used, since the low-level API provides the means to access details that are specific to a particular device. A typical example of a low-level component utilising application would be a game.

Using the low-level component, an application can:

  • Have full control of what is drawn on the display.
  • Listen for key presses and releases from all the keys in the mobile device.
  • Access concrete keys.

The main classes of low-level user interaction are Canvas and GameCanvas.



In-app payment

In app-payment allows you to integrate a Nokia Store payment feature into your Java application in a simple and seamless manner. The benefit of in-app payment is that it offers new content marketing and revenue opportunities limited only by your creativity and imagination. You will need to be a Nokia Publisher and to distribute your apps through Nokia Store to take advantage of this API.

Read more about Nokia In-App Payment from the Nokia Developer site.

In-app advertising

In-app advertising achieves the same goal as in-app payment – it generates revenue from an app throughout its whole lifetime, as opposed to only once at the time of download. In-app advertising is often regarded as 'the price a user pays' for a free-to-download app, and therefore it is usually used in conjunction with the free download model.

Read more about Nokia Ad Exchange from the Nokia Developer site.


Nokia APIs

Nokia UI API

The Nokia UI API offers MIDlets specialised features that are not available in Java ME platform APIs.
  • Gesture API and Frame Animator API
  • LCDUIUtil support for setting the touch editing style for Form Items
  • LCDUIUtil support for defining how an unfocused CustomItem behaves when touched
  • AudioOutputControl
  • TextEditor and CanvasGraphicsItem
  • Clipboard
In addition to these Series 40 compatible APIs, Nokia Asha platform provides the following new APIs.
  • File selection
  • Image scaling
  • Network state
  • Contacts
  • Phone settings

Nokia Notifications API

Nokia Notifications API allows sending messages from an application-specific internet service to MIDlets on Nokia Asha devices. The messages from the information publisher are sent using push technology, so there is no need for periodic polling. This minimizes power consumption.


HERE Maps API for Java ME is a set of programming interfaces, allowing you to develop mobile device applications featuring HERE Maps. The API provides basic services like mapping, search, routing, geocoding/reverse geocoding, sharing, and KML functionality. The simplest map you can create with this API is a zoomable and pannable map that uses default settings. You can change its look and behaviour, and add overlays with custom content. The API also offers a versatile event handling system, allowing users to interact with the displayed content.


Figure 3. Tourist Attractions, an example that uses the HERE Maps API


Java ME platform libraries

Platform libraries provide the basis for Java ME applications. Some of the APIs are optional and devices may support only some parts of the APIs.


Networking in Java ME enables writing portable networking code and gaining access to network resources. Supported are, for example, HTTP and HTTPS connections, straight TCP, serial port, and Secure Socket Communication.


Figure 4. WeatherApp, an example that uses networking


Location API

Location API provides a natural way to utilise location-based information. The main features that the Location API brings to mobile programming are:
  • Obtaining information about the location of a device.
  • The possibility to create, edit, store, and retrieve landmarks.
  • The possibility to obtain the orientation of a device.
  • The possibility to get landmark proximity events.
Nokia Asha and the latest Series 40 phones incorporate Network cell ID based positioning that is available for Java applications via Location API. It is a lightweight and fast solution which impacts battery life considerably less than GPS, and provides good enough accuracy for most application use cases - even indoors. The availability of the Location API is hardware dependent. It is supported in all phones based on Nokia Asha software platform, Series 40 Developer Platform 2.0 (Series 40 full touch phones), and Series 40 Developer Platform 1.1 (more recent touch and type phones).

Figure 5. WeatherApp, an example that uses Location API


Mobile Sensor API

The Mobile Sensor API allows MIDlets to fetch data from the sensors of a mobile device. Supported individual sensors vary among devices, and not all sensors are available on all phones.

Figure 6. Explonoid, an example that uses Mobile Sensor API


Last updated 4 July 2013

Back to top

Was this page helpful?

Your feedback about this content is important. Let us know what you think.


Thank you!

We appreciate your feedback.