Saturday, 4 May 2013

Protocol stacks on Ubuntu Touch

We're working really hard to get the Ubuntu Touch images into a state where the UI is really polished, the experience rocks, and just to make it a truly amazing product that reflects the core principles of Ubuntu.

One of the aspects of this work is to get to a really good story with protocol stacks in general -- that is to say, bluetooth, WiFi, and the fun things behind connectivity on a mobile device. How can I get my files on the device? How can I copy the pictures that I've just taken back to my computer?

On the way back home from Oakland I've had quite a lot of time to reflect on what we've done so far. I've seen really cool demos of things you could get done on Touch and how things are going to look like in the near future. It makes me very proud to be part of getting Ubuntu to a large number of people through a solid Desktop system, but also stellar mobile devices support.

So, we did get bluetooth to work pretty okay so far on Touch. It seems like the current baddest issue is really just UI, but fortunately people are already hard at work fixing that, too. Keyboards can be discovered, and so can mice (I've uploaded a video to YouTube about that before). Bluetooth headsets should follow soon, but when I last tried I was running into issues with pulseaudio on the Nexus 7... If you're interested in bluetooth and know a little about BlueZ and the command line, by all means, let me know on IRC and let's get this to be really awesome.

For WiFi, we also have indicator-network in the archive, all rewritten, received tons of love, and soon to be ready to shine on both the desktop and mobile phones or tablets. Don't get me wrong, there's still a long way to go, but it feels to me like one thing we can pretty quickly ramp up to converge and essentially be the same experience no matter what form factor it is running on.

That covers WiFi -- but what about mobile data? (3G / 4G, but I rather speak of it in the most general terms) Well, that's being actively worked on as well. We're not too far off from having working 3G data  on the "officially supported" devices (Galaxy Nexus, Nexus 4, Nexus 7); and from there it seems like it may not be too much trouble for people to ramp up that support for other devices. Sure, it's complicated work because of how technical it is, but I think it's still approachable.

For mobile data, I've lately been working on teaching NetworkManager to speak to oFono; which are the two stacks we're decided, at UDS, to use to handle networking and telephony. The code itself isn't too pretty yet, but I'll add just a bit more meat to it and provide it as a test bzr branch for people to experiment with, until it's stable enough to make it into the archive altogether.

All this to mention that I'm really excited about the current progress for Touch, and although my progress on my own work items wasn't exactly stellar, I'm thrilled about what's to come. So thrilled I'll contact my cell provider to get the right SIM card size to start using Touch on a Nexus 4 as my main phone next week.

See you all at virtual UDS, looking forward to lots of constructive discussions about networking and connectivity!