QFIELD
PLUGIN FRAMEWORK 🚀
Exploring the possibilities
THE ISSUE 🤔
- QField has over 560,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
WARNING ⚠️
- Documentation remains a work in progress
- However, it improves every single month, e.g. I did the same workshop at FOSS4G 2025 without the API site
- A growing community of plugun authors are also active on our community platform
AVAILABLE QML MODULES 📦
- WebSocket
- Quick3D
- Charts
- Sensors