Skip to content

emericg/QmlAppTemplate

Repository files navigation

QmlAppTemplate

GitHub action GitHub action GitHub issues MIT license

About

A Qt6 / QML application template, with a full set of visual controls, helper modules, as well as build and deploy scripts and CI setups.

Prerequisites

You will need a C++17 compiler and Qt 6.8+.

For macOS and iOS builds, you'll need Xcode (15+) installed.
For Windows builds, you'll need MSVC 2022 installed.
For Android builds, you'll need the appropriates JDK (17) SDK (28+) and NDK (28+). You can customize Android build environment using the assets/android/gradle.properties file.

https://doc.qt.io/qt-6.8/supported-platforms.html

Supported platforms

  • Linux (Ubuntu 22.04+)
  • macOS 12+
  • Windows 10+
  • Android 9+
  • iOS 16+

Recent changes

Qt 6.8 brings big changes and hard platform requirements, so I took this "opportunity" to modernize this template a bit. Let's embrace breaking everything! Again.

Qt 6.x "minor" versions are full of major breakages, it's just too much work to support a matrix of many different versions or build systems.

QmlAppTemplate is now cmake only. Maintaining both cmake and qmake variants of many things was just too much work, and both sides were suffering of less than ideal support. Qt 6 is geared toward cmake, and latest Qt 6 releases are introducing even more tighly coupled features and tooling requirements anyway.

Building QmlAppTemplate

$ git clone https://github.com/emericg/QmlAppTemplate.git --recursive
$ cd QmlAppTemplate/
$ cmake -B build/
$ cmake --build build/

To build for Android and iOS, you should use the qt-cmake script from your Qt installation.

$ /path/to/Qt/bin/qt-cmake -B build/
$ cmake --build build/

Content

C++ modules

AppUtils Various general purpose helpers

MobileUI Interact with Android and iOS UI

MobileSharing Use Android and iOS cross application sharing features

SingleApplication Keep only one instance of your desktop application active at a time

QML component library

TODO

Icon library

TODO

Deploy scripts

Linux application ZIP and AppImage

macOS application ZIP (with code signing)

Windows application ZIP and NSIS installer

GitHub CI workflows

These files are also useful to get an idea about the whole build and deploy process.

Desktop (cmake) Linux, macOS (with notarization) and Windows workflow

Mobile (cmake) Android and iOS workflow (with code signing & store deployment)

Linux flatpak "on demand" workflow

Screenshots

GUI_MOBILE

GUI_DESKTOP1

GUI_DESKTOP2

Licensing

QmlAppTemplate is released under the terms of the MIT license.

Emeric Grange emeric.grange@gmail.com

About

Qt6 / QML application template, with a full set of visual controls, as well as CI setups with build and deploy scripts.

Topics

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •