For quite a while now, I have wanted to pick up some skills in developing for mobile devices. I have, however, been somewhat at a loss as to what to do - following tutorials on websites is nice and well, but always a bit boring: putting effort into anything only becomes worthwhile when the result of all that work goes some way towards somehow scratching that proverbial itch. Then, of course, the obvious occurred to me - one thing that I love doing a lot is to develop and mess with ontologies and semantic web technologies. And the more messing with ontologies, RDF and linked data I do, the more one thing becomes painfully obvious: no matter how long we have been working on and developing semantic technologies now (and it is probably almost 20 years), there is one thing that any semantic technology is desperately short of: User Interfaces.
And so the obvious struck me: why not combine my love for ontologies and semantics with trying to learn programming for mobile form factors? How about writing an ontology editor for a phone or a tablet?
Now the choice of platform was relatively easy. I had made a start on iOS development a couple of months ago, but there are way to many obstacles. Chiefly, there's Objective C. There's something in me that just refuses to make the investment in time and brain cycles that would be required to learn the language, the toolset etc and only so that I could produce an app, which only runs on one platform. I really dont have the time or bandwidth at the moment. And then, of course, there is the intrinsic uglyness of Objective C - though that, too, is just a gut feeling, rather than something that I can substantiate in any form.
So if it is going to be platform lock in, then at least the start up cost has to be minimal - with Android, I can write in Java. Not just that: all the libraries etc I need for this exercise are also written in Java and functionality will just slot together.
Having experienced some of the early versions of Android as a phone user together with the rather limited hardware it came with, I have, for a long time now, not had a particularly high view of it - again, entirely based on my experience as an end user, rather than a software developer. This started to change when - in a flight of sheer technology gluttony and curiosity - I bought a Nexus 7 tablet (helped by the rather good deal offered by one of the local retailers). The tablet runs Android 4.2 - Jelly Bean, which was a revelation, certainly in comparison to the version of Android I had previously experienced.
All this roughly coincided with Google I/O 2013 and the announcement of Android Studio. Now I had been aware of the Eclipse-Based tools for a while, but somehow this announcement triggered in me the impression, that the toolset is now sufficiently developed to get going quickly an to get over some of the startup and learning curve hurdles.
But why would anybody want a mobile ontology editor?
To be perfectly frank - I have no idea. I suspect that whatever one can produce on a tablet or a phone interface will be even worse than the current Protege experience - chiefly due to lack of screen real estate and the development time required to go from a prototype to something that is actually usable.
Right now I am doing this as a purely intellectual exercise and because it is fun. I also assume that there will be use-cases out there that I can't even conceive of right now. So if you do have one, please discuss it here in the comments section of the blog if you would like.
In the next post I'll start to discuss some of the thinking processes and initial designs as I start to work on this.