Learn what Felgo offers to help your business succeed. Start your free evaluation today! Felgo for Your Business

Hi, welcome to Felgo!

We prepared a one-minute tour to introduce you to Felgo, a cross-platform development SDK based on the popular Qt framework.

You can also start creating cross-platform apps & games right away!

Based on Qt

The Basis of Felgo

Qt is a very popular C++ framework which has simplified cross-platform development for 20 years and is used by more than 1,000,000 active developers.

What is Qt?
Did You Know?

Qt is pronounced exactly like "cute". Encountering Qt worshippers and pronouncing it wrong can lead to bad mood and (in rare extreme cases) to 3D transformations of your nose. Yeah, they are sometimes special...

Taking Qt One Step Further

Felgo enhances the Qt core with components for app and game development.
It also offers plugins for ads, in-app purchases, analytics and much more.

Qt features

  • Code Once - Deploy Everywhere
  • Native Performance
  • Component Based
  • Native Device Features
  • Sensors & Location
  • Networking & Connectivity
  • Storage / Database
  • Multimedia Content
  • Localization

App development
Watch Video
  • Felgo App Components
  • Native Look & Feel
  • Auto-adapting UI
  • Controls
  • Smooth Animations

Game development
  • Felgo Game Components
  • Resolution Independence
  • Physics
  • Game Templates
  • Multiplayer
  • Leaderboards and Achievements
  • In-game Level Editor

Monetization
Analytics
Push Notifcations
Social Services
Felgo Plugins

Write Better Code - with QML

Qt Meta Language is a highly intuitive declarative language, which is super easy to learn, yet it's extremely powerful and flexible. Mix it with JavaScript to create awesome stuff with just a few lines of code.

Felgo simulator
Felgo simulator
Hello Felgo! 0
  • Code Once - Deploy Everywhere
  • Powerful Property BindingsConnect properties to update on changes, automatically!
  • Save up to 90% Code
  • Increase Productivity
Felgo simulator example code

Create your own Felgo app in 1 minute, without installing the SDK!

Welcome to the Web Demo

Only 2 Steps to Your First App

1. Download the Felgo Live Scripting App

The Felgo Live Scripting app is available for Android and iOS in the Appstore. Search for Felgo Live Scripting.

Scan this code to download the app
Download on Android Download on iOS
or
Scan QR to download

2. Connect the App

Open the app on your phone. You will find a Dev ID displayed on the main screen. Enter this Dev ID in the bottom right corner of this editor.

The app will then display a pending connection on your phone. Select it and you are ready to go!

Start Coding!

You can start coding yourself in the editor on the right side, or you follow our short tutorial to make your first steps.

Live Scripting Tutorial

The Felgo Live Scripting App

Before we can proceed, please make sure you downloaded, started and connected the Felgo Live Scripting app on your mobile phone.

Once connected, you can switch between Android and iOS native layout of your application, in the lower right corner of the app.

The Editor

On the right, you can see the code editor, used to write your code.

Any time you want to run your code, just press the green button in the lower right corner of the editor, and the app on your mobile will automatically be updated with the latest code.

This tutorial will show you how to use some of the Felgo app components to create a traditional app, that looks native on both Android and iOS.

Hello Felgo

The editor already contains the code for a simple 'Hello Felgo' app. Try to change the text property of the AppText component and press run, to see the changes in your app.

Display an Image

As a first step of this short tutorial, we'll add a scary image to our app. This is super easy, using the AppImage component.

Note: In the code below, I stripped the contents of the AppText and just added { ... } instead, to make the code more readable. I will do this frequently in this tutorial, make sure not to copy this to the editor on the right. If you have problems in any step, just use the Insert Code button after each code block.

App {
  id: app

  Page {
    
    AppText { ... }
    
    AppImage {
      width: dp(150)
      height: dp(150)
      anchors.horizontalCenter: parent.horizontalCenter
      y: dp(40)
      source: "https://felgo.com/qml-live/monster.jpg"
    }
  } //Page
} //App
Insert Code

If you run the app, you'll see the image. If you have a look at the source property of the AppImage, you'll see that it is possible to use an URL, not only local images. We also applied a custom width, height and centered the image horizontally.

Pages

An app usually shows different informations on different pages. In order to manage the visibility of the different pages, we need to wrap our content with Page components. We already did this for you, as you can see in the code.

Push another Page

Next we want to add a very simple form of navigation: Pushing a new page on the stack and navigate back to the initial page.

To do this, first of all we wrap our page in a NavigationStack component to enable push and pop of pages, as well as displaying the navigationbar.

NavigationStack {

  Page {
    
    AppText { ... }
    
    AppImage { ... }
  } //Page
} //NavigationStack
Insert Code

We also add a title to the Page and an id to the NavigationStack in order to interact with it.

NavigationStack {
  id: stack
  
  Page {
    title: "First Page"
    
    AppText { ... }
    
    AppImage { ... }
  } //Page
} //NavigationStack
Insert Code

Next, we add a button to trigger the push of a sub-page. First of all, we'll add the button and anchor it to the bottom of the page.

Page {
  title: "First Page"
  
  AppText { ... }
  
  AppImage { ... }
  
  AppButton {
    anchors.horizontalCenter: parent.horizontalCenter
    anchors.bottom: parent.bottom
    text: "Push"
    onClicked: {
      
    }
  }
} //Page
Insert Code

Now you may notice that the onClicked signal handler of the AppButton is empty. That's on purpose, because before we can push a sub-page, we need to create one.

I already prepared a quick minimal page that we can push, just add this to your code.

NavigationStack {
  id: stack
  
  Page { ... }
  
  Component {
    id: subPage
    Page {
      title: "Sub Page"
      AppText {
        anchors.centerIn: parent
        text: "Hello Sub Page"
      }
    }
  } //Component
} //NavigationStack
Insert Code

Now all we are missing is pushing the sub page on our stack. For this, we add one line of code to our button.

AppButton {
  parent.horizontalCenter
  anchors.bottom: parent.bottom
  text: "Push"
  onClicked: {
    stack.push(subPage)
  }
}
Insert Code

Run the app and check out the page transitions!

More Navigation

While a NavigationStack is great for pages like e.g. a settings page with sub-settings, Android and iOS apps also use other concepts to navigate between the main pages of an app.

We wrap our NavigationStack in a combination of Navigation and NavigationItem.

Navigation {

  NavigationItem {
    title: "First"
    icon: IconType.heart
    
    NavigationStack { ... }
  } //NavigationItem
} //Navigation
Insert Code

Now if you run the code and switch between platforms on your device, you'll see how the navigation automatically changes to platform specific layout, tabs on iOS and a drawer on Android.

We add another page, to make our navigation a little more useful.

Navigation {
  
  NavigationItem { ... }

  NavigationItem {
    title: "Second"
    icon: IconType.star
    
    NavigationStack {
      
      Page {
        title: "Second Page"
        
        AppText {
          text: "Hello Again"
          anchors.centerIn: parent
        }
      } //Page
    } //NavigationStack
  } //NavigationItem
} //Navigation
Insert Code

Full Source Code

We reached the end of this short tutorial, we hope you liked it. Here's the full source code of this tutorial as a reference.

import FelgoApps 1.0
import QtQuick 2.5

App {
  id: app
  
  Navigation {
    
    NavigationItem {
      title: "First"
      icon: IconType.heart
      
      NavigationStack {
        id: stack
        
        Page {
          title: "First Page"
          
          AppText {
            anchors.centerIn: parent
            text: "Hello Felgo"
          }
          
          AppImage {
            width: dp(150)
            height: dp(150)
            anchors.horizontalCenter: parent.horizontalCenter
            y: dp(40)
            source: "https://felgo.com/qml-live/monster.jpg"
          }
          
          AppButton {
            parent.horizontalCenter
            anchors.bottom: parent.bottom
            text: "Push"
            onClicked: {
              stack.push(subPage)
            }
          }
        } //Page
        
        Component {
          id: subPage
          Page {
            title: "Sub Page"
            AppText {
              anchors.centerIn: parent
              text: "Hello Sub Page"
            }
          }
        } //Component
        
      } //NavigationStack
    } //NavigationItem
    
    NavigationItem {
      title: "Second"
      icon: IconType.star
      
      NavigationStack {
        
        Page {
          title: "Second Page"
          
          AppImage {
            anchors.fill: parent
            fillMode: AppImage.PreserveAspectCrop
            source: "https://felgo.com/qml-live/monster.jpg"
          }
          
          AppText {
            text: "Hello Again"
            anchors.centerIn: parent
          }
        } //Page
      } //NavigationStack
    } //NavigationItem
  } //Navigation
} //App
Insert Code
import Felgo 3.0 import QtQuick 2.5 App { id: app Page { AppText { anchors.centerIn: parent text: "Hello Felgo" } } // Page } // App

1. Download Felgo Live Scripting app

2. Open the app and add the displayed Dev ID here.

This tutorial is for app development, but the general concepts are also a great learning resource to learn how to make games with Felgo!

Learn more about Live Code Reloading and save & share code snippets with the Web Editor.

Open the Web Editor

 

    Qt_Technology_Partner_RGB_475 Qt_Service_Partner_RGB_475_padded