Tag: highlights

QField 4.1 "Barents Sea": Dive into the third dimension and coordinate geometry operations!

QField’s first release of the year comes packed with new features as well as a bundle of improvements and polishing. Let’s jump right into it.

Main highlights

3D

This new version of QField comes with a shiny 3D map view, giving users the ability to render their map content on top of a three-dimensional terrain.

Users can rotate the terrain geometry to get a better understanding of elevation profiles, while also adjusting the plane’s extent by panning and zooming with drag and pinch gestures. When the GNSS positioning service is enabled, the user’s current position, as well as ongoing tracking sessions, will be overlaid on top of the 3D terrain geometry.

Watch Video

By default, QField relies on Mapzen Global Terrain tiles to determine terrain elevation. As its name indicates, this is a 30-meter digital elevation model covering the globe and hosted online, which allows QField to render 3D views without any user configuration. But it does not stop there. QField supports additional elevation sources, such as disk-based GeoTIFFs, to work in offline areas. This can be configured when setting up a project by changing the terrain type in QGIS.

COGO operations

Moving on to the next major functionality introduced in this new version: a COGO (Coordinate Geometry) framework to support fieldwork through a set of parameter-driven operations to generate vertices. This has been one of the most requested features by professional land surveyors, so we couldn’t be more excited to deliver it and hear back from our community.

QField 4.1 ships with three COGO tools:

  • The XYZ parameters operation generates vertices based on a manually entered pair of X and Y coordinates as well as an optional Z value;
  • The distance/angle from point operation generates vertices based on distance and angle values from a given point; and
  • The circles’ intersection operation generates vertices at the intersection of two circles, each defined by a point and a radius.

Leveraging QField’s capabilities, a COGO operation’s point parameter can be defined in multiple ways: users can enter values manually or automatically fill in the parameter using either the current GNSS position, the geometry of a pre-existing feature within a point layer, or the coordinate cursor’s location. The latter is super useful when coupled with project snapping.

There’s more

Beyond these two flagship features, this new version contains tons of improvements.

We’re happy to report that the background tracking functionality introduced for Android last year is now available on iOS. Users can now save battery by locking their phone while QField continues to track positions. Upon reopening QField, the collected positions will be written into your project. No Apple will be left behind.

The feature form continued to receive improvements during this development cycle. Starting with this version, Remember Last Value pins are hidden by default. Moving away from an always-shown interface, remember last value pin visibility can now be configured per field. Using the latest QGIS (4.0 and above), users can configure the presence of the pin and whether remembrance should be active by default in the vector layer properties’ attribute form panel.

Position tracking has received a lot of attention during this development cycle focused on optimizations. Tracking is now friendlier to your device battery while user interface responsiveness has been improved when tracking sessions are ongoing. We’ve also spent some time making Bluetooth connections to external GNSS devices even more reliable. If this was an issue for you in the past, give this version a try again.

Finally, something to please our advanced users: QField now offers the ability to tunnel network traffic through a proxy that can be enabled and configured in the settings panel.

‘Barents Sea’ release name

The Barents Sea, a marginal sea of the Arctic Ocean bordered by Norway and Russia, is one of the most ecologically and geopolitically significant water bodies on the planet. Home to some of the world’s largest cod and haddock fisheries, it sustains both marine ecosystems and the livelihoods of coastal communities across the high north. Its waters are a barometer for our changing climate: the Barents Sea is the fastest-warming part of the Arctic, making it a critical area of scientific observation and environmental monitoring. The Nansen Legacy project has been tracking these changes closely (factsheet).

Sea ice in the Barents Sea
Sea ice in the Barents Sea, Peter Prokosch https://www.grida.no/resources/3636

At OPENGIS.ch, we see the Barents Sea as a powerful symbol of why field data collection matters. Understanding and protecting remote, extreme environments like the Arctic requires tools that are reliable, offline-capable, and built for real-world conditions. That is precisely what QField is designed to deliver.

With QField 4.1 ‘Barents Sea’, we continue building on that mission, bringing new capabilities to field workers, researchers, and environmental stewards wherever their work takes them.

Happy field mapping!

Learn More

QField 4.0 "Aare": Unlocking a great spatial experience for a larger audience

Just in time for the end of 2025, QField 4.0 is now available in a virtual store near you. This release brings significant improvements and marks an important usability milestone, worthy of a new major version. It’s truly never been easier to get started with QField - whether you’re a seasoned GIS professional or new to spatial data collection.

Main highlights

One of the most significant feature additions in this new version is right there on the welcome screen: a simple wizard for creating new projects. The wizard guides users through a set of questions covering the desired basemap style and actions such as note taking and position tracking. These projects can be published directly on QFieldCloud, so users can upload images, notes, and tracks that are accessible through web browsers or QGIS using QFieldSync.

The project creation framework also unlocked another feature we’re proud of: on-the-fly conversion of imported projects to cloud projects. The ability to upgrade pre-existing projects to cloud projects means that users can push spatial data and attachments residing on their devices to QFieldCloud and instantly collaborate with coworkers.

On the QFieldCloud front, we’ve done significant code refactoring to make synchronization and attachment uploads even more reliable. Users now see a progress bar showing attachment upload status.

The cloud projects list also lets users push changes and sync projects without opening them first. Indicator badges show whether you have pending local changes or if updates are available from the cloud.

A leaner, clearer, and more focused user interface

Early on in this development cycle, our ninjas decided to make a significant leap forward with QField’s UX focusing on making the user interface leaner when possible, clearer when needed, and more focused throughout.

QField now has a vastly more readable feature form when viewing feature attributes. We’ve also made the interface more consistent by updating all editor widgets to use Qt’s Material style, so comboboxes, text fields, and other elements now have a unified look.

We’ve also simplified the user experience around positioning. The map canvas now has a single positioning button at the bottom right. Click the location marker overlay to reveal a new pie menu with quick access to positioning features: start tracking sessions, copy position to clipboard, show the positioning panel, lock the coordinate cursor to position, lock the map canvas to position, and add bookmarks at your position.

Now when users set accuracy thresholds, tracking sessions and averaged positioning will automatically filter out “bad accuracy” readings.

QField also animates transitions when jumping to your GNSS position, features, or coordinates, making navigation feel smoother and more intuitive.

Wait, there’s more

Beyond these major improvements, QField 4.0 includes tons of new features:

  • Multilingual projects - a feature we added to QGIS several years ago - are now supported in QField
  • When connected to the internet, QField now displays online legend graphics for WMS and Esri map services, providing crucial context for field users
  • Additional feature form widgets are now supported, including the spacer widget and color editor widget, further improving interoperability with QGIS

A complete list of changes is available in the QField release notes on GitHub.

A new release cycle focused on water bodies

With the QField 4.X series, we’re introducing a new naming theme focused on water bodies.

Oceans, rivers, lakes, wetlands, and coastal waters are fundamental to life on Earth. They provide drinking water, support ecosystems and agriculture, regulate climate, and sustain communities worldwide. Yet these vital resources are increasingly under pressure from pollution, overuse, and climate change.

At OPENGIS.ch, we believe that better spatial data leads to better decisions. By making field data collection easier and more accessible, we aim to support those working to understand, protect, and manage these fragile systems. Dedicating this release cycle to water bodies reflects our commitment to using technology responsibly and connects naturally with the United Nations Sustainable Development Goals, which we consistently strive to support through our work.

For the first release in this cycle, we chose a water body of particular significance to QField: Switzerland’s longest river entirely within the country, Aare.

As always, we hope you enjoy this new release.

Happy field mapping!

Learn More

QField 3.6 “Gondwana”: Locking on greatness

Building on top of the last release which introduced background tracking, this development cycle focused on polishing functionalities and building on top of preexisting features. The variety of improvements is sure to make our diverse user base and community excited to upgrade to QField 3.6.

Main highlights

One of the most noticeable improvement in this version is the addition of “map preview rendering”. QField now renders partial map content immediately beyond the edge of the screen, offering a much nicer experience when panning around as well as zooming in and out. Long-time QGIS users will recognise the behaviour, and we’re delighted to bring this experience to the field

This upgrade was the foundation upon which we built the following enhancement: as of QField 3.6, using the “lock to position” mode now keeps your position at the very center of the screen while the canvas slips through smoothly. This greatly improves the usability of the function as your eyes never need to spend time locating the position within the screen: it’s dead center and it stays there!

https://videopress.com/v/kJg69l49?resizeToParent=true&cover=true&preloadContent=metadata&useAverageColor=true

Reminder, the “lock to position” mode is activated by clicking on the bottom-right positioning button, with the button’s background turning blue when the mode is activated.

The improvements did not stop there. Panning and zooming around used to drop users out of the lock mode immediately. While this had its upsides, it also meant that simple scale adjustments to try and view more of the map as it follows the position was not possible. With QField 3.6, the lock has been hardened. Moving the map around will temporarily disable the lock, with a visual countdown embedded within a toast message informs users of when the lock will return. An action button to terminate the lock is located within the toaster to permanently leave the mode.

Moving on to QFieldCloud, this cycle saw tons of improvements. To begin with, it is now possible to rely on shared datasets across multiple cloud projects. Known as localised data paths in QGIS, this functionality enables users to reduce storage usage by storing large datasets in QFieldCloud only once, serving multiple cloud projects, and also easing the maintenance of read-only datasets that require regular updates.

QFieldSync users will see a new checkbox when synchronising their projects, letting them upload shared datasets onto QFieldCloud.

Furthermore, QField has introduced a new cloud project details view to provide additional details on QFieldCloud-hosted projects before downloading them to devices. The new view includes a cloud project thumbnail, more space for richer description text, including interactive hyperlinks, and author details, as well as creation and data update timestamps. Finally, the view offers a QR code, which allows users to scan it quickly and access cloud projects, provided they have the necessary access permission. Distributing a public project has never been easier!

Beyond that, tons more has made its way into QField, including map layer notes viewable through a legend badge in the side dashboard, support for feature identification on online raster layers on compatible WMS and ArcGIS REST servers, atlas printing of a relationship’s child feature directly within the parent feature form, and much more. There’s something for everybody out there.

Focus on feature form polishing

This new version of QField coincides with the release of XLSForm Converter, a new QGIS plugin created by OPENGIS.ch’s very own ninjas. As its title implies, the plugin converts an XLSForm spreadsheet file (.xls, .xlsx, .ods) into a full-fledged QGIS project ready to be used in QField with a pre-configured survey layer matching the content of the provided XLSForm.

This was a golden opportunity to focus on polishing QField’s feature form. As a result, advanced functionalities such as data-driven editable flag and label attribute properties are now supported. In addition, tons of paper-cut bugs, visual inconsistencies, and UX shortcomings have been addressed. Our favourite one might just be the ability to drag the feature addition drawer’s header up and down to toggle its full-screen state :)

Learn More

1 Million Downloads: QField's Big Milestone

🚀 QField has officially hit 1 million downloads – thanks to you! 🎉

Let’s not beat around the bush: QField has hit 1+ million downloads. What started as an ambitious open-source project has transformed into a global tool that’s changing how professionals collect spatial data in the field. This big milestone is the result of years of dedication, with over 50,000 hours invested by our team. Our GeoNinjas contributed 14% of QGIS, while also driving open-source projects like ModelBaker and SwissLocator.Thank you for making GIS nerds the unsung heroes of fieldwork everywhere. Here’s to changing the world, one field at a time!


🚀 GET QFIELD NOW


From Switzerland to the world!🇨🇭

Born in the Swiss Alps, raised by open-source, and now roaming the globe, QField has gone international! What started in Switzerland is now in the hands of field mappers, researchers, and GIS pros on six continents. Thank you for taking QField worldwide! 🌍

Mapping the world one field at a time.


The numbers tell a story 📖

One million downloads might sound like just a number, but for us, it represents something much bigger. It’s 1'000'000 times someone chose an innovative, flexible mobile mapping solution. It’s 1’000’000 instances of fieldwork made easier, more efficient, and more accurate.

From humble beginnings to over 1 million downloads, QField has officially gone from “little app that could” to “open-source overachiever. Thanks to the power of open source (and probably some caffeine).

QField has hit 1 million downloads in over 150 countries.


QField’s top user countries 🏆

QField’s passport is full! 🌍 We’re blown away by how far our geospatial tool has travelled: from mountaintops to city blocks, you’re mapping it all. Our amazing global user community is making QField a true #DigitalPublicGood.A map made in heaven! 💚

Mapping knows no borders, just like QField’s growing community.


More than just an app 📱

This cross-platform flexibility helps professionals collect GIS data anywhere, anytime. QField goes wherever you do. Android? Check. iOS? Check. Desktop? Check. If it has a screen, we’re probably on it. Collect GIS data anywhere, anytime.

QField isn’t just software, it’s a community-driven project that turns complex geospatial challenges into precise, actionable data. Every download represents a connection to our core mission: making professional-grade mobile GIS accessible, reliable, and straightforward.


QField’s Journey: Mapping our milestones 📍

Our roadmap is packed with milestones and highlights that will continue to push the boundaries of mobile GIS.


QField toQFieldCloud ☁️

You can play a key role in the sustainable growth of QField, the open-source digital good. Your support  can take many forms, like contributing… or:

Support option 1
Support option 2
Support option 3

This not only streamlines and enhances your fieldwork but also gives you access to the full QField ecosystem with all its advantages. At the same time, you directly contribute to the continuous improvement of QField, ensuring its impact grows for everyone.

💚 SUPPORT US


Learn More

QField 3.5 “Fangorn”: Background tracking a reality!

Let’s not bury the lead here: the long-awaited capability to track position while QField is in the background or the device is locked has arrived in this brand-new version of QField. This feels like a magical moment, so we settled for a fantastical forest for our release name.

Main highlights

As highlighted above, QField 3.5 has unlocked background position tracking on the Android platform. This allows users to keep track of their positions even as they put QField in the background to conduct other tasks on their devices. It also means that tracking has become far more battery efficient, as users can lock/suspend their phones and tablets for long periods while QField continues to collect and track positions. On top of it all, this will work out of the book with internal GNSS as well as external high-precision GNSS devices.

This is a long-requested functionality for QField, and we couldn’t be prouder to deliver it to our hundreds of thousands of Android users. Big thanks to Groupements forestiers QuébecBiotope, and Terrex Seismic, who jointly sponsored the development.

Moving on to the next major feature added to this new version. Users can now easily import folders from WebDAV services and subsequently upload and download content to that remote folder within QField itself. This functionality eases friction on Android and iOS platforms where storage access is heavily regulated. This implementation highlights our commitment to providing QField users with the freedom they need to build their workflows; thanks to Prona Romandie, AgaricIG, and Oslandia for commissioning this work.

It’s important to note that the WebDAV functionality does not provide data synchronization. The download and upload operations will overwrite datasets stored locally or remotely. For users in need of synchronization and smooth project distribution, QFieldCloud is the way to go. With this new version of QField, downloading large datasets from QFieldCloud has become much more reliable, especially on devices with low memory.

Last but not least, QField has gained support for project-configured grid decoration. When activated, a grid is overlayed on top of the map canvas, which will dynamically render while panning and zooming around. The grid is configured and activated while setting up projects within QGIS itself.

Pro tip: this functionality can replace heavy grid datasets when covering a large dataset, something to consider when trying to optimize projects’ storage size. Big thanks to Oester Messtechnik GmbH for supporting the implementation of this fourth decoration following the arrival of title, copyright, and image decorations in earlier releases.

Other improvements in this release include “forward” angle snapping to digitize perfectly angled polygons, pinch gesture-driven feature rotation, and a new print template which unlocks printing of map canvas to PDF even when their projects have no layouts defined.

Plugin-specific improvements

One of the main additions to QField’s plugin framework is the capability to integrate custom results into the search bar. Thanks to Kanton Basel-Landschaft for supporting the development, users can enjoy OpenStreetMap Nominatim search result integration by installing this plugin (instructions available on the repository). This integration also opens up many new possibilities, such as enabling plugins to send prompts to AI, just like this plugin does.

Other noteworthy improvements include shipping Quick3D QML modules, which allow authors to develop 3D overlays, a new API to customize QField’s colour appearance and a new mechanism for plugins to add a configuration button within the plugin manager.

Users and plugin authors can expect an exciting year ahead as the QField plugin framework continues to grow with new functionalities and improvements. Watch this space!

Learn More

QField 3.4 “Ebo”: Geofencing and processing out of the box

QField 3.4 is out, and it won’t disappoint. It has tons of new features that continue to push the limits of what users can do in the field.

Main highlights

A new geofencing framework has landed, enabling users to configure QField behaviors in relation to geofenced areas and user positioning. Geofenced areas are defined at the project-level and shaped by polygons from a chosen vector layer. The three available geofencing behaviours in this new release are:

  • Alert user when inside an area polygon;
  • Alert user when outside all defined area polygons and
  • Inform the user when entering and leaving an area polygons.

In addition to being alerted or informed, users can also prevent digitizing of features when being alerted by the first or second behaviour. The configuration of this functionality is done in QGIS using QFieldSync.

Pro tip: geofencing settings are embedded within projects, which means it is easy to deploy these constraints to a team of field workers through QFieldCloud. Thanks Terrex Seismic for sponsoring this functionality.

QField now offers users access to a brand new processing toolbox containing over a dozen algorithms for manipulating digitized geometries directly in the field. As with many parts of QField, this feature relies on QGIS’ core library, namely its processing framework and the numerous, well-maintained algorithms it comes with.

The algorithms exposed in QField unlock many useful functionalities for refining geometries, including orthogonalization, smoothing, buffering, rotation, affine transformation, etc. As users configure algorithms’ parameters, a grey preview of the output will be visible as an overlay on top of the map canvas.

To reach the processing toolbox in QField, select one or more features by long-pressing on them in the features list, open the 3-dot menu and click on the process selected feature(s) action. Are you excited about this one? Send your thanks to the National Land Survey of Finland, who’s support made this a reality.

QField’s camera has gained support for customized ratio and resolution of photos, as well as the ability to stamp details – date and time as well as location details - onto captured photos. In fact, QField’s own camera has received so much attention in the last few releases that we have decided to make it the default one. On supported platforms, users can switch to their OS camera by disabling the native camera option found at the bottom of the QField settings’ general tab.

Wait, there’s more

There are plenty more improvements packed into this release from project variables editing using a revamped variables editor through to integration of QField documentation help in the search bar and the ability to search cloud project lists. Read the full 3.4 changelog to know more, and enjoy the release!

Learn More

Supercharge your fieldwork with QField's project and app-wide plugins

This blog post will introduce QField’s brand new plugin framework and walk through the creation of a plugin to support bird watchers in need of a quick way to digitize photos of spotted birds onto a point vector layer.

A plugin framework is born!

As announced recently, QField now empowers users through a brand new plugin framework allowing for simple customization on the way the application behaves or looks all the way through to creating completely new functionalities.

The plugin framework relies on Qt’s QML engine and JavaScript, allowing for cross-platform support out of the box. This means that plugins will run perfectly fine on all platforms currently supported by QField: Android, iOS, Windows, Linux, and macOS.

App-wide plugin vs. project plugin

First, let’s look at the two types of plugins supported by QField: app-wide plugins and project plugins. As their names imply, the main difference is their scope. An enabled app-wide plugin will remain active as long as QField is running, while project plugins are activated on project load and deactivated when the project tied to the plugin is closed.

Project plugins are shipped alongside a given project file ( .qgs/ .qgz). Project plugins must share the same name of the project file with a .qml extension. For example, if your project file is birdwatcher.qgz, QField will look for the presence of a birdwatcher.qml to activate the project plugin. For app-wide plugins, installation is done via the plugins manager popup; more on this below.

Distribution of project plugins can be greatly facilitated through QFieldCloud. The presence of project plugins within a cloud project environment will be automatically detected and packaged alongside the project file and its datasets when deployed to QField devices.

Starting with a project plugin

We will start with looking into a simple project plugin that offers a new digitizing mechanism focused on snapping photos as a trigger for point feature addition. This plugin will demonstrate how new functionalities and behaviors can be added to QField to serve specific needs. In this case, the new digitizing mechanism could come in handy for bird watchers and other users in need of a quick way to snap photos!

It’s advised to download a version of QField running on your desktop environment while testing plugins. Links to Windows, Linux, and macOS builds are available here. Once installed, download this project archive containing a tiny birdwatcher sample project and extract it into a new directory on your local machine.

The project archive consists of a point vector layer ( observations.gpkg), a project file ( birdwatcher.qgz) as well as a project plugin ( birdwatcher.qml) which we will look into below. Please note that the point vector layer’s attribute form is already configured to display captured photos. We will not spend time on attribute form setup in this post; see this relevant documentation page if you are interested in knowing how that was achieved.

We can now test the project plugin by opening the project ( birdwatcher.qgz) in QField. Users familiar with QField will notice a new ‘camera’ tool button present on the top-right corner of the map canvas. This button was added by the project plugin. You can press on it, to open the QField camera, take a photo (of yourself, a random object on your table, or with a bit of luck a bird), and witness how that leads to a point feature creation.

Digging into the project plugin file

Let’s open the project plugin file (birdwatcher.qml) in your favorite text editor. The first few lines define the QML imports needed by the plugin:

import QtQuick
import QtQuick.Controls

import org.qfield
import org.qgis
import Theme

import "qrc:/qml" as QFieldItems

Beyond the two QtQuick imports, we will make use of QField-specific types and items as well as QGIS ones ( registered and declared in this source file), a Theme to retrieve icons and colors as well as QField items such as tool buttons ( see this source directory), as well as the QField QML items embedded into the application itself to make use of the camera.

The next line declares an generic Item component which will be used by QField to initiate the plugin. This must be present in all plugins. As this plugin does, you can use the Component.onCompleted signal to trigger code execution. In this case, we are using iface to add a tool button on top of the map canvas:

Component.onCompleted: {
  iface.addItemToPluginsToolbar(snapButton)
}

Just above these lines, the plugin declare a number of properties pointing to items found in the main QField ApplicationWindow:

property var mainWindow: iface.mainWindow()
property var positionSource: iface.findItemByObjectName('positionSource')
property var dashBoard: iface.findItemByObjectName('dashBoard')
property var overlayFeatureFormDrawer: iface.findItemByObjectName('overlayFeatureFormDrawer')

Users can reach through to any items within QField’s ApplicationWindow provided they have an objectName property defined. The string value is used in the iface.findItemByObjectName() function to retrieve the item.

The rest of the file consists of a loader to activate the QField camera, a tool button to snap a photo, and a function to create a new feature within which the current position is used as geometry and the snapped photo is attached to the feature form.

The function itself provides a good example of what can be achieved by using the parts of QGIS exposed through QML, as well as utility functions and user interface provided by QField:

function snap(path) {
  let today = new Date()
  let relativePath = 'DCIM/' + today.getFullYear()
                              + (today.getMonth() +1 ).toString().padStart(2,0)
                              + today.getDate().toString().padStart(2,0)
                              + today.getHours().toString().padStart(2,0)
                              + today.getMinutes().toString().padStart(2,0)
                              + today.getSeconds().toString().padStart(2,0)
                              + '.' + FileUtils.fileSuffix(path)
  platformUtilities.renameFile(path, qgisProject.homePath + '/' + relativePath)

  let pos = positionSource.projectedPosition
  let wkt = 'POINT(' + pos.x + ' ' + pos.y + ')'

  let geometry = GeometryUtils.createGeometryFromWkt(wkt)
  let feature = FeatureUtils.createFeature(dashBoard.activeLayer, geometry)

  let fieldNames = feature.fields.names
  if (fieldNames.indexOf('photo') > -1) {
    feature.setAttribute(fieldNames.indexOf('photo'), relativePath)
  } else if (fieldNames.indexOf('picture') > -1) {
    feature.setAttribute(fieldNames.indexOf('picture'), relativePath)
  }

  overlayFeatureFormDrawer.featureModel.feature = feature
  overlayFeatureFormDrawer.state = 'Add'
  overlayFeatureFormDrawer.open()
}

The QGIS API Documentation site is a good resource for learning what parts of the many QGIS classes are exposed to QML. For example, the QgsFeature documentation page contains a Properties section and a Q_INVOKABLE prefix next to functions indicating their availability within a QML/JavaScript environment.

Deployment of a project plugin via QFieldCloud

As mentioned above, QFieldCloud greatly eases the deployment of project plugins to devices in the field. We will now go through the steps required to create a cloud project environment based on the birdwatcher sample project, and witness it handling the project plugin automatically.

This will require you to registered for a freely available QFieldCloud community account if you haven’t done so yet ( it takes a minute to do so, what are you waiting for ;) ). We will also need the QFieldSync plugin in QGIS, which can be enabled through the QGIS plugin manager.

Let’s open QGIS, and log into QFieldCloud by clicking on the QFieldSync toolbar’s blue cloud icon. Once logged in, click on the ‘Create New Project’ tool button found at the bottom of the dialog.

In the subsequent panel dialog, choose the ‘Create a new empty QFieldCloud project’ and then hit the ‘Next’ button. Give it a name and a description, and for the local directory, pick the folder within which you had extracted the birdwatcher project, then hit the ‘Create’ button.

QFieldSync will then ask you to upload your newly created cloud project environment to the server. Notice how the project plugin file (birdwatcher.qml) is part of the files to be delivered to the cloud. Confirm by clicking on the ‘Upload to server’ button.

When QFieldSync is finished uploading, you are ready to take your mobile device, open QField, log into your QFieldCloud account and download the cloud project. Once the cloud project is loaded, you will be asked for permission to load the project plugin, which you can grant on a permanent or one-time basis.

Bravo! You have successfully deployed a project plugin through QFieldCloud.

Creating an app-wide plugin directory

Let’s move on to creating a functional app-wide plugin directory. Download this sample app-wide plugin and extract it into a new directory placed in the ‘plugins’ directory, itself found within the QField app directory. The location of the app directory is provided in the ‘About QField’ overlay, take note of it prior to extracting the plugin if you have not done so yet.

As seen in the screenshot above, which demonstrates the directory hierarchy, a given plugin directory must contain at least two files: a main.qml file, which QField will use to activate the plugin, and a metadata.txt file containing basic information on the plugin, such as the plugin name, author details, and version.

Here’s a sample metadata.txt from the birdwatcher project plugin upgraded into an app-wide plugin:

[general]
name=Snap!
description=Digitize points through snapping photos
author=OPENGIS.ch
icon=icon.svg
version=1.0
homepage=/

Opening main.qml in your favourite text editor will reveal that it has the exact same content as the above-shared project plugin. The only change is the renaming of birdwatcher.qml to main.qml to take into account this plugin’s app-wide scope.

PSA: we have setup this GitHub QField template plugin repository to ease creation of plugins. Fork at will!

Deploying app-wide plugins

While currently not as smooth as deploying a project plugin through QFieldCloud, app-wide plugins can be installed onto devices using a URL pointing to a zipped archive file containing the content of a given plugin directory. The zipped archive file can then be hosted on your own website, on a GitHub or GitLab repository, a Dropbox link, etc.

In QField, open the plugins manager popup found in the settings panel, and use the ‘Install plugin from URL’ button to paste a URL pointing to a zipped plugin file.

You should keep the zipped archive file name consistent for a better user experience, as it is used to determine the installation directory. This is an important consideration to take into account when offering plugin updates. If your zipped plugin file name changes, the plugin will not be updated but rather added to a new directory alongside the previously installed plugin.

QField does allow for a version tag to be added to a zipped archive file name, provided it is appended at the end of the file name, preceded by a dash, and includes only numbers and dots. For example, myplugin-0.0.1.zip and myplugin-0.2.1.zip will install the plugin in the myplugin directory.

Empowering users as well as developers

Here at OPENGIS.ch, we believe this new plugin framework empowers not only users but also developers, including our very own ninjas! With plugin support, we now have the possibility to develop answers to specific field scenarios that would not necessarily be fit for QField-wide functionalities. We would love to hear your opinion and ideas.

If you would like to supercharge your fieldwork and need some help, do not hesitate to contact us - your projects are our passion 💚

P.S. If you are developing a cool QField plugin, also let us know! :)

Bird SVG in video CC-BY https://svgrepo.com/svg/417419/bird
Learn More

QField 3.3 “Darién”: It is just the beginning

QField 3.3 has been released, and with it, we are proud to introduce a brand new plugin framework that empowers users to customize and add completely new functionalities to their favourite field application. That’s on top of a bunch of new features and improvements added during this development cycle. What preceded this moment was just the beginning!

Main highlights

One of the biggest feature additions of this version is a brand new drawing tool that allows users to sketch out important details over captured photos or annotate drawing templates. This was a highly requested feature, which we are delighted to bring to all supported platforms (Android, iOS, Windows, macOS, and, of course, Linux) with the financial support of the Swiss QGIS user group.

Also landing in this version is support for copying and pasting vector features into and from the clipboard. This comes in handy in multiple ways, from providing a quick and easy way to transfer attributes from one feature to another through matching field names to pasting the details of a captured feature in the field into a third-party messenger, word editing, or email application. Copying and pasting features can be done through the feature form’s menu as well as long pressed over the map canvas. If copy pasting ain’t your style, a new feature-to-feature attributes transfer shortcut has also been added to the feature form’s menu. Appreciation to Switzerland, Canton of Lucerne, Environment and Energy for providing the funds for this feature.

The feature form continues to gain more functionalities; in this version, the feature form’s value map editor widget has gained a new toggle button interface that can help fasten data entry. The interface replaces the traditional combo box with a series of toggle buttons, lowering the number of taps required to pick a value. If you enjoy this as much as we do, send a virtual thanks to German Archaeological Institut - KulturGutRetter, which sponsored this feature.

Other improvements in the feature form include support for value relation item grouping and respect for the vector layer attributes’ “reuse last entered value” setting.

Finally, additional features that are sure to please include support for image decoration overlay, a new interface to hop through cameras(front, back, and external devices) for the ‘non-native’ camera , the possibility to disable the 3-finger map rotation gesture, and much more.

User experience improvements

Long-time users of QField will notice the new version restyling of the information panels such as GNSS positioning, navigation, elevation profile, and sensor data. The information is now presented as an overlay sitting on top of the map canvas, which increases the map canvas’ visibility while also achieving better focus and clarity on the provided details. While revisiting these information panels, we’ve made sure all details, including altitude and distance to destination, respect user-configured project distance unit type.

The dashboard’s legend has also received some attention. You can now toggle the visibility of any layer via a quick tap on a new eye icon sitting in the legend tree itself. Similarly, legend groups can be expanded and collapsed directly for the tree. This also permits you to show or hide layers while digitizing a feature, something which was not possible until now. The development of these improvements was supported by Gispo and sponsored by the National Land Survey of Finland.

Plugin framework

Last but far away from least, QField 3.3 introduces a brand new plugin framework using Qt’s powerful QML and JavaScript engine. With a few lines of code, plugins can be written to tweak QField’s behaviour and add breathtaking capabilities. Two types of plugins are possible: app-wide plugins as well as project-scoped plugins. To ensure maximum ease of deployment, we have enabled project plugin distribution through QFieldCloud! We extend our heartfelt thanks to Amsa for the financial contribution that brought this incredible project to life.

Stay tuned for an upcoming webinar and a dedicated post that will dive into how QField plugins can revolutionize your field (and business) workflows by allowing you to be even more efficient in the field.

Users interested in authoring plugins or better understanding the framework can already visit the dedicated documentation page, a sample plugin implementation sporting a weather forecast integration and our latest blog article.

Learn More

QField 3.2 “Congo”: Making your life easier

Focused on stability and usability improvements, most users will find something to celebrate in QField 3.2

Main highlights

This new release introduces project-defined tracking sessions, which are automatically activated when the project is loaded. Defined while setting up and tweaking a project on QGIS, these sessions permit the automated tracking of device positions without taking any action in QField beyond opening the project itself. This liberates field users from remembering to launch a session on app launch and lowers the knowledge required to collect such data. For more details, please read the relevant QField documentation section.

As good as the above-described functionality sounds, it really shines through in cloud projects when paired with two other new featurs.

First, cloud projects can now automatically push accumulated changes at regular intervals. The functionality can be manually toggled for any cloud project by going to the synchronization panel in QField and activating the relevant toggle (see middle screenshot above). It can also be turned on project load by enabling automatic push when setting up the project in QGIS via the project properties dialog. When activated through this project setting, the functionality will always be activated, and the need for field users to take any action will be removed.

Pushing changes regularly is great, but it could easily have gotten in the way of blocking popups. This is why QField 3.2 can now push changes and synchronize cloud projects in the background. We still kept a ‘successfully pushed changes’ toast message to let you know the magic has happened 🚀

With all of the above, cloud projects on QField can now deliver near real-time tracking of devices in the field, all configured on one desktop machine and deployed through QFieldCloud. Thanks to Groupements forestiers Québec for sponsoring these enhancements.

Other noteworthy feature additions in this release include:

  • A brand new undo/redo mechanism allows users to rollback feature addition, editing, and/or deletion at will. The redesigned QField main menu is accessible by long pressing on the top-left dashboard button.
  • Support for projects’ titles and copyright map decorations as overlays on top of the map canvas in QField allows projects to better convey attributions and additional context through informative titles.

Additional improvements

The QFieldCloud user experience continues to be improved. In this release, we have reworked the visual feedback provided when downloading and synchronizing projects through the addition of a progress bar as well as additional details, such as the overall size of the files being fetched. In addition, a visual indicator has been added to the dashboard and the cloud projects list to alert users to the presence of a newer project file on the cloud for projects locally available on the device.

With that said, if you haven’t signed onto QFieldCloud yet, try it! Psst, the community account is free 🤫

The creation of relationship children during feature digitizing is now smoother as we lifted the requirement to save a parent feature before creating children. Users can now proceed in the order that feels most natural to them.

Finally, Android users will be happy to hear that a significant rework of native camera, gallery, and file picker activities has led to increased stability and much better integration with Android itself. Activities such as the gallery are now properly overlayed on top of the QField map canvas instead of showing a black screen.

Learn More

Snappy QField 3.1 “Borneo” has arrived

The launch of QField 3.0 was a big deal, but now we’re back to focusing on smaller, more frequent updates. Don’t let the shorter change log for 3.1 trick you – there are lots of cool new features in this update!

Main highlights

One of the main improvements in this release is the brand-new functionality to enable snapping to common angles while digitizing. When enabled, the coordinate cursor will snap to configured angles alongside a visual guideline. This comes in handy when adding new geometries while surveying features with regular angles (e.g. buildings, parking lots, etc.). As QField gets more digitizing functionalities, we’ve taken the time to implement a nifty UI that collapses digitizing toggle buttons into a drawer, leaving extra space for the map canvas to shine through.

In addition, the vertex editor - one of QField’s most advanced geometry tools - received tons of love during this development cycle, focusing on improving its usability. Changes worth mentioning include:

  • A new undo button allows users to revert individual vertex manipulations in case of mistaken adjustment, which can save you from having to cancel a large set of ongoing manipulations;
  • The possibility to select vertices using finger tapping on the screen, dramatically improving the user experience;
  • Clearer on-screen markers to represent vertices and
  • Tons of bug fixes to the vertex editor itself, as well as the broader set of geometry tools.

It is now possible to lock the geometry of individual features within a single vector layer. While QField has long supported the concept of a locked geometry state for vector layers, that was until now a layer-wide toggle. With the new version of QField, a data-defined property can dictate whether a given feature geometry can be edited. Interested in geofenced geometry editing? We’ve got you covered ;) This functionality requires the latest version of QFieldSync, which is available through QGIS’ plugin manager.

Noticeably improvements

Permission handling has been improved across all platforms. On Android, QField now delays the permission request for camera, microphone, location, and Bluetooth access until needed. This makes for a much friendlier user experience.

QField 3.0 was one of the largest releases, with major changes in its underlying libraries, including a migration to Qt 6. With the community’s help, we have spent countless hours testing before release. However, it is never a bulletproof process, and that version came with a few noticeable regressions. In particular, camera handling on Android suffered from upstream issues with Qt. We’ve tracked as many of those as possible, making this new version much more stable. One lingering camera issue remains and will be fixed upstream in the next three weeks; we’ll update as soon as it is available.

Finally, long-time users of QField will notice improvements in how geometry highlights and digitizing rubber bands are drawn. We’ve doubled down on efforts to ensure that the digitized geometries and the coordinate cursor itself are always clearly visible, whether overlaid against the canvas’s light or dark parts.

We want to extend a heartfelt thank you to our sponsors for their generous support. If you’re inspired by the developments in QField and want to contribute, please consider donating. Your support will help us continue to innovate and improve this tool for everyone’s benefit.

Learn More