Taking the (Android) Tablets
tldr; Android devices are cool, confusing and interesting.
I’ll say I was late to the mobile device party, even though years back I did a bunch of coding for the Palm. How things have changed, yadda. But when everybody else at Talis was provided wih the latest iPhone, I slipped through the net. It was known that I’d probably leave the thing in a bar or on a train. (Note I’m not a fan of phones, am with Stephen Fry on them).
So it was like entering a (brave) new world the other week when I got an Android tablet. They were so ridiculously inexpensive I ordered three : one for me, one for Raven and one for my mother.
First impressions were that it made me feel so stupid. Took me a week to get just the basics of the UI (and culture). But I generally got increasingly impressed – these things are bloody marvellous.
But now I’ve always been a bit ambivalent about Rich Internet Applications (being greybeard enough to remember Java Applets). On the one hand, as long as the thing is using HTTP by the book, then it should be good, and diversity has to be a good thing (getting away from the tyranny of the browser, cf. WHATWG); on the other, linkiness (and hence REST) can get sidetracked, things can end up being unwebby. But the eye-opener for me was how incredibly crap a regular browser plus big screen-designed pages come out on a small screen. Until there’s a huge shift in page publication to offer decent mobile versions of pages (please use CSS not a totally separate area), device-native things are a must-have.
From a user’s point of view, there are certain frustrations. Biggest of which is the gadgets by default are seriously locked down (delivered in nanny state). Even though it’s a dialect of Linux, to be able to control the thing fully you need to “root” it, basically kick the firmware. Even though this might sound like geeksville, it is significant from a user’s point of view. The particular device I got have 1GB as internal immediate drive, 8GB (I think) as internal sdcard, plus a slot that’ll take up to 32G of external plugin sdcard. But once you start installing a few apps, it soon becomes clear that there isn’t as much space as you thought. You can drop some apps over to the internal sdcard, but still most things rely on that starting 1GB. Because you haven’t got proper admin rights, you can’t use the other 8GB as you might be able to on any other Linuxy system. These tablets being obscure Chinese issue, it’s not as straightforward to root as the better-known brands, I haven’t yet succeeded. But it has provided great amusement for my Australian fidanzata, when I say I’m trying to root the Android…
Ok, so now how do you code for these things? Well, despite the quasi-lock-in Google have around the Android space, they have got a couple of key things right, IMHO. A couple of years back Wiley sent me a sample book to show their new style/layout, and it happened to be about coding on Androids. So I dug it out for an afternoon at the bar. Bugger me, it’s Java + XML. Lucky dannys, stuff I’m familiar with (YMMV).
My confidence was further boosted by getting a Hello World app going in less than an hour with MIT’s App Inventor (hat tip to Bob for spotting that one, it’s a kiddy coding thing, very like Scratch).
But this isn’t real. Need to do something like fire up Eclipse and type some of that arcane twaddle. And as it happens, Eclipse seems to be a sensible place to go, Android is well supported. It took another hour or so to find the right bits (libs, emulator etc.) to get started. Then scooting around GitHub I found a personal wiki app that was very close to something (I then realised) I wanted.
Aside : I reckon there’s a lot to be said for personal wikis, check Bill Seitz’s material as for why.
An awful lot of the code for Android seems to be boilerplate, and that’s before you take into account the cruft within Java and XML. But that aside, it does seem fairly well thought out, reasonably intuitive.
Naturally I want to use this wiki app to address my semweb stuff. Right now it does its data sharing via Dropbox, but it looks like I should be able to bung in regular HTTP methods to address a SPARQL endpoint. The files are handled as flat (markdown) text, so I reckon I’ll need to generate a good old fashioned metadata file alongside. Fortunately other people came to the party earlier – there’s an Android port of Jena available which should cover the core RDF bits, plus a port of ARQ (Jena’s SPARQL bits). (Thiki – work in progress).
So overall, the tablet world seems very promising.
My one little setback, I had mine in the top of my rucksack when I went shopping the other day, playing Die Antwoord (remarkably good quality soundcard in the thing), then pulled it out with maybe a little too much force, cracked the screen, it’s buggered. About to take advantage of the year’s warranty (after about 3 weeks).