The Felgo 4.1.0 update allows you to build Qt 6 and Felgo 4 apps for WebAssembly. As a replacement for Google Analytics, which will shut down at the end of June, you can now use the new Firebase Analytics Plugin

In addition, the latest release includes support for Felgo Gaming Components, adds SpeechToText for iOS and Android, and improves the Felgo Live connection process.

Felgo 4.1.0 comes as a free update for all Felgo developers.

Introducing WebAssembly for Felgo 4

Understanding the Power of WebAssembly

WebAssembly, often abbreviated as WASM, is a binary instruction format designed for web browsers. It enables developers to run high-performance applications on the web.

By incorporating WebAssembly as a core feature, Felgo empowers developers to compile their projects into highly optimised WebAssembly binaries. This means that in addition to Mobile, Desktop and Embedded platforms, your applications can be deployed and run in web browsers as well. This increased availability can help attract a wider audience and drive engagement.

web-assembly-logo

WebAssembly's performance capabilities are impressive. You can create visually stunning and responsive applications that rival native experiences. Whether it's complex simulations, visually-intensive graphics, or data-driven applications: With Felgo, your project can deliver an exceptional user experience on any platform, even in your web browser.

How to use WebAssembly in Felgo 4.1.0

You can use the Felgo Live Server to start a Web Client and directly run your Qt Quick project in the browser. All changes to the code are reloaded on the fly - without the need for compilation and deployment to a local web server.

felgo-live-server-web-assembly

With Qt 6 and Felgo 4, the WebAssembly Kit now integrates perfectly with Qt Creator. Similar to building for Desktop, you can just select the WASM Kit and start the application by pressing the Run button. Qt Creator will build the project, start a local web server, deploy your app, and open the the browser to run it. See Deploying Felgo Apps to the Web for more information about the build process, the toolchain and known limitations.

 

Try WebAssembly

Get App Insights with Firebase Analytics

Why to use Firebase Analytics in your Project?

The Firebase Analytics Plugin offers a cross-platform integration of Google’s Firebase Analytics service into your Felgo 4 and Qt 6 projects. It uses the native Firebase frameworks for iOS and Android, and also supports the Firebase REST API for tracking on Desktop, Embedded and Web targets.

The plugin allows you to gain valuable insights into user behavior to boost engagement and drive growth. By leveraging Firebase Analytics, you can make informed decisions and measure the impact of your app's features and updates.

firebase-analytics 

Furthermore, the deprecated Google Analytics backend is scheduled to shut down at the end of June 2023, and many developers need a smooth transition to a reliable alternative. With the introduction of the Felgo Plugin for Firebase Analytics, developers now have a seamless migration path to ensure continuity and uninterrupted tracking of data.

Integrate Firebase Analytics with Felgo 4

The new FirebaseAnalytics type is part of the Google Firebase Plugin, which also offers access to authentication and database services. Integrate the Firebase Plugin to use the available components in your app. You can see the plugin documentation for detailed integration steps. This is how a simple example using Firebase Analytics looks like:

import Felgo
import QtQuick

App {
  FirebaseAnalytics {
    id: analytics

    // GAv4 web measurement ID for desktop:
    measurementId: "G-GB8PY1E0JT"
    userId: "USER15"
  }

  NavigationStack {
    AppPage {
      title: "Firebase Analytics"

      Row {
        AppButton {
          text: "logEvent"
          onClicked: analytics.logEvent("ButtonClicked", { “type”: "logEvent" })
        }
        AppButton {
          text: "logScreen"
          onClicked: analytics.logScreen("Firebase Analytics")
        }
      }
    }
  }
}

Firebase Analytics now relies on Google Analytics 4 properties. On mobile platforms, the plugin always uses the configuration in the android/google-services.json and ios/GoogleService-info.plist. For Desktop platforms, you can set an own FirebaseAnalytics::measurementId in QML.

Similar to the outdated Google Analytics plugin, you can also configure a user ID and track various events and screens across your application. However, there’s no need to manually start or stop tracking sessions anymore.

Custom metrics and dimensions are no longer supported with the new Google Analytics 4 properties. Instead, you can add a JavaScript object with parameters for each event. Firebase Analytics is thus easier to use and very powerful and flexible when customising events and parameters.

Discover the Felgo Gaming Components

With Felgo 4.1.0, the Felgo Gaming Components are now ported to Qt 6 and ready to take your 2D games to the next level. With Felgo Games, you get a comprehensive set of components designed specifically for 2D game development with Felgo 4 and Qt 6. These components offer a wealth of functionalities that will empower you to bring your game ideas to life.

Felgo Games Examples

What’s Included with Felgo Games?

The Felgo Gaming Components cover a wide range of game development needs, including graphics, physics, input handling, and more. Some of the key components include:

  • Game Scenes and Multi-Device Support: Felgo provides built-in features for managing your game window with scenes, handling density independence, and simulating various device resolutions during development.
  • Physics and Collision Detection: Add and configure a game world with gravity, entities and colliders to simulate real-world physics with realistic object behaviors and bring your idea to life.
  • Sprite Animations and Multimedia: Rely on easy to use and optimized components for performant image switching, animated sprites, movement effects, or audio playback. 
  • Felgo Plugins and Apps SDK: You have access to the full feature set of the Felgo SDK. This also includes all app-development components, as well as Felgo Plugins for in-app purchases, monetization, analytics, push notifications and more.

These are just a few examples of the extensive range of components available. Whether you are creating a simple 2D platformer or a complex multiplayer game, the Felgo Gaming Components will enable you to build high-quality games efficiently.

You can mix components for app and game development however you like, so you can even add gamification features or mini-games to your business app, without affecting other functionality in your application. By using Felgo, you can stand out among the competition and boost engagement with a stunning and creative feature set.

Get Started with Felgo Games

The Felgo Gaming Components are designed to streamline and enhance your game development workflow. They allow you to accelerate development, improve performance, and create visually stunning games with ease. 

To explore all the possibilities, try some of the open-source game demos that come with the SDK. They cover a wide range of genres and are the perfect starting point for your own project. You can find them in the Welcome tab of Qt Creator:

QtC-Examples-Games

To learn more about Felgo Games and how to build your own game, you can find many example snippets and a variety of step-by-step tutorials in the documentation.

Transcribe Speech to Text on iOS and Android

Speech-to-text technology has gained immense popularity and utility in various applications, ranging from voice assistants to transcription services. The new SpeechToText QML API allows you to integrate speech-to-text functionality into your Qt Quick code.

The SpeechToText API utilises the native Android and iOS platform APIs and Frameworks, ensuring a seamless and efficient integration for both platforms. By leveraging the platform-specific capabilities, developers can provide a consistent and native-like experience to their users, tailored to each platform's speech recognition capabilities.

Test on your mobile phone now! Run This Example
import Felgo
import QtQuick

App {
  NavigationStack {
    AppPage {
      title: "Speech to Text"

      AppButton {
        id: button
        anchors.horizontalCenter: parent.horizontalCenter
        flat: false
        enabled: SpeechToText.recognitionAvailable        
        text: !SpeechToText.recognitionActive ? "Start" : "Stop"
        onClicked: {
          if(!SpeechToText.recognitionActive)
            SpeechToText.startSpeechToText("en-US")
          else
            SpeechToText.stopSpeechToText()
        }
      }

      Connections {
        target: SpeechToText
        enabled: SpeechToText.recognitionAvailable
        onSpeechToTextResult: (result, isFinal) => {
                                recognized.text = result
                              }
      }

      AppText {
        id: recognized
        width: parent.width
        anchors.top: button.bottom
        anchors.bottom: parent.bottom
        verticalAlignment: Text.AlignTop
        padding: 10
      }
    }
  }
}

With just a few lines of code, you can enable voice input and effortlessly capture and process speech within your application. All available system locales and transcription features of the underlying platform (like on-device or online transcription) are supported. 

See the documentation for more information on the necessary project configuration for iOS and Android. By incorporating speech-to-text functionality, you can improve user accessibility, enable hands-free interaction, and introduce new ways for users to engage with your application.

Enhanced Connection Process for Felgo Live

Felgo 4.1.0 enhances the Felgo Live connectivity experience by introducing a new and improved approach that addresses the drawbacks of the previous method while providing a more reliable and efficient connection.

Previously, the Felgo Live Client relied on UDP broadcasts within the local network to discover the Felgo Live Server running on your development computer and establish a connection. However, this approach had several drawbacks that hindered a smooth connection process. Some of the main drawbacks were:

  • UDP Restrictions: UDP broadcasts could be blocked in certain networks, preventing the client from discovering the server and establishing a connection.
  • iOS 16+ Limitations: With the introduction of iOS 16, Apple no longer allows UDP broadcasts unless the application has the necessary entitlements. This restriction added complexity and limited the usability of the previous connection method.

These limitations resulted in occasional connection issues and inconveniences during development, impacting the overall workflow.

Direct Connection to the Felgo Live Server

To overcome the previous limitations and ensure a seamless connection between the Felgo Live Client and Server, the new solution eliminates UDP broadcasts and enables direct client-to-server connections. Here's how it works:

  • Unique Server Identifier: Each Felgo Live Server now has a unique server identifier, displayed prominently in the Felgo Live Server application. The server ID follows the format "CXA8 X872". This identifier serves as a reference point for establishing connections.

Felgo Live Server ID

  • Direct Connection: In the Felgo Live Client mobile app, you can manually enter the server ID of your development computer. This allows the client to directly connect to the specified server without relying on UDP broadcasts.

felgo-live-client-direct-connect

  • Improved Connection Management: The Felgo Live Client now remembers previous connections, creating a list of hosts that you can easily choose from for subsequent connections. This eliminates the need to enter the server ID every time and simplifies the process of reconnecting to a known host.

These changes address the drawbacks of the previous approach while introducing a more reliable and efficient connection method. 

Benefits of the New Felgo Live Connection Approach

The new approach to Felgo Live app connectivity offers several significant benefits for developers:

  • Improved Network Compatibility: By eliminating the need  for UDP broadcasts, the new solution ensures compatibility in networks where UDP is blocked. This guarantees a consistent and reliable connection experience, regardless of the network environment.
  • iOS 16+ Support: With the previous limitations imposed by iOS 16+ on UDP broadcasts, establishing connections on devices running iOS 16 or later posed challenges. The new approach resolves this issue by providing a connection method that conforms to Apple's restrictions.
  • Streamlined Connection Process: The new server identification allows developers to easily connect to previous hosts without relying on automatic discovery. This simplifies the connection setup and reduces the likelihood of connection issues.

By eliminating the reliance on UDP broadcasts and incorporating manual server identification, developers can enjoy enhanced compatibility, support for iOS 16+, and a streamlined connection process. To use the new approach, update your Felgo SDK and download the latest Felgo Live app for iOS and Android.

 

Get the Developer App

Cloud Builds: Support for Android 13 (API 33)

As the Android ecosystem evolves, it is crucial for developers to stay in sync with the Play Store's latest requirements. Starting in August 2023, new apps are required to target Android 13, which corresponds to API level 33.

CloudBuildsGraphic - Felgo Cloud IDE

Felgo Cloud Builds automates the build process and saves time and effort by ensuring support for the latest target devices and store requirements. With the newly added update for Android 13, developers can stay compliant with the latest Play Store requirements. Felgo Cloud Builds now compiles your Android project with API 33 and covers all the steps for building, packaging and uploading your application to the store.

Go to Cloud Builds

How to Update Felgo

Try out these new features by following these steps:

  • Open the Felgo SDK Maintenance Tool in your Felgo SDK directory.
  • Choose “Update components” and finish the update process to get this release as described in the Felgo Update Guide.
  • Update Felgo

If you haven’t installed Felgo yet, you can do so now with the latest installer from here. Now you can explore all of the new features included in this release!

 

 

More Posts Like This

release-4-0-1-apple-sign-in-android-content-uri-qt-6
Release 4.0.1: Support for Apple Sign In and Android Content URI, Improved Felgo Live Permissions on macOS

Release-4.0.0-create-apps-with-qt6
Release 4.0.0: Create Beautiful Cross-Platform Apps with Felgo 4.0 and Qt 6.4.1

Release-3.10.0-nfc-connection-type-admob-native-banner-ios-android
Release 3.10.0: Native Support for NFC Tags, Network Connection Type & Inline AdMob Banners, Qt Creator 7.0.2

release-3.9.2-whatsapp-messenger-demo-clear-felgo-live-cache-control-app-navigation
Release 3.9.2: WhatsApp Messenger Demo, Clear the Live Reload Cache and Control the App Navigation Flow

release-3.9.1-qt-android-app-bundle-google-play-deployment
Release 3.9.1: Publish Qt Apps as Android App Bundle on Google Play and Configure Icon Sizes in the Felgo Theme