Nokia N95 and the Series60 SDK
I finally found some time to have a tinker with the Nokia Series 60 SDK, and build a hello world location application for my Nokia N95. Applications for the Series60 platform can be developed in several languages, as a developer you are spoilt for choice.
Having vague recollections of working with Java whilst undertaking my undergrad dissertation at Lancaster way back when, I plumbed for Java and promptly downloaded the Eclipse IDE. Next up, I installed Carbide.j, a suite of mobile development tools from Nokia. It was at this point I encountered my first frustration; it turns out the Carbide tools from Nokia don’t support the latest version of Eclipse, a school boy error of failing to read the doc. A quick uninstall, download, and install later, I’m back on track with an older version of Eclipse (3.1.2).
Nokia have provided a whole host of up-to-date documentation for building LBS applications for the series60 platform, so I downloaded their TouristRoute Java Midlet example and their location API developers guide. The location API is pretty concise, with a handful of important classes:
LocationProvider: represents the source of the location information (in this case the integrated GPS)
LocationListener: receives events associated with a particular LocationProvider.
Coordinates: represents coordinates as latitude-longitude altitude values.
Location: represents the standard set of location information (time-stamped coordinates, speed, accuracy, course, etc.)
Landmark: represents a known location with a name.
LandmarkStore: has some methods for persistent landmark store management (store, delete, and retrieve landmarks).
The sample built fine, generating a Java Archive (JAR) file and Java Application Descriptor (JAD) file. The JAR file is a package of the classes and resources, the JAD file a description of the Midlet. Right clicking on the JAR file (the midlet executable), the Eclipse context menu gives you two deployment options:
1) Deploy by Bluetooth
2) Deploy to Web Server
Unfortunately my laptop doesn’t have Bluetooth, so I went with option two and uploaded the files to my server (they can be downloaded here). I uploaded both files, the JAR and the JAD, I’m not sure if both are required or not? I added corresponding mime types to the .htaccess file on the server (this instructs the server how to handle requests for jar and jad files) and browsed to the jar file with my mobile phone browser. A couple of keypad clicks later, the application had been downloaded and installed on my phone.

Lots of useful documentation and active discussion forums made getting started building mobile app’s a breeze. However, it looks like my experiences may already be somewhat outdated, it appears Nokia have recently abandoned the Carbide.j developer kit in favour of newer tools provided by Eclipse.
I have had the phone for a couple of months now and am very impressed. Nice design, great camera, and a half decent GPS, but it’s the open development platform that sets this phone apart from the crowd, allowing everybody and anybody to develop a whole host of useful (and not so useful) applications. So far I’ve already acquired SportsTracker, which allows me to save my mountain bike routes as KML, some handy software that uploads my photos to my Flickr account, and the ubiquitous Google Maps which syncs nicely with the GPS.
