LibreOffice on iOS – quelques aperçus

Avec nos amis de Collabora, nous sommes ravis d’annoncer l’effort de portage de LibreOffice sur une autre plate-forme importante : Apple iOS.

Retrouvez l’annonce de Collabora ainsi qu’une vidéo d’avant-première ici.

D’où nous venons

Notre collaboration à ce voyage a commencé au début de 2018, lorsque nous avons réalisé que pour l’un de nos projets, une application iOS native est un élément crucial pour obtenir l’acceptation de l’utilisateur final.

Bien que nous aimions beaucoup la flexibilité et la fonctionnalité que Collabora Online offre (surtout lorsqu’il est intégré à l’impressionnant Nextcloud, nous voyons aussi le besoin d’une solution hors ligne pour l’édition de documents bureautiques.

Il existe d’autres solutions ciblant le marché des bureaux et des lieux de travail iOS, mais nous pensons qu’une solution open source avec un grand soutien de la communauté était la pièce manquante. En collaboration avec Collabora, l’équipe d’Adfinis SyGroup a commencé à chercher des moyens d’amener LibreOffice sur l’iPad et de réutiliser autant de code que possible.

Permettez-moi d’essayer de résumer certaines des décisions de conception ainsi que le chemin parcouru jusqu’ici :

Considération technique

Le portage de l’interface utilisateur familière à base de VCL du PC à l’iOS aurait généré une énorme quantité de travail et n’était pas une option faisable pour réaliser quelque chose dans un laps de temps limité.

Grâce à l’investissement énorme que Collabora a fait pour mettre LibreOffice dans le cloud, nous avons pu réutiliser l’approche en ligne pour créer une application qui est essentiellement une implémentation hors ligne de Collabora Online.

Un aspect très intéressant de cette approche est qu’à l’avenir, il devrait être possible de couvrir trois scénarios majeurs avec essentiellement cette approche :

  • Online – see e.g. Collabora Online
  • iOS – what we’re currently working on
  • Android – just an idea for now

La base sous-jacente est LibreOfficeKit qui utilise la base de code LibreOffice pour essentiellement faire du rendu carrelé et en plus nous utilisons une solution HTML/JS pour construire l’interface utilisateur pour les plates-formes utilisant VCL sous le capot. Cela nous permet de réutiliser une grande partie des riches fonctionnalités de l’interface utilisateur de LibreOffice.

En choisissant cette approche, nous aurons l’effet secondaire agréable que les futures améliorations mises en œuvre pour une plate-forme bénéficieront également aux autres implémentations possibles.

Le stade actuel

Dans un premier temps, les héros de l’ingénierie de Collabora étaient occupés à porter le code’Online’ sur iOS – tous ces efforts peuvent être vus dans upstream repository. Cela impliquait la mise en place d’un système interne de type socket pour regrouper les processus client, serveur et Kit en un seul processus, ainsi qu’un travail de compilation croisée important.

Après la compilation du code, des ajustements ont été nécessaires afin de rendre un document. Tor a posé un tas de patches pour y parvenir et après quelques coups de tête, il est arrivé à un point où les documents ont commencé à être rendus correctement. \o/

Une fois ce jalon important franchi, les travaux sur les éléments environnants ont été poursuivis. Nous avons maintenant une application iOS qui utilise la vue native de gestion des fichiers, intègre un gestionnaire de modèles et utilise la fonctionnalité WebView pour faire le travail.

Ce nouvel enfant cool sur le bloc s’appelle Collabora Office pour iOS et il aura certainement besoin de plus de temps jusqu’à ce que nous ayons atteint un point où il peut être publié comme un produit stable.

Quelle est la prochaine étape?

L’état actuel peut être décrit comme niveau alpha ou MVP. Les documents peuvent être édités et sauvegardés et les commandes de base fonctionnent comme prévu. Cependant, il nous reste encore beaucoup de chemin à parcourir. Nous avons les choses suivantes en tête (ceci n’est en aucun cas garanti et pourrait changer) :

  • 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 »

Notre vision

En fin de compte, nous voulons atteindre un état où LibreOffice fonctionne sans problème sur la plate-forme iOS afin que les gens du monde entier puissent l’utiliser pour éditer des fichiers dans le format Open Document Format au lieu de compter sur des solutions propriétaires.

De plus, nous voulons nous assurer que la solution fonctionne parfaitement en combinaison avec Nextcloud. Cela inclut la gestion des modèles, mais aussi le déclenchement d’une synchronisation lors de l’enregistrement, etc. L’impressionnante intégration iOS de Nextcloud est vraiment d’une grande aide ici. En fin de compte, les utilisateurs existants de Nextcloud devraient être en mesure d’avoir une expérience utilisateur vraiment agréable en combinant l’application iOS avec Collabora Online (ou LibreOffice Online) sur le serveur.

Quelques mots de remerciement

Ce travail fantastique ne serait pas possible sans le soutien et l’investissement de Collabora. Leur soutien et leur expertise exceptionnelle constituent la base solide de cet effort – sans cela, nous n’y serions pas parvenus. Un merci spécial à Tor Lillqvist qui a mis une tonne de travail dans ce projet et qui a fait la majeure partie du travail d’ingénierie/codage. Je suis ravi de pouvoir travailler avec Tor sur ce projet et j’ai hâte d’en faire encore plus avec lui.

Bien sûr, nous nous tenons aussi sur les épaules des géants grâce au travail remarquable accompli par la communauté et bien d’autres. En particulier, le travail initial de compilation croisée a été commencé par Tor en 2011 à SUSE pour supporter la compilation croisée Windows. Lorsque Collabora est sorti de SUSE, CloudOn a investi dans une importante optimisation de la mémoire et des performances du code pour iOS afin de supporter leur éditeur de documents iOS (propriétaire) et de l’adapter à la limite de taille des app-stores. Par la suite, un investissement de SMOOSE et Collabora en 2015 a créé le premier visualiseur pour Android. Le financement de TDF a ensuite permis de créer un prototype d’éditeur. D’autres remerciements vont à Jan Iversen et Jon Nermut pour leur prototype LibreOfficeLight pour iOS, et bien sûr à l’homme des décennies de travail de Collabora qui ont travaillé sur Online.

Nos sincères remerciements s’adressent à chacun d’eux ! Merci !

Enfin, Adfinis SyGroup paie une partie des factures ici aussi – merci à toute l’équipe qui travaille dur chaque jour pour apporter plus de solutions Open Source aux gens sur le terrain !

Screenshots

Les images suivantes montrent l’état actuel de l’application.

Image is not available
Presentation
Image is not available
Collabora Online
Image is not available
Spreadsheet with Diagram
Image is not available
Template Manager
Image is not available
File Browser
Image is not available
Advanced Features in Writer
Image is not available
Symbols and Shapes
Image is not available
Writer Document
Image is not available
Image Editing
previous arrow
next arrow
Slider

FAQ

Q: Comment soutenir ce projet
A: le code est tout public, vous pouvez aussi m’envoyer un e-mail si vous souhaitez vous impliquer ou si vous voulez des conseils supplémentaires.

Q: L’application sera-t-elle disponible dans l’Apple Store ?
A: Oui en fin de compte (si Apple l’approuve) – mais nous sommes actuellement en phase de test bêta publique.

Q: Comment puis-je tester certains binaires ?
A: Un petit nombre (une centaine) de testeurs peuvent installer via TestFlight – les développeurs sont fortement préférés. Les bogues peuvent être classés ici.

Q: Quand peut-on s’attendre à une libération ?
A: Très probablement au premier semestre 2019

Q: Qui peut être crédité ?
A: Adfinis SyGroup et Collabora en sont les principaux moteurs.

Q: Android suivra-t-il ?
A: C’est difficile à dire, nous pensons qu’il serait logique de réutiliser cette approche pour Android afin de partager les coûts de développement entre toutes les interfaces utilisateur mobiles.

Q: Pourquoi iOS au lieu de $OTHER_PLATFORM
A: Nous avons tous les deux des clients qui en ont besoin, donc nous avons dû établir des priorités, et il y a déjà une application pour Android.