Tech Blog.

Thoughts, stories, ideas.

LibreOffice on iOS – einige Einblicke

20. December 2018

Zusammen mit unseren Freunden von  Collabora freuen wir uns, die Portierung von LibreOffice auf eine weitere wichtige Plattform bekannt zu geben: Apple iOS.

Die Ankündigung von Collabora sowie ein Peak-Video finden Sie hier. here.

Wo wir herkommen

Unsere Zusammenarbeit auf diesem Weg begann Anfang 2018, als wir feststellten, dass eine native iOS-App für eines unserer Projekte ein entscheidender Faktor für die Akzeptanz der Endbenutzer ist.

Obwohl wir die Flexibilität und Funktionalität von Collabora Online sehr schätzen (vor allem, wenn sie in die immer grossartigere Nextcloud integriert ist) sehen wir auch die Notwendigkeit einer Offline-Lösung zur Bearbeitung von Office-Dokumenten.

Es gibt andere Lösungen, die auf den iOS-Büro- und Arbeitsplatzmarkt abzielen, aber wir glauben, dass eine Open-Source-Lösung mit einer großen Community-Unterstützung das fehlende Stück war. Gemeinsam mit Collabora begann das Team von Adfinis SyGroup nach Möglichkeiten zu suchen, LibreOffice auf das iPad zu bringen und so viele Codes wie möglich wiederzuverwenden.

Ich versuche, einige der Designentscheidungen sowie die bisherige Entwicklung zusammenzufassen:

Technische Betrachtung

Die Portierung der VCL -basierten Benutzeroberfläche, die vom PC auf iOS vertraut ist, hätte enorme Arbeit verursacht und war keine praktikable Option, um innerhalb eines engen Zeitrahmens etwas zu erledigen.

Dank der enormen Investitionen, die Collabora getätigt hat, um LibreOffice in die Cloud zu bringen, konnten wir den Online-Ansatz wiederverwenden, um eine App zu erstellen, die im Wesentlichen eine Offline-Implementierung von Collabora Online ist.

Ein wirklich schöner Aspekt dieses Ansatzes ist, dass es in Zukunft möglich sein sollte, drei große Szenarien mit diesem Ansatz abzudecken:

  • Online – siehe z.B. Collabora Online
  • iOS – woran wir derzeit arbeiten
  • Android – nur eine Idee für den Moment

Die zugrunde liegende Basis ist LibreOfficeKit, das die LibreOffice Codebasis verwendet, um im Wesentlichen gekacheltes Rendering durchzuführen, und darüber hinaus verwenden wir eine HTML/JS-Lösung, um die Benutzeroberfläche für Plattformen mit VCL unter der Haube aufzubauen. Dadurch können wir einen Großteil der umfangreichen Funktionen der Benutzeroberfläche von LibreOffice wiederverwenden.

Mit diesem Ansatz haben wir den schönen Nebeneffekt, dass zukünftige Verbesserungen, die für eine Plattform umgesetzt werden, auch den anderen möglichen Implementierungen zugute kommen.

Der aktuelle Status

In einem ersten Schritt waren die Collabora Engineering Helden damit beschäftigt, den “Online”-Code nach iOS zu portieren – all diese Bemühungen sind im upstream repository zu sehen. Dazu gehörte die Implementierung eines internen Socket-ähnlichen Systems, um die Client-, Server- und Kit-Prozesse in einem einzigen Prozess zusammenzufassen, sowie viel Cross-Compilation-Arbeit.

Nach dem Code wurden kompilierte Anpassungen benötigt, um ein Dokument tatsächlich zu rendern. Tor landete einen Haufen Patches, um dies zu erreichen, und nach einigem Kopfschlagen erreichte er tatsächlich einen Punkt, an dem Dokumente richtig gerendert wurden. \o/

Nachdem dieser wichtige Meilenstein erreicht war, folgten die Arbeiten an den umgebenden Elementen. Wir haben jetzt eine iOS-App, die die native Dateiverwaltungsansicht verwendet, einen Vorlagenmanager integriert und die WebView-Funktionalität nutzt, um die eigentliche Arbeit zu erledigen.

Dieses neue coole Kind auf dem Block heißt Collabora Office für iOS und es wird sicherlich noch einige Zeit brauchen, bis wir einen Punkt erreicht haben, an dem es als stabiles Produkt veröffentlicht werden kann.

Was kommt als nächstes

Der aktuelle Zustand kann als Alpha Level oder MVP beschrieben werden. Dokumente können bearbeitet und gespeichert werden und grundlegende Features funktionieren wie erwartet. Allerdings liegt noch ein langer Weg vor uns. Wir haben die folgenden Dinge im Hinterkopf (dies ist in keiner Weise garantiert und kann sich ändern):

  • Improve touch functionality
  • Adopt theming/styling to match iOS
  • Create some shiny templates
  • Implement Apple AirPrint (native printing)
  • Fix crashes
  • Remove usage of “right mouse click”

Unsere Vision

Am Ende wollen wir einen Zustand erreichen, in dem LibreOffice auf der iOS-Plattform reibungslos läuft, so dass Menschen auf der ganzen Welt damit Dateien im Open Document Formatbearbeiten können, anstatt sich auf proprietäre Lösungen zu verlassen.

Außerdem wollen wir sicherstellen, dass die Lösung in Kombination mit Nextcloud perfekt funktioniert. Dazu gehört die Handhabung von Vorlagen, aber auch das Auslösen einer Synchronisation beim Speichern, etc. Die fantastische iOS-Integration von Nextcloud ist dabei wirklich eine große Hilfe. Am Ende sollten bestehende Nextcloud-Anwender bei der Kombination der iOS-App mit Collabora Online (oder LibreOffice Online) auf dem Server eine wirklich schöne Benutzererfahrung haben.

Ein paar Danksagungen

Diese fantastische Arbeit wäre ohne die starke Unterstützung und Investition von Collabora nicht möglich. Ihre Unterstützung und ihr hervorragendes Fachwissen bilden die solide Basis dieser Bemühungen – ohne sie hätten wir es nicht geschafft. Ein besonderer Dank geht an Tor Lillqvist, der eine Menge Arbeit in diese Arbeit gesteckt hat und die meisten Engineering/Codierungstätigkeiten durchgeführt hat. Ich bin begeistert, dass ich mit Tor daran arbeiten kann und freue mich darauf, noch mehr mit ihm zu machen.

Natürlich stehen wir auch auf den Schultern von Riesen in Form der hervorragenden Arbeit der Gemeinschaft und vieler anderer. Insbesondere die ersten Cross-Compilation-Arbeiten wurden von Tor im Jahr 2011 bei SUSE begonnen, um die Cross-Compilation von Windows zu unterstützen. Als Collabora aus SUSE hervorging, investierte CloudOn in eine erhebliche Speicher- und Leistungsoptimierung des Codes für iOS, um den (proprietären) iOS-Dokumenteneditor zu unterstützen und ihn an die Größenbeschränkung des App-Stores anzupassen. Anschließend wurde durch eine Investition von SMOOSE und Collabora im Jahr 2015 der erste Viewer für Android erstellt. Dann wurde mit Mitteln von TDF ein Prototyp-Editor erstellt. Ein weiterer Dank geht an Jan Iversen und Jon Nermut für ihren LibreOfficeLight-Prototypen für iOS und natürlich an die jahrzehntelange Arbeit von Collabora, die in Online gegangen sind.

Ihnen allen gilt unser herzlicher Dank! Merci!

Last but not least trägt die Adfinis SyGroup auch hier einige der anfallenden Kosten – dank der gesamten Crew, die jeden Tag hart daran arbeitet, den Menschen da draußen mehr Open-Source-Lösungen zu bieten!

Screenshots

Die folgenden Bilder zeigen den aktuellen Zustand der App.

FAQ

Q: wie kann ich dieses Projekt unterstützen?
A: der Code ist öffentlich, the code is all public, Sie können mir auch eine E-Mail if you would like to get involved or want further guidance.

Q: Wird die App im Apple Store verfügbar sein?
A: Ja letztendlich (wenn Apple es genehmigt) – aber wir befinden uns derzeit in einer öffentlichen Beta-Testphase.

Q: Wie kann ich einige Binärdateien testen?
A: Eine kleine Anzahl (etwa hundert) von Testern kann über TestFlight installiert werden – Entwickler werden bevorzugt. Bugs können here abgelegt werden.

Q: Wann können wir mit einer Veröffentlichung rechnen?
A: Sehr wahrscheinlich im ersten Halbjahr 2019

Q: Wer kann akkreditiert werden?
A: Adfinis SyGroup und Collabora sind die Haupttriebkräfte dahinter

Q: Wird Android folgen?
A: Das ist schwer zu sagen, wir halten es für sinnvoll, diesen Ansatz auch für Android wiederzuverwenden, um die Entwicklungskosten auf alle mobilen Benutzeroberflächen zu verteilen.

Q: Wieso iOS statt $OTHER_PLATFORM
A: Wir haben beide Kunden, die dies benötigen, also mussten wir Prioritäten setzen, und es gibt bereits eine App für Android.