QField derived mobile app

Daniel Kunický 2c39dcaa95 Merge branch 'attribute-tracking' of kunickyd/vra-helper into master 3 anni fa
.ci ebef13bbac add QField 1.10.0 3 anni fa
.docker ebef13bbac add QField 1.10.0 3 anni fa
.github ebef13bbac add QField 1.10.0 3 anni fa
.tx ebef13bbac add QField 1.10.0 3 anni fa
3rdparty ebef13bbac add QField 1.10.0 3 anni fa
android ebef13bbac add QField 1.10.0 3 anni fa
cmake ebef13bbac add QField 1.10.0 3 anni fa
i18n ebef13bbac add QField 1.10.0 3 anni fa
images ebef13bbac add QField 1.10.0 3 anni fa
ios ebef13bbac add QField 1.10.0 3 anni fa
platform ebef13bbac add QField 1.10.0 3 anni fa
resources ebef13bbac add QField 1.10.0 3 anni fa
scripts ebef13bbac add QField 1.10.0 3 anni fa
src ffac4817bc add modified files 3 anni fa
templates ebef13bbac add QField 1.10.0 3 anni fa
test ebef13bbac add QField 1.10.0 3 anni fa
vcpkg ebef13bbac add QField 1.10.0 3 anni fa
.clang-format ebef13bbac add QField 1.10.0 3 anni fa
.cmake-format.yaml ebef13bbac add QField 1.10.0 3 anni fa
.gitignore ebef13bbac add QField 1.10.0 3 anni fa
.gitmodules ebef13bbac add QField 1.10.0 3 anni fa
.pre-commit-config.yaml ebef13bbac add QField 1.10.0 3 anni fa
CMakeLists.txt ebef13bbac add QField 1.10.0 3 anni fa
LICENSE ebef13bbac add QField 1.10.0 3 anni fa
README.md d6e6de7659 first commit 3 anni fa
RELEASE_NAME ebef13bbac add QField 1.10.0 3 anni fa
publiccode.yml ebef13bbac add QField 1.10.0 3 anni fa
sdk.conf ebef13bbac add QField 1.10.0 3 anni fa
vcpkg.json ebef13bbac add QField 1.10.0 3 anni fa

README.md

Read the documentation Release

QField for QGIS

A simplified touch optimized interface for QGIS.

Perfect for field work on portable touch devices.

Get it

Check the documentation

Android

Get in Google play

Windows (Beta)

Download the latest windows beta version

iOS (Alpha)

An iOS version is in alpha state, subscribe as iOS tester to be among the first to try

Contribute

QField is an open source project, licensed under the terms of the GPLv2 or later. This means that it is free to use and modify and will stay like that.

We are very happy if this app helps you to get your job done or in whatever creative way you may use it.

If you found it useful, we will be even happier if you could give something back. A couple of things you can do are

Get master (unstable) version

We automatically publish the latest master build to a dedicated channel on the playstore. You'll need to join the beta program to start getting the latest version.

Please remember that this is the latest development build and is not tested much.

Build

For Android

Automatic (Docker)

You can build QField for Android using our Docker image. Just execute the provided script:

./scripts/build.sh

This will put the apk into a subfolder build-docker/out/build-arm64_v8a/outputs/apk

If you want to build for a different architecture, set the ARCH enviroment variable.

ARCH=x86_64 ./scripts/build.sh

Manual (Qt Creator)

You need to have Qt for Android installed and Qt Creator set up for Android development as in Qt documentation.

To setup QField for development in Qt Creator, do as follows:

  • Download the latest version of QField SDK from here and extract it.
  • In Qt Creator, import the source tree, enable Android kit and in initial CMake parameters, set OSGEO4A_STAGE_DIR to where you have extracted QField SDK to.
  • Set ANDROID_TARGET_PLATFORM to an Android target platform version number of your choice. If in doubt, set it to the version of the SDK platform that you're going to use to build QField.
  • Configure the project and build.

Please note that you may get SIGILL when trying to debug QField using GDB. If that's the case, set this startup command for GDB in Qt Creator settings:

handle SIGILL pass nostop noprint

For iOs

For Desktop

To build QField for a desktop environment:

  • Get QGIS development libraries. QField normally uses bleeding edge QGIS code. Ideally install nightly builds or compile it on your own and install to a custom prefix path. See more about QGIS compilation here.
  • If your system comes with a Qt version which is too low for QField, you can also install Qt manually. Download the most recent Qt 5.x version from the Qt Website to satisfy QField dependencies. Setup a new QtCreator kit that uses the downloaded Qt libs.
  • Get QField source code:
cd QField
  • Open CMakeList.txt with QtCreator.
  • Hit build

(??)If you make your own QGIS build, use the following variables: QGIS_ANALYSIS_LIBRARY, QGIS_CORE_LIBRARY, QGIS_INCLUDE_DIR, and QGIS_PLUGIN_DIR.

On OS X

In addition to the steps above, in QtCreator's build environment (access via Projects > Build), add the following variables:

  • QGIS_INSTALL_PATH: the same value than in the config.pri (could be /usr/local/opt/qgis3/ or the installation folder of a local build)
  • DYLD_FRAMEWORK_PATH add _QGIS_INSTALL_PATH_/QGIS.app/Contents/Frameworks (replace _QGIS_INSTALL_PATH_)
  • DYLD_LIBRARY_PATH add :_QGIS_INSTALL_PATH_/QGIS.app/Contents/Frameworks/qgis_core.framework/Versions/Current (replace _QGIS_INSTALL_PATH_)

Invalid version number issue

If you get the error invalid version number in '-mmacosx-version-min=', you need to hardcode the minimum deployment target by setting version_min_flag = -m$${version_identifier}-version-min=10.10 in /usr/local/opt/qt/mkspecs/features/mac/default_post.prf.

One line command:

gsed -i "s/version_min_flag = -m\$\${version_identifier}-version-min=\$\$deployment_target/version_min_flag = -m\$\${version_identifier}-version-min=10\.10/" /usr/local/opt/qt/mkspecs/features/mac/default_post.prf

In Qt Creator > Projects > Run >

  • Check Use debug version of frameworks
  • Add a custom deployment step: _QField_SOURCE_DIR_/scripts/mac_deploy.sh with ${QGIS_INSTALL_PATH} as argument.
  • In Debugger settings, check Enable QML

Other issues

If you have any issue with qmake not finding the proper SDK, in /usr/local/opt/qt/mkspecs/features/mac/default_post.prf, replace $$QMAKE_MAC_SDK_PATH (3 occurences) by /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk