Marble Goes Mobile, Take 2


After doing a lot of tasks for Marble during the Google Code-In, I applied to work on Marble as a Google Summer of Code (GSoC) project.


The goal of the project is to improve the mobile version of Marble. This involves several aspects like implementing performance improvements, creating special plugins for mobile use-cases and designing a user interface for the Meego operating system using QML. Currently Marble runs on all Qt-supported operating systems, including Maemo, the operating system of the Nokia N900. It's also part of the project to get it working on Maemo's successor Meego.

Midterm Status

My first task in this project was to write a QtMobility based plugin that retrieves the current GPS position. Because of the system-independent nature of Qt, this code works on several mobile platforms, including Maemo and Meego. Due to my Qt skills and an already existing reference implementation based on another library, I could finish this task pretty fast.
QtMobility as position source

Because of the late release of the Qt-Components for Meego by Nokia, I meanwhile implemented a plugin for geocaching, which fetches cache information from and displays them on the map 1). To accomplish this, I had to implement a XML-parser on top of the Qt-classes and provide a data model for it. This plugins is of course most interesting for mobile platforms. Here are a few screenshots of the plugin in action on the desktop-version of Marble:
Caches displayed on the map.
Tab showing general information about the cache.
Tab showing the description of the cache.
Tab showing the log of the cache.

My current task is to create a QML/Qt-Components user interface, which is optimized for touch-screens. These are pretty new libraries and the documentation is still incomplete and far from perfect. After small difficulties getting the libraries up and running, I have now already created a prototype that covers the basic features of Marble like search, routing and tracking. There's still lots of room for improvements, design optimizations and new features, but this is the current version of „marble-touch“:
Marble-touch interface.

Feel free to test my work, I'm always open for suggestions and bug reports :-)

Final Status

I mostly spent the remaining time of GSoC with polishing existing code and features.
One new thing I introduced into Marble Touch is an activity based management of settings. Instead of manually adjusting settings and plugins for a task, the user just selects an already existing activity with suitable options. The toolbar contains icons to quickly switch between related activities, like switching from „Geocaching“ to „Guidance“ or enable relevant plugins. A future version could allow the user to create new activities, which would turn Marble-Touch into a comfortable one-click application.
Activity Übersicht

Marble Touch works on an N900 running Meego, which is a great step into the future.
Marble Touch auf dem N900

After negotiating with the team they finally agreed to adjust their API and terms of service for the usage within Marble.

Finally I want to thank my mentor who did a really great job and the members of the Marble team who were a great support :)

Contact Information

Due to unclear copyright conditions, the screenshots use dummy-icons from KDE instead of the