Recently I finished my previous project, a Yammer mobile client called Mash. Actually I didn’t really finish it, it’s more like stuck. I published versions for Symbian^3 which is now available in Ovi Store, and also published a version for MeeGo Harmattan, which is still in Q&A while writing this post. N900 has totally lost my home wifi which makes testing the software with it quite challenging. Also for any fun, a friend told me that even reflashing don’t take the problem away, something to do with mac addresses. I could port the client to upcoming Qt Lighthouse Android port, but I don’t own any Android devices, probably making that target secondary for now. Only thing to do is to port the app to MeeGo tablet and netbook which might take a day or two.
It starts to get me feel a bit happy, but empty when the project is almost ended, and now I needed to come up with something else. For a big while, I’ve been pondering of starting a new open source project, and that’s where my new hobby, geocaching did me a favor. I noticed that geocaching.com has a comprehensive list of utilities provided for geocaching by different parties. Even if the list was long, I noticed the absence of support for Nokia devices there. They are serving the masses from their perspective, which usually means support for iPhone, Android and BlackBerry, are there others? No, at least that’s how some people think. I decided that this is a good spot for me to check in. I investigated a bit and found out that geocaching.com is soon going to publish an API, which is already in beta testing and used by the apps mentioned earlier. Using those API’s will also provide a seamless (paperless) geocaching experience for those users who knows that there exists also Nokia phones.
Even though the API is not available yet, I already started a project: OpenCache. Naturally it’s going to be done with Qt, since it nicely gives the possibility to port the application to multiple platforms including MeeGo tablet & netbook, MeeGo Harmattan, Maemo, Symbian^3, and possibly Android. It’s going to utilize QML in the UI as much as it can, and the rest is going to have Qt/C++ under the hood. I already took a closer look at Qt Mobility’s location / positioning API and found it very suitable for this mission. OpenCache can be targeted for every mobile phone which runs Qt and has GPS. They are not too strict requirements, are they? I even saw someone saying at IRC that Qt Core is already ported to iPhone and porting Qt Gui is in progress, so here we come! More targets, yummy targets, omnomnom.. Ok that’s enough, even getting ports for N9, N950 and newest Symbian phones would be cool enough for me.
So, what is it, the OpenCache, it lot depends how broad will be the geocaching.com API. Because I have no idea about that yet, we’ll play how it would go, if everything I need would be available:
1) The navigating, the most important feature of the app would be navigating. This could be actually do without the geocaching.com API, so it’ll be done anyway, even if the API will never be published. I’ve previously used which ever Maps application comes with my Nokian. It’s very good for what’s it meant for, driving with car, or walking. Well, walking is what we need also in geocaching, but hey, Maps thinks you should walk in the sidewalk, not in the forest! It works very fine until you go out of track, and it’s very difficult to find precise coordinates, especially when the update interval of your current position is very long. That’s where own navigation system will come handy. The idea is also to combine a compass, I think most of the middle and high end phones has it built in. The map view would update your position with a smaller interval and also will show an arrow like guiding with a distance to find the precise place set by coordinates.
2) The cache locations. At the moment, I haven’t found a way to save landmarks to Maps’ favorites other than inserting coordinates by hand. Also noticed that one of my test platforms can’t even do that simple task decently. The format available from geocaching.com is .loc which seemed to be xml based format, simply offering cache name, coordinates and unique waymark identifier in the geocaching world. Coordinates were already in NMEA standard format which Qt also uses in its positioning classes, so no conversion needed there. We just need to offer a simple way for user to download cache info to the device and for use of our OpenCache app. Very probably the API will provide a nice and simple way for doing that, but if now, they can be even now downloaded from the site, one by one. Some nice categorized folder system would be needed to have easy access to caches of users choice.
3) Cache logging. When you find/not find a cache, you need to log it. Also if you grab a Travel Bug or Geo Coin with you, or drop either of those to some cache, you need to log it too. Our mission is to provide simple and nice UI for logging these things quickly and painlessly.
4) User info, this is not mandatory content, but would be nice if user could see his stats. Depending of the API, all info available through that could be shown to user.
5) Proposed content: Mystery Helper. Some caches are so called Mystery caches and there are some math, equations and multiple coordinates involved, which needs some paper to solve at sight. It would be nice to replace the paper and create a helper utility to manage the different parts of the mystery, and solve the final coordinates with user given data. This tool would be totally extra, but if everything else is together, it would be nice bonus to provide it on top of the basic tools
I think those were the main points of the idea. For most of the graphics, existing icons would be utilized, or atleast they are kept recognizable, since they are already almost “standardized” in the world of geocaching.
Oh, and did I forgot to mention it’s gonna be free.. Yeah I did, but have to say it again, just in case. The existing apps for iPhones and such were paid apps, and what would be nicer we could offer from the homeland of Nokia, for users of Nokian phones, free tools to make moving outside more fun.