Stuff Michael Meeks is doing

This is my (in)activity log. You might like to visit Collabora Productivity a subsidiary of Collabora focusing on LibreOffice support and services for whom I work. Also if you have the time to read this sort of stuff you could enlighten yourself by going to Unraveling Wittgenstein's net or if you are feeling objectionable perhaps here. Failing that, there are all manner of interesting things to read on the LibreOffice Planet news feed.

Older items: 2021: ( J F M A M J J A S O N D ), 2019, 2019, 2018, 2017, 2016, 2015, 2014, 2013, 2012, 2011, 2010, 2009, 2009, 2008, 2007, 2006, 2005, 2004, 2003, 2002, 2001, 2000, 1999, legacy html


LibreOffice Android View (Beta)

Today Collabora released (cf. Press Release) a Beta snapshot of the viewer work we've been doing for and with SMOOSE for some months. This provides a version for testing (it's really not finished yet), of LibreOffice running on Android you can install it from Google Play.

What does it look like ?

The writer functionality is probably the best piece of the component, allowing pleasant screen-shottage and rather good viewing.

ODT - writer document on Android

Impress presentations are supported here is an old one around cairo rendering support, you can see the swipe-in-from-the-left page switcher:
ODP - Impress document on Android

We also have some (very early) calc tiled rendering; there are some text scaling issues that we're working on there:
Calc font test

What did that involve ?

A huge amount of work. Much of the initial work was done by Tor Lillqvist, while at SUSE (now Collabora), creating a cross-compilation framework which we continue to use for iOS, Android and was originally setup to do cross-compiles to Windows - so that we could have a predictable toolchain, and a reliable/repeatable free-software build environment. Tor also did some amazing bootstrapping work to overcome several debilitating limitations of C++ on Android, get to get the initial startup, and packaging into a good state.

Matus Kukan (Collabora) also did a chunk of work for CloudOn to help link the entirety of LibreOffice into a single shared library image - helping startup performance & improving Android support. This significantly helps to work around the built-in Android linker's low limit of shared libraries it can handle before failing. It also helps to export nearly no symbols, and to let ld's garbage-collection throw away as much object code as possible: though there is still way more to loose.

Other work done for CloudOn by Jan Holesovsky (Collabora) and Tor Lillqvist was to implement tiled rendering inside Writer - making it possible to render arbitrary portions of documents at arbitrary zoom factors. We are deeply indebted to them - you can of course enjoy the same code inside CloudOn's iOS app.

Ian Billet worked during the Google Summer of Code 2012 to make a document browser, which has subsequently been taken over and much improved by Jacobo PĂ©rez of Igalia creating the document browser we have today. It is of course somewhat regrettable that Android has no standard built-in file browser making this necessary. Of course the viewer also hooks into the OS to allow opening downloads, attachments etc. in the normal way.

Since FOSDEM 2014, Smoose and Collabora in the person mostly of Tomaz worked to re-target the excellent Fennec tiled-rendering code from Mozilla's android browser to target instead of the Mozilla core - the LibreOffice core. This involved great chunks of re-factoring, and hard work both in the Android and C++ core. We re-use and added tiled rendering to the LibreOfficeKit API - an API to allow simple re-use of LibreOffice for file format conversion and document rendering via a rather trivial C and C++ API. LibreOfficeKit under Linux has the advantage of requiring no linkage to the code - being an (almost) purely abstract API.

Andrzej Hunt worked through Google Summer of Code 2014 to improve and extend tiled rendering to Calc and Impress and the LibreOfficeKit tiled-rendering API. You can read about that on his blog. One side-effect of that, recently much improved by Miklos Vajna (Collabora) is the gtktiledviewer test app which deliberately uses a non-VCL widget-set, and LibreOfficeKit to render a series of tiles on a stock Linux desktop. This significantly to helps accelerate debugging. Kohei Yoshida (Collabora) was also involved in reviewing, re-working and merging the calc tiled-rendering code to master.

Many thanks to all involved, particularly our client SMOOSE without whose support, Collabora would not have been able to prioritize this work.

Getting involved

The code for the viewer is almost exactly what is in the git / master branch in the android/experimental/LOAndroid3 directory. It should build out of the box with a simple make, of course after you have followed the compilation instructions and Android how-to. Needless to say - we've left a lot of juicy, easy-to-fix bugs for you to gloriously fix - give it a try.

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 Kendy's LibreOffice on Android talk at FOSDEM this year, or Jacobo's document manager talk.

Can you use LibreOffice in some way ?

Collabora provide bespoke consulting solutions to help people use LibreOffice in the most effective & optimized way. Sometimes that means using LibreOffice as part of your product, sometimes it means optimizing, improving or extending to meet your use-case. We also sell long-term Enterprise support for LibreOffice to make it easy and risk-free for you to deploy LibreOffice in your organisation on Windows, Linux, Mac and (soon) Android too - checkout LibreOffice-from-Collabora for more details.


My content in this blog and associated images / data under images/ and data/ directories are (usually) created by me and (unless obviously labelled otherwise) are licensed under the public domain, and/or if that doesn't float your boat a CC0 license. I encourage linking back (of course) to help people decide for themselves, in context, in the battle for ideas, and I love fixes / improvements / corrections by private mail.

In case it's not painfully obvious: the reflections reflected here are my own; mine, all mine ! and don't reflect the views of Collabora, SUSE, Novell, The Document Foundation, Spaghetti Hurlers (International), or anyone else. It's also important to realise that I'm not in on the Swedish Conspiracy. Occasionally people ask for formal photos for conferences or fun.

Michael Meeks (michael.meeks@collabora.com)

pyblosxom