Sunday, July 27, 2008

On re-usage of third-party software

To say from the beginning: if there are things that I can reuse - great. However, I don't like to just port an existing application to the iPhone. By doing so I would get an old existing application running on the iPhone - not an iPhone application with its unique user experience. This is not my goal.

Similarly, I would be happy to re-use existing (open source) frameworks, however it may appear to be impractical: Cocoa APIs are quite different compared to (GNU, Linux or other) APIs commonly used in open source projects. Possibly it will take less time to e.g. rewrite the map rendering part than to port e.g. Mapnik to Cocoa and OpenGL ES. Though, we will see.

Saturday, July 26, 2008

To jailbreak or not to jailbreak?

To legally distribute iPhone applications one has to become a registered iPhone developer and pay Apple 79 € annually. There is of cause also another way - to distribute the application via Installer.app for jailbroken iPhones only. But it would limit the usefulness of the applications to those people only who are agree to void their iPhone's warranty by jailbreaking it. I do not like to go the jailbreak way unless Apple will not let me into the App Store due to some reason.

So I have to live with 79€ annual fee. I see two possibilities how I can return this money: either I make the application non-free (e.g. $0.99 - the lowest rate available in the App Store) or I ask for donations and make it free. Please vote in the form at right what would be your preferable solution.

By the way, due to the App Store there probably will be a very few open source iPhone projects: first you have to pay for the development and second since applications are digitally signed and tracked every developer has a personal responsibility for his applications. He has to know the code as good as if he has written it himself. This eliminates the advantages of community-based development.

Why OSM4iPhone or current issues with OpenStreetMap

Well, having said what I'm going to do a couple of words are needed why I'd like to do it. First of all, I truly beleive that OpenStreetMap may become extremely popular. Same big as Wikipedia at the very least. But if Wikipedia is extremely useful to get some information, the most exciting in OpenStreetMap is the map making. It's like a game, you know, you can put your house onto the map, a tiny lake nearby it, basically anything. It is like creating your own world. However, to be such exciting the process of map making shall be very simple and intuitive. Unfortunately, the simplicity of map making is currently not on the strong side of the OSM.

First of all, you need to have a dedicated GPS device (not many normal people do have one). Then you have to go to some not yet mapped area and collect the needed data. IMHO, this is the best part - a kind of discovery of unknown lands. However, at least for me, the fun part stops here - the rest is work. When you have your GPS log you have to return home, connect your GPS device to a computer, transmit the data and convert it into the format accepted by OSM (most people do not care about formats, and with basic command line conversion tools probably they will not be able to accomplish this operation). Next you have to edit the map. In general, this could be a fun part but currently too complex and time consuming: you create every road manually by connecting points which you add yourself and use the GPS log as a mere visual hint to where put your points.

What is my proposal? I would like to put the complete map creation process into a single device - the iPhone - the device that many people will have anyway. No boring PC homework anymore - just discover the world and make the map at the same time (and after you done post it to the OSM server instantly). I have chosen the iPhone because I personally like it, because I beleive that its user friendliness would be a great benifit for the application, and even more important, I like to develop for it (in contrast to e.g. Windows Mobile). Then I would like to try to apply some advanced statistical stuff to create ways directly from the GPS data. Being used by robots to automatically generate maps for high precision navigation, I beleive, these methods should work well for OSM.

Why not a web application? Well, web applications work good only until you have network coverage (and in some places, e.g. for cycling maps, maybe you don't). Furthermore, native applications provide better flexibility and performance - very important thing for we are targeting to a 'fun' application.

OSM4iPhone

As reflected in its name this blog is about development of native iPhone appliactions to work with OpenStreetMap (http://openstreetmap.org). I'm writing applications and not application because currently I have 2 applications in my mind: one very simple to just collect GPS coordinates from the iPhone's CoreLocation framework, pack them into a GPX file and post this file to the OSM server. I beleive, this application still would be a step forward compared to the current situation as it would combine the GPS data collection and transmission to the OSM server in one step, eliminating the need to transfer the GPS log to computer and then to convert it into the GPX format. And, by the way, having a full control of the data will allow to apply statistical algorithms to create smooth pathways right out of the device, eliminating most of the handwork of creating paths in the editor later. The second application should be a full-featured OSM viewer-editor application to enable all map creating operations directly on the iPhone.

I don't like to start right away with the second application because, first, it is quite complex and would require some significant time to develop, and second, I beleive the first application has some worth of its own even without the possibility to see the map.