QFIELD
PLUGIN FRAMEWORK 🚀

Exploring the possibilities

THE ISSUE 🤔

  • QField has nearly 400,000 active devices on Android alone, not every functionality justifies rolling out to all users
  • QField’s commitment to delivering a lean UI also means certain UXs are not a good fit by default

THE ANSWER: PLUGINS 🧩

  • A plugin framework to fulfill those niche needs by the growing number of QField users
  • Aligns with a core value promoted by OPENGIS.ch and the QField project: freedom
  • Plugin development and release not bound to cadence of QField releases

TYPES OF QFIELD PLUGINS 🔠

  • The QField framework offers two types of plugins:
    • App-wide plugins, activated upon app launch until exit
    • Project plugins, enabled while a given project is being consumed

QFIELD VS. QGIS PLUGINS 🔍

  • Python powers QGIS’s plugins with Qt widgets for the GUI
  • QML & Javascript powers QField’s plugins with QtQuick items for the GUI
  • QField’s project plugins can be understood as QGIS project macros

APP-WIDE PLUGINS ✨

  • Installed via the plugin manager by providing a URL pointing to a zipped plugin content
  • The plugin manager provides a quick way to enable/disable/configure plugins
  • Permission will be asked prior to activating a plugin

PROJECT PLUGINS 🗃️

  • Served as a sidecar file to the QGIS project file
  • Often the easiest way to deploy plugins to users as they are bundled with projects and do not require additional steps to obtain
  • Permission will also be asked prior to activating a plugin
  • Pro-tip: rely on QFieldCloud to conduct remote distribution and update of project plugins to a fleet of QField devices

WEATHER PLUGIN ☀️

OSRM ROUTING PLUGIN 🚗

SEARCH BAR PLUGINS 🧐

VOCAL POINT PLUGIN 🗣️

TIPS FOR DEVELOPERS ⚡

WARNING ⚠️

  • Documentation remains a work in progress, and at the moment developers will need to go through less than ideal means to identify available items, objects, properties and invokable functions

AVAILABLE QML MODULES 📦

  • WebSocket
  • Quick3D
  • Charts
  • Sensors

LAST WORDS & THANKS 🙏