2012-02-04

Work-in-progress: VeskuMaps

I've been working on a simple Google Maps -client for N9 as a hobby project on my spare time. At the moment I'm calling it VeskuMaps, but I'm going to figure out better name hopefully soon.

I originally got interested in writing my own Google Maps -client when I started using Nokia N900. Quite quickly I got frustrated on the built in Maps app. It was too slow, had strange UI, and worst of all it often failed to find what I was looking for. My previous phones before N900 had nice simple Google Maps -clients.

I decided to write a simple Google Maps-client optimized for searching services. In my work I had gotten familiar with Qt and QtWebkit, so it wasn't a big effort to write a simple client using them. After I got basic functionality working, my role in work changed a bit and I got a lot more busy. I did not have enough time or motivation to really polish what I had done and publish it. In anycase, it already worked for my occasional needs. The screenshot shows what it was about.

Nokia Maps in N9 is a lot better than the maps app N900 had. It's not quick to start, but otherwise I'm pretty happy with it, and I use it a lot. Still, sometimes I want to use Google Maps for finding services, since their database of services and points of interest covers couple of places that Nokia's doesn't. This is why I took my old N900 app's code and decided to port it to Harmattan.

I did a first version before QML was chosen as the main UI framework, so I did it using MeeGo Touch Framework. I basically threw away all the QWidget code and replaced it with MTF. Not a big effort and worked quite nicely too. It was far from complete though and I had to use Scratchbox for development since QtSDK support for Harmattan was nowhere to be seen at that time. History repeated itself and again I got more busy at work so my motivation to work on the app on my spare time disappeared.

Lately I've been working more and more with QML apps, like Helium-browser. I enjoyed working on making QtComponents version of Helium. This was because QtSDK finally supports QtComponents in Qt Simulator. This makes development really quick and easy. Last weekend I remembered my old Maps-client and picked up the MTF-based sources and started to port it to QtComponents.

I threw away all the C++ code and just kept HTML/JavaScript/CSS and started adding QML around it. In the application HTML and JavaScript is used for accessing Google's APIs and for the map content. QML defines the user interface around the map content and provides the location information. Only C++ is only used for loading the QML and for setting configuration options for the WebView. After couple of long days and few evenings I'm starting to be quite happy about the result. There is plenty of things still to polish and few features I'd like to implement, but I think already now the app is usable. Probably after this weekend I'll make the .deb for N9 available and after some polising I may even publish it in the store. This time it very likely that I'm not going to be busy at work.

The app also runs on Nemo Mobile, but I have not yet done the packaging since it is not as useful in Nemo, because GPS does not work in Nemo yet.

No comments:

Post a Comment