Desktop to Mobile - Developing for Multiple Platforms without Losing Your Mind

A2 | Wed 23 Jan | 11:35 a.m.–12:20 p.m.

Presented by

  • Dirk Hohndel

    Dirk is VMware's Chief Open Source Officer, leading the company's Open Source Program Office, directing the efforts and strategy around use of and contribution to open source projects and driving common values and processes across the company for VMware's interaction with the open source communities. Before joining VMware, Dirk spent almost 15 years as Intel's Chief Linux and Open Source Technologist. Before that, he worked as Chief Technology Officer of SuSE and Unix Architect of Deutsche Bank. Dirk has been an active developer and contributor to several dozen open source projects since the early 1990s. He currently is a member of the Board of the Linux Foundation. Dirk holds a degree in Mathematics and Computer Science from the University of W├╝rzburg, Germany and lives in Portland, Oregon.


This is a no-brainer, right? Everyone is just doing mobile apps these days, anyway. So why is this even a talk? Well, imagine you have a desktop application. And that there are good reasons why this should be a desktop application (screen size and ability to talk to random hardware devices, for example). But your users really want a mobile app. And now you need both. And you don't want to throw away all that code. So what do you do? The Subsurface developers decided to build their desktop and mobile apps from the same code base, using QML and Kirigami to develop the mobile flavor of their Qt app. This solved many problems and opened many doors for us, but it also taught us some harsh lessons about being earlier adopters (this was the first Kirigami app outside their own example apps) and niche users of a technology: to this day I believe we are the only Kirigami app that's both in the Apple App Store and the Google Play Store, and the total number of Qt/QML based applications in both stores is miniscule. Android and iOS packaging are definitely not first class citizens and random other things for those two platforms will randomly not quite work the way you expect. The presentation will briefly touch on the why (as in: why the heck did you do that instead of writing native Java / objC apps?) and then focus on the how: How can you share most of your code between desktop and mobile, make reasonable trade-offs between functionality, and deal with the challenges of supporting Android and iOS (let alone Linux, Mac, and Windows) from the same code base. Linux Australia: YouTube: