A continuous effort
Since January, Collabora’s engineers have been working on the next generation of LibreOffice for Android: a fully functional mobile office suite, running natively, ready to edit rich documents. Thanks to Document Foundation sponsorship, we’ve spent the last three months working intensively towards this vision. Today we’re delighted to present a new prototype with spreadsheet, slideshow, and text editing built-in.
Like LibreOffice Desktop, LibreOffice for Android has separate components for different types of task. On Android, we include Writer, Calc, Draw, and Impress.
All components of the the prototype benefit from the following features:
- Text editing with on-screen keyboard
- Simple text formatting with bold, italic, underline and strikethrough
- Text selection by touching and holding part of a section of text (aka ‘long push’)
- Easy resizing of shapes and images by tapping them to select, then dragging one of eight directional handles and releasing
- High quality rendering of a wide range of filetypes, including Open Document Format, OOXML, and MS Office file formats (both binary and rich text format)
- One tap access to the on-screen keyboard for quickly switching between viewing and editing mode
- Smooth scrolling between pages
In addition to these, each component has its own distinct features.
- Document saving support, updating the originally opened file by default
- Support for movable embedded images, drawings, and shapes
- Touch-triggered selections of table and spreadsheet cells flows across columns, rows, and pages with the drag of a finger.
- The “parts” sidebar switches between spreadsheets within the document
- The “parts” sidebar shows a scrollable overview of all slides
- User interface interaction and overlays are now far more accurate
Under the hood
The editor consists of two parts: LibreOffice core compiled for the Android platform, and a Java component that is responsible for the user interface. They interact with each other via LibreOfficeKit — a thin C++ library that allows any application to access LibreOffice’s powerful internals via a consistent interface.
All three parts (LibreOffice core, LibreOfficeKit, and the Android interface) have been extended to enable them to handle user-specified selections, cursor placement and movement, and commands like loading a document and applying formatting. The signals we’ve implemented make way for other LibreOffice-powered applications to support editing too.
Input and interface accuracy
- Highlighted text selections can include table contents, allowing for formatting of contents of multiple document sections simultaneously. Previously selections used different internal identification systems and had to be selected separately.
- All Impress interaction data has been ported to TWIPs — or ‘twentieth of an inch points’, from millimetre based measurements, resulting in much finer internal measurements, and improvements to display and selection for all versions of the application.
More efficient rendering of documents tiles: those relating to non-visible areas are deprioritised and rendered in the background without blocking the initial page view from loading. The result: faster loading of documents for the user and more efficient use of the mobile device’s resources.
- We’ve added extensive javadoc/doxygen comments to pre-existing and updated methods
- We’ve included javadoc/doxygen comments for all new classes and methods
On the rare occasion that our engineers hands haven’t been busy under LibreOffice’s hood, they’ve been writing up their work in blogs and demonstrating it at conferences.
- At FOSDEM 2015 on January 31st, Miklos Vajna presented LibreOffice Viewer for Android, and posted his slides
- At FOSS ASIA on April 13th, Tomaž Vajngerl presented the latest Android editing features
- Throughout the development process, Miklos has also been blogging about his progress on tiled editing, input handling, selections, graphic handling, and formatting.
This is the start of a journey that you can be part of — get involved with any number of ongoing LibreOffice activities, including LibreOffice for Android documentation, demonstration, and development.
- Unstable daily builds can be found here
- A user introduction is available on the Document Foundation Wiki
- A developer introduction is also available
- Report any problems you find to the bug tracker, and attach any documents related to the issue so developers can investigate
To complete this prototype preview we’d like to again thank The Document Foundation for making the work possible, and remind you that, as a charitable foundation, donations power their work. Support the foundation by donating via their website.