This last week, Tor Lillqvist handed me the task of mentoring Iain Billet for his Google Summer of Code project. He is working hard to make a nice viewer out of LibreOffice for Android. Rafael Dominguez's new templates dialog blog post provoked / inspired me to give a quick status update on where we're at. To re-emphasise, the bulk of this is Tor's work, with viewer bits by Iain; I just took some screenshots.
For those unlucky enough not to have been at FOSDEM / LinuxTag to catch the latest status, and see the live demo fun - here is a quick snapshot of the current state of affairs:
What does that look like - well, that gives a fairly horrific, bolts and all, barely usable (even with keyboard and mouse) office suite on your tablet; here is a picture of it under the emulator:
As part of the Google Summer of Code, Iain Billet is working hard at building a Java viewer UI for LibreOffice, that will integrate nicely into the platform, and provide fast pan / zoom / page-flip browsing, and all that good stuff you expect. Tor meanwhile (modulo having just left for vacation), is working on tiled page rendering to textures. That will allow us to quickly render portions of document content at any scale, asynchronously in a background thread, to suit the viewer. This is going reasonably well.
We have a viewer / file-manager shell to allow managing and selecting your documents on the sdcard. Hopefully this is iterating slowly towards the beautiful design from the design team:
And the initial viewer UI with page selector is coming along nicely too, again targetting the design:
The code for the viewer is in the git / master branch in the
android/experimental/LibreOffice4Android directory. It should
build out of the box with a
make clean all install run, of course
after you have followed the
and Android how-to.
Help much appreciated improving and extending this to other components: calc, impress etc.
The test-files above are (for interest)
As you can see, lots of the heavy lifting is already completed, and the stage of fertile hacking is arriving, with smaller incremental forays from something working, to something better. There are still a largeish number of things that need doing / cleaning up though, some of these will help other platforms & products too:
--enable-mergelibsconfigure option to reduce link time and allow better optimisations such as global code re-ordering. This is also good for desktop users of course, and getting everything into one DSO is a pre-condition for the iOS port.
Help much appreciated with any of that, please do mail the developers list if you want to get stuck in somewhere there.
Of course, a viewer, even one that handles the full breadth of formats that LibreOffice can handle, is not enough. The plan in the deeper future is to add editing functionality. That brings plenty of challenges, particularly around re-using existing code and widgets in a tasteful way.
One thing that really needs working on is a
model. That would allow developers to link a single shared library and do a small
amount of platform/toolkit integration work to re-use the LibreOffice core and renderer.
That is something that is reasonably do-able today in fact, indeed - it would be
rather excellent to fully split the rendering core from the presentation / scrolling
etc. internally. That would also allow a new, native linux, viewer client, which in
turn would accelerate prototyping of what is needed for mobile. Currently a slow
build, re-package, install, run appears to be required for native Android
Finally if you want to hear, and see more, and get involved with what we're up to, a great way to do that is by coming to: