# 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 ☀️ - Leveraging
positioning context
to provide relevant information -
XMLHttpRequest support
unlocks a wide range of web services - https://github.com/opengisch/qfield-weather-forecast/blob/main/main.qml --- # OSRM
ROUTING
PLUGIN 🚗 - Rely on QField items to
overlay georeferenced geometries #
SEARCH BAR
PLUGINS 🧐 - The plugin framework enables
integration with QField's search bar
- Under the hood, QGIS' locator classes power the functionality - https://github.com/opengisch/qfield-nominatim-locator - https://github.com/opengisch/qfield-geomapfish-locator --- #
VOCAL
POINT PLUGIN 🗣️ -
Leverage smartphone capabilities
into exciting new UX to digitize features - Fantastic way to do
quick prototyping
- https://github.com/SeqLaz/vocalpoint-qfield-plugin --- #
TIPS
FOR DEVELOPERS ⚡ - Qt documentation: https://doc.qt.io/qt-6/qml-tutorial.html - QField documentation: https://docs.qfield.org/reference/plugins/ - Developing on Windows/Linux using QField by adding/changing files in the plugins directory --- # 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 🙏 - For now, GitHub’s topics page offers an overview of most available plugins: https://github.com/topics/qfield-plugin - If you are developing a plugin of your own, use the
#qfield-plugin
topic and let us know! - What to know more? Contact us: info@opengis.ch