Collabora Productivity
www.collaboraoffice.com
Collabora Productivity
Collabora Offjce as an app on iOS
Tor Lillqvist
Sofuware Engineer at Collabora Productjvity
Collabora Offjce as an app on iOS Tor Lillqvist Sofuware Engineer - - PowerPoint PPT Presentation
Collabora Productivity Collabora Offjce as an app on iOS Tor Lillqvist Sofuware Engineer at Collabora Productjvity www.collaboraoffice.com Collabora Productivity About us Collabora Ltd. Leading Open Source Consultancy 13 years of
Collabora Productivity
www.collaboraoffice.com
Collabora Productivity
Tor Lillqvist
Sofuware Engineer at Collabora Productjvity
Collabora Productivity
www.collaboraoffice.com
Collabora Ltd.
Collabora Productjvity Ltd.
Collabora Productivity
www.collaboraoffice.com
real product the company was acquired, plans changed, and the work fjzzled out
started by Jan Iversen in 2017 or so, but not fjnished
codebase (both its C++ “server” code (as applicable) and JavaScript user interface code). Funded by Collabora Productjvity and Adfjnis SyGroup
Collabora Productivity
www.collaboraoffice.com
their own. One small such app is actually there already, in the Online repo.)
Collabora Productivity
www.collaboraoffice.com
and saving documents
Collabora Productivity
www.collaboraoffice.com
“broker” process, and one “kit” process per open document (with potentjally multjple editjng end user clients), with strict isolatjon (chroot etc) between the “kit” processes and the rest of the world
Collabora Productivity
www.collaboraoffice.com
parts) run in the app process
it easier to interface with the C++ bits of the Online server code)
specifjc code manages. (On iOS each WKWebView is actually for safety and performance reasons a separate process, but that is mostly transparent.)
Collabora Productivity
www.collaboraoffice.com
platgorm-provided APIs. The natjve code requests the WebView JavaScript engine to perform a snippet of JavaScript, JavaScript code sends a message that invokes a callback in the natjve code
processes, but in the app just threads) uses a small home-grown API with in-process bufgers, mutexes etc (no sockets or other system IPC mechanism) that to the other code ofgers a mostly equivalent API as in “real” Online, to avoid signifjcant code changes
Collabora Productivity
www.collaboraoffice.com
case) needs to be writuen separately.
(vain?) hope that people with Linux only would be interested in working on the JavaScript side of the code without even having to use any mobile device
Collabora Productivity
www.collaboraoffice.com
building the app in an Xcode project
component (or constructor) name to functjon pointer
Collabora Productivity
www.collaboraoffice.com
real Online), runs it, repeat.
Collabora Productivity
www.collaboraoffice.com
comes “for free”: UIDocumentBrowserViewController
Collabora Productivity
www.collaboraoffice.com
contain the document view and the Online UI, and the document URL, the UI language, and some other things as query parameters
“message” to the JavaScript bits
binary data, such is base64 encoded, and turned into an ArrayBufger as the receiving code expects. (Here is a potentjal performance issue: the tjle PNG images are base64 encoded, then unencoded, then encoded again for use as data: URLs.)
Collabora Productivity
www.collaboraoffice.com
server in real Online
Collabora Productivity
Collabora Productivity
Keep Calm and Crush the Patriarchy
tml@collabora.com