Cross-Plattform: Felgo 3.9 kartiert und navigiert mit WebAssembly im Browser

Außerdem bietet das Entwicklungstool integrierte Overlays sowie Tool-Tipps, wechselt zur AndroidX-Bibliothek und bringt ein Update für Drittanbieter-Plug-ins.

In Pocket speichern vorlesen Druckansicht 1 Kommentar lesen
Lesezeit: 5 Min.
Von
  • Silke Hahn
Inhaltsverzeichnis

Vom Entwicklungstool Felgo liegt Version 3.9 vor. Das Qt-Framework zur Cross-Plattform-Entwicklung soll mittels JavaScript für bessere Browserkommunikation mit WebAssembly sorgen, hat integrierte Overlays sowie Werkzeugtipps auf Lager und unterstützt die Ad-Tracking-Autorisierung von Google AdMob auf iOS.

Zahlreiche weitere Features schafften den Sprung ins Release, so bietet Felgo 3.9 laut Blogeintrag auf der Anbieter-Website neue Funktionalitäten rund um das Sortieren und Filtern von Listen, und im mobilen Bereich hat ein Wechsel von der Android Support Library zu AndroidX stattgefunden. Damit einhergehend hat das Felgo-Team die SDKs (Software Development Kits) für Drittanbieter zum Erstellen von Plug-ins für das Framework aktualisiert, lässt sich der Blogmeldung entnehmen.

Mit Felgo für WebAssembly (Wasm) lassen Qt-Applikationen sich im Browser einbetten. Neu ist dabei, dass Felgo-Nutzerinnen und -Nutzer ab sofort auch Landkarten, eine Navigation und Features zur Geolokalisation in ihre mit WebAssembly erstellten Anwendungen einbauen können. Das Standortmodul von Qt soll sich nun mit Browser-APIs verbinden können, um während des Betriebs im Internet Standortdaten abzurufen. Das MapBox-Plug-in für WebAssembly hat eine dringend benötigte Aktualisierung erhalten, da die zugrundeliegende MapBox-Legacy-API als deprecated (veraltet) galt. Das modernisierte Plug-in soll nun Kachelstile anbieten. Wer Felgo for Wasm testen möchte, kann sich die QML-Kartierungs- und Navigations-Demo im Browser anschauen.

Felgo 3.9 ermöglicht Standortbestimmung, Routing und Navigation über WebAssembly

(Bild: Felgo)

QML-Objekte von Anwendungen lassen sich dem Felgo-Team zufolge relativ einfach im Browser verfügbar machen, indem man sie dem Bereich App::webObjects hinzufügt, wie folgendes Codebeispiel veranschaulicht:


import Felgo 3.0
import QtQuick 2.0

App {

  webObjects: [
    QtObject {
      id: qmlDefinedObject
      property int count
      property string myString: "Hello!"

      function qmlMethod() {
        console.log("I was called from the browser!")
        return "You can return anything!"
      }
    }
  ]

  AppButton {
    anchors.centerIn: parent
    text: "Increment count"
    onClicked: {
      qmlDefinedObject.count++;
    }
  }
}

Browserseitig soll es dann möglich sein, auf die geteilten Objekte zuzugreifen und Properties zu lesen oder zu schreiben, Methoden aufzurufen und mit geänderten Werten umzugehen. Die Interaktion zwischen eingebetteten Wasm-Anwendungen und Webseiten, die in JavaScript geschrieben sind, soll dabei reibungslos ablaufen. Laut Herausgebern benötigen Felgo-Nutzerinnen und -Nutzer dabei keinen C++-Code mehr als Brücke zwischen dem Browser und einer QML-Anwendung. Wer sich weiterführend für den WebAssembly-Einsatz mit dem Qt-Framework interessiert, wird in der "Felgo for Web"-Dokumentation fündig.

Mehr Infos
Wasm-Konferenz von Heise am 31. August 2021

Am 31. August 2021 veranstalten heise Developer und dpunkt.verlag eine Online-Konferenz zu WebAssembly. Wer teilnimmt, erfährt, was WebAssembly eigentlich ist und wie es sich zusammen mit der eigenen Lieblingssprache nutzen lässt. Praxiserfahrene Trainer beantworten Fragen wie:

  • Was bringt mir Wasm bei Containern oder Serverless-Anwendungen?
  • Was leistet es im Frontend, was im Backend?
  • Wie hilft WebAssembly dabei, die eigenen Projekte voranzutreiben?

Um Kompatibilität mit iOS 14.5 und höheren Versionen zu gewähren, war es nötig, Felgo mit einem Plug-in zur Ad-Tracking-Autorisierung für iOS aufzurüsten. Voraussetzung zum Einsatz von AppTrackingTransparency ist Xcode 12 oder höher, um iOS-Apps zu erstellen. Wer neue Anwendungen mit Felgo baut, die iOS 14.5 (oder höhere Versionen) unterstützen sollen, kommt um diese Aktualisierung offenbar nicht herum. Dafür müssen Felgo-Nutzerinnen und -Nutzer in ihrer NSUserTrackingUsageDescription einen Schlüssel mit der Beschreibung von usag ergänzen. Eine Möglichkeit wären folgende zwei Zeilen Code:

<key>NSUserTrackingUsageDescription</key>
<string>This identifier will be used to deliver personalized ads to you.</string>

Weitere Neuerungen des featurereichen Releases betreffen beispielsweise die Darstellung von Notches und Steuerungselementen zur Systemnavigation auf Android und das Erstellen von Overlay-Pop-ups. Hierbei hebt das Felgo-Team die Möglichkeit hervor, neuerdings Tutorials zu erstellen, mit denen sie Nutzer einer App beim Einstieg unterstützen können. Die in Pop-up-Form einblendbaren Tipps und Hilfestellungen sollen ein tieferes Verständnis für das implementierte System schaffen und die Nutzer zugleich motivieren, einbinden und bei der Stange halten. Praktische Hinweise zur Umsetzung der AppToolTips und Gestaltung der Overlay-Pop-ups finden sich in der Release-Meldung.

Eine detaillierte Liste der Felgo-Plug-ins, die mit diesem Release aktualisierte SDKs erhalten haben, ist in der Blogankündigung verlinkt. Der Meldung lassen sich zudem auch technische Details zu den neuen Sortier- und Filtermöglichkeiten für ListModel und TableModel entnehmen, für zahlreiche Neuerungen stehen Demos bereit und das Felgo-Team hat eine Beispiel-Anwendung erstellt, anhand derer an Felgo Interessierte das Erstellen einer News-App nachvollziehen können. Diese und weitere Hinweise zu den Problembehebungen und kleinere Neuerungen finden sich im Blogeintrag der Felgo-Website.

Ein Hinweis zur Migration: Der Wechsel hin zu AndroidX-Komponenten anstelle der alten Support-Library geht einher mit einem Wechsel zu Version 3.3.3 des Gradle-Plug-ins für Android. Neue Felgo-Projekte müssen laut Blogeintrag keine besonderen Vorkehrungen treffen. Wer ein Projekt mit einer Vorgängerversion von Felgo 3.9 erstellt hat, muss hingegen android/build.gradle auf den neuesten Stand bringen. Hierbei gilt es, das Plug-in samt Abhängigkeiten zu aktualisieren. Der Klassenname des File Providers in der Datei android/AndroidManifest.xml ist anzupassen, und man sollte darauf achtgeben, dass der verwendete Android-Build Java 8 (JDK 1.8) nutzt. Die genaue Anleitung mit den Codepassagen zum Nachbauen lässt sich dem Blogeintrag von Felgo entnehmen.

(sih)