First look at the Nokia N97 SDK

Published by at

The Nokia N97 SDK is the first device specific S60 SDK released by Nokia. While the additions are not numerous, it offers some interesting new APIs for both C++ and Java technology. In addition, the emulator enables testing of the new home screen features for C++ application and WRT widgets.

The Nokia N97 SDK represents something of a stepping stone from the old S60 world into the new Symbian Foundation environment. As such the new APIs offered are more of an evolution than revolution, with two new APIs for C++ and two for Java. However, it’s not about the number of APIs, it’s about what they can be used to achieve. From this perspective the Nokia N97 offers some exciting new possibilities.

Let’s kick off with C++. The two new APIs are the home screen publishing, and out-of-memory monitor APIs.

You may already be aware that the Nokia N97 introduces a new home screen, which replaces the active idle screen seen on earlier S60 devices. Using this home screen widget developers have the ability to create a ‘mini’, display only, view of their widgets that users can choose to add to the home screen. This enables, for example, an instant view of local weather, sports results, or whatever the widget’s content provides. 

The home screen publishing API extends this capability to C++ applications, enabling a similar display only view of the content of a native S60 application. The API enables developers to create a home screen view, publish it (so users can select it in the home screen’s ‘edit content’ option), and then update the views content.

The emulator in the Nokia N97 SDK provides an implementation of the home screen. This allows applications (and widgets) that have home screen views to be tested. 

Nokia N97 SDK emulator

Sample C++ home screen widget and the Stew WRT widget in the Nokia N97 emulator’s home screen.

By contrast, the out-of-memory monitor API provides entirely ‘under the hood’ functionality. 

S60 devices include a mechanism for guarding against low memory situations interfering with the user’s experience by closing low priority, less used applications. While this optimises the user experience in one direction (minimising the need to manually close applications) it does mean that applications waiting in the background for an infrequent trigger could be closed when the available memory gets low. If the user is relying on such an application to provide some alert, having it closed may be undesirable. The out-of-memory monitor API provides developers with control over this automatic closure by allowing them to give their application a higher priority, thus reducing the likelihood of it being closed in a low memory situation.

For Java developers, the Nokia N97 SDK includes the JRT for S60 1.4 that provides the Sensor API (JSR-256) and an updated version of the Nokia UI API (now at version 1.3). Of these, the Sensor API will be of most interest, providing Java developers with the ability to read data from the accelerometer, battery charge sensor, charger state sensor, and network field intensity sensor on the Nokia N97. The ability to gain information from the accelerometer is likely to be the most heavily exploited feature, as it will allow motion based control to be added to Java games and other applications.

As you may have spotted from the emulator screenshot provided earlier, the emulator offers a N97 facia and two orientations – the illustrated landscape format with keyboard and the keyboardless portrait orientation. 

This is an early release of the SDK, versioned at 0.5. If the versioning can be taken at face value then this is one of the earliest publicly released SDKs from Nokia for some time. However, given that most of the functionality is drawn from the S60 5th Edition SDK, it should be quite stable. Certainly building and running the example applications was straightforward and issue free.

The modest number of new APIs and features in the Nokia N97 SDK belies a significant opportunity for developers. The ability to place application and widget information on the Nokia N97's home screen provides an exciting opportunity to integrate applications and widgets more closely into the overall device experience. But developers will need to be inventive, as the home screen can only accommodate a handful of views. 

The SDK can be downloaded from Forum Nokia here.