Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Platform Creation w/ Qt + Ubuntu

Platform Creation w/ Qt + Ubuntu

Using the Ubuntu GNU/Linux distribution and Qt application framework, we will demonstrate a theoretical app platform. This theoretical app platform will be modeled after production systems using open source software in the automotive and medical industries.

Presented on 9/16 at the 2017 Vermont Code Camp https://www.vtcodecamp.org

Jereme Givens-Lamothe

September 16, 2017
Tweet

More Decks by Jereme Givens-Lamothe

Other Decks in Programming

Transcript

  1. September 16 2017 | Burlington, VT
    Platform Creation w/ Qt + Ubuntu
    Jereme Givens-Lamothe, Senior Software Architect at DocBox Inc

    View Slide

  2. Agenda
    • Introductions
    • Why Create an App Platform?
    • Demo Platform: Live Code
    • Recipe for a Demo Platform
    • Demo App: Live Code, Build & Deploy
    2

    View Slide

  3. Who Am I?
    • Senior Software Architect at DocBox Inc
    • ~10 years working in Healthcare
    • Currently working in the Boston area
    • Originally from the BTV area!
    • Saint Michael's College ‘08
    3

    View Slide

  4. Why Create an App Platform?
    • DocBox created a platform for Clinical Apps at Patient bed
    • Provide Clinical Decision Support, Workflow Automation, etc.
    • ASTM F2761 - ICE (Medical Device Interoperability)
    4

    View Slide

  5. Live Demo - Platform
    • Requirements
    • Multi-touch navigation
    • Display a grid of installed Apps
    • Launch Apps on icon tap
    • Ability to install new Apps
    • Custom System UI
    5

    View Slide

  6. How to Build an App Platform?
    • Ubuntu GNU / Linux
    • Operating System
    • Qt Quick
    • Application Framework
    • Qt Application Manager
    • App, Window Management, etc.
    6

    View Slide

  7. A (Brief) Introduction to Ubuntu
    • Popular GNU/Linux Distribution
    • Used in Desktop, Server, Cloud, and IoT
    • Our demo platform will use Ubuntu 16.04 LTS
    • Supported by Canonical
    • Open Source!
    • Official Site - https://www.ubuntu.com
    7

    View Slide

  8. An Introduction to Qt Framework
    • Cross-platform C++ application framework
    • Windows, macOS, Linux (1..n), QNX, iOS, Android, etc...
    • Qt Project is open source, independently governed
    • Primarily supported by Qt Company in Finland
    • Intel, KDAB, and many others contribute
    • Open Source, GPL!
    • Official Site - https://www.qt.io
    8

    View Slide

  9. An Introduction to Qt Quick
    • Qt Quick is a toolkit for creating apps
    • Use QML to create declarative UI
    • Can create new QML types from
    traditional Qt / C++ classes
    9

    View Slide

  10. An Introduction to Qt Application Manager
    • Qt adopted by many car manufacturers for HMI / infotainment
    • Tesla, Jaguar, and others...
    • One common, open source, reference platform for all vendors.
    • Application launcher, window manager, etc.
    • Open Source, LGPL!
    10

    View Slide

  11. Live Demo - Code, Build, Deploy
    • Goals:
    • Write a simple application
    • Compile and execute the application
    • Package the application for distribution
    • Deploy to our app platform
    11

    View Slide

  12. Recap / Conclusion
    • We created an App Platform using
    • Ubuntu
    • Qt Quick
    • Qt Application Manager
    • We created an App using
    • Qt Quick
    • All available under open source licenses
    12
    Ubuntu GNU/Linux
    Qt
    Application Manager
    App

    View Slide

  13. September 16 2017 | Burlington, VT
    Thank you!
    [email protected] - http://docboxmed.com

    View Slide

  14. Further Reading
    • Demo Code, Presentation, Tutorial, etc - http://zestymeta.xyz
    • Ubuntu
    • Download - https://www.ubuntu.com/download
    • Documentation - https://help.ubuntu.com/
    • Qt Framework
    • Getting Started - http://doc.qt.io/qt-5/gettingstarted.html
    • Sources - http://code.qt.io/cgit/
    • Qt Application Manager
    • Documentation - https://doc.qt.io/QtApplicationManager/index.html
    14

    View Slide