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.
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
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:
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 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 UI API
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
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
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
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