Felgo 2.14.0 introduced Felgo Live Code Reloading, which reduces your deployment time from minutes to seconds. Felgo 2.14.2 now adds support for using native cross-platform plugins with live code reloading.
Felgo 2.14.2 adds new SocialView types, fixes the App Navigation issue with signal handlers and updates Felgo QML Live Client apps to the
latest versions. With this update, Live Code Reloading allows to run and reload your projects on iOS and Android from all desktop platforms. No native iOS and Android build tools required.
The SocialView allows you to add user profiles, leaderboards or a full in-app messenger to your apps and games. This update brings many new features for the view:
The updated Qt World Summit 2017 app on GitHub also includes a BusinessMeet search. It shows how to use the new
features to search and find users based on stored custom data like the main Qt interest or company of the user.
It's now possible to set a background image for the NavigationBar either from the ThemeNavigationBar or for a
single NavigationBar item that should be styled differently from the main theme.
Felgo 2.14.1 adds Live Code Reloading Support for macOS & Linux Desktop. With this addition, Live Code Reloading now allows to run and reload your
projects on iOS and Android from all desktop platforms. No native iOS and Android build tools required.
Felgo 2.14.1 also upgrades to Qt 5.9.3, introduces the new SocialView item for social features like user profile, leaderboard or even a full-featured messenger, and extends the App Navigation capabilities with NavigationItem::showItem.
Felgo Games & Felgo Apps
Highlights
Felgo Live helps you boost your development speed, by reloading your project simultaneously on every connected device, within seconds after saving changes to your source code. This reduces the long waiting times for
compilation and deployment steps, to only a couple of seconds. You can even test your projects on mobile, without installing native mobile SDKs, only by installing the Felgo Live App on your device.
This update adds the Felgo Live extension for macOS and Linux.
The SocialView allows to add customized social features to your apps and games, which enables you to boost retention and engagement rates while naturally building up your user base.
The conference management app for the Qt World Summit 2017 was built with these services and allows to:
Search conference attendees to schedule Business Meetings.
Store custom user data like the company or job position, so other users can view the details and find conference attendees that match certain criterias.
Log in via Facebook to synchronize your data across multiple devices.
Become friends and get in touch with the included messenger.
See a leaderboard with a ranking of users that actively work with the app.
To show a default UI for these social services, the GameNetworkView and MultiplayerView offer with a simple state-based approach.
However, the SocialView type uses a different approach to integrate such services in your apps or games and has many advantages:
Fully compatible with Felgo Apps: The social view is designed for easy usage with Felgo Apps, which usually provide a stack-based layout with the App Navigation
components.
Better Customization Options: It is now possible to extend the view with custom UI elements to e.g. show custom user data without having to directly modify the QML source code of the view.
Native Look and Feel: The default UI of the new view automatically provides a native style and user experience for iOS and Android.
Clean Separation of Sub-Pages: The state-based view types mentioned above are fully self-contained and hold a single instance of each sub-view. This means they are not made for e.g. showing different versions or
configurations of the leaderboard or user profile in your app. The SocialView on the other hand clearly separates the view, custom delegates and available social pages. This also
allows to introduce new custom social pages that can work with the available social services.
With the NavigationItem::showItem property, you can now dynamically show or hide menu items from your app's main Navigation. This
makes it easy to e.g. show different navigation entries for iOS and Android:
NavigationItem {
title: "Only on iOS"icon: IconType.appleshowItem: Theme.isIos// ...
}
Felgo 2.14.0 adds Live Code Reloading for Desktop, iOS & Android. It allows to run and reload your projects within a second on iOS and Android from Windows. No Mac and Android SDKs required.
Important Update Notes for existing Android & iOS Projects
Felgo Kits for Android & iOS
As already done with Desktop platforms and Felgo 2.13, we now use custom Android & iOS packages that make future updates easier. To switch to the new packages, perform these steps after updating the Felgo SDK:
Open the MaintenanceTool and select the Add or remove components option:
Add the Felgo packages for Android and iOS:
Unselect the Qt 5.9.2 package like shown below:
In Qt Creator, choose the new kit for Android and iOS based on Felgo packages.
iOS Project Migration after updating to Xcode 9
With update 2.14.0, we updated all our wizards to be compatible with iOS apps submitted to the App Store with Xcode 9.
Note: If you still use a previous version of Xcode (e.g. Xcode 8), you can either optionally perform these steps now or perform them as soon as you're updating to Xcode 9. You can still use Xcode 8 or earlier after
migrating your project.
To migrate your existing project to the new format, perform the following steps:
1. Create a new "Felgo Apps Empty Application" project from the "New Project" wizard within Qt Creator
2. Copy over the folder ios/Assets.xcassets from the new empty project to your project's ios subfolder.
3. Replace all the icon files and launch images found within Assets.xcassets/AppIcon.appiconset/ and Assets.xcassets/LaunchImage.launchimage/ with your previous project's icons and launch images.
Make sure to match all filenames and images sizes.
4. You can now remove all AppIcon*.png and Def*.png files from your ios folder, they are not used anymore.
5. As a last step, open the ios/Project-Info.plist file and remove the keys (and their respective values) CFBundleIconFile, CFBundleIconFiles, UILaunchImageFile and
UILaunchImages.
Your project now uses the asset catalog and you're ready for submitting your apps to the App Store with Xcode 9 again.
Felgo Games & Felgo Apps
Highlights
Felgo Live helps you boost your development speed, by reloading your project simultaneously on every connected device, within seconds after saving changes to your source code. This reduces the long waiting times for
compilation and deployment steps, to only a couple of seconds. You can even test your projects on mobile, without installing native mobile SDKs, only by installing the Felgo Live App on your device.
All of our project wizards now support submitting iOS apps & games with Xcode 9. For existing projects, see our short update notes above.
Improvements
Fix debugging Felgo projects.
Fix storing the last window position if maximized or fullscreen mode is used. Also fix behavior when resizing the window.
Fix Google Play Services version mismatch error on Android when using both Firebase Plugin and AdMob Plugin in a project.
Fix a possible crash on Android with FirebaseAuth from Firebase Plugin when no credentials are provided during registration and login.
Fix a warning with AdMob Plugin on iOS that banner frames are changed from a background thread.
Fix Store::printStoreProductLists() for generating the in-app purchase description file for the most recent Google Play Store backend (column names are now
required and a new pricing template id column is needed).
Add new properties FelgoMultiplayer::stateInternal and FelgoMultiplayer::stateInternalName to
detect if the client got disconnected from the server. You can also use the new signal FelgoMultiplayer::error() for handling server disconnection. A server disconnect
might happen if the user is taking a phone call (i.e. he is leaving the game) and then returns to the game after more than 10 seconds. To prevent other players from waiting for the idle player, the player gets disconnected.
With these new properties and signals, you can notify the user he got disconnected.
Felgo 2.13.2 adds support for Qt Creator 4.4.1 and Qt 5.9.2 which fixes Android deployment issues with the latest Android SDK and NDK versions. It also stores your previous window position and size to accelerate the
development process.
Important Update Notes for existing Android & iOS Projects
As Felgo 2.13.2 is based on Qt 5.9.2, perform these steps after updating the Felgo SDK:
Select the Add or remove components option in the MaintenanceTool and
Add the Qt 5.9.2 packages for Android and iOS. This image shows the initial state before you selected Qt 5.9.2:
Add the Qt 5.9.2. packages for Android and iOS. iOS is not listed in this screenshot as it is not available on Windows. Unselect the Qt 5.9 package like shown in this image:
In Qt Creator, choose the new kit for Android and iOS based on Qt 5.9.2.
In addition, if you are using Felgo Plugins in your project, update the following files after updating Felgo SDK:
Android
In your android/build.gradle file, change the following lines from
Unless you add that flag, your app will only be translated to the default iOS project language on iOS 11 (usually English).
If you use GPS in your app app, for example if you use the AppMap component, make sure that the following two keys exist in your ios/Project-Info.plist file (adapt the string
values to your use case in your app):
<key>NSLocationWhenInUseUsageDescription</key><string>Display your location on the map.</string><key>NSLocationAlwaysAndWhenInUseUsageDescription</key><string>Display your location on the map.</string>
Note: These changes are required to use the latest available features with Android Oreo & iOS 11. As usual, you can create a new empty Felgo project from our wizards or use the Felgo demos to compare your project
settings with the expected ones.
Felgo Games & Felgo Apps
Highlights
Store the last window position & size on Desktop platforms during development and reload it at subsequent app starts. This accelerates the development process, because you save the time of re-positioning and re-sizing the
window to your last setting. This feature is enabled by default for development builds. You can manually enable and disable it with the new App::storeWindowGeometry
property.
Add support for Qt 5.9.2. The most relevant change is a fix for building Android projects with ndk r16 and higher. For the full changelog of Qt 5.9.2. see here.
Add support for Qt Creator 4.4.1. Most importantly, this Qt Creator update adds support for the changes Google made to the Android tools in Android SDK 26.1.1.
If the user currently has no Internet connection and sends a chat message with the Felgo Chat, store it locally in a database so it gets sent as soon as Internet connection is
available again.
Fix FelgoGameNetwork issues: automatically detecting locale & country and storing a country manually in the ProfileView now works more
reliably.
Add performance improvement for FelgoGameNetwork: do not send an achievement update request if you have no achievements defined. This saves the request sending and handling for
this request at every app start.
Felgo 2.13.1 adds support for Qt Creator 4.4 and brings improvements for developers using Mac & Linux. There are also various other fixes and new improvements, for example for the Flurry and OneSignal Push Notification plugin.
Felgo 2.13.1 is a free update for all Felgo developers.
Important Notice for macOS and Linux Developers
Follow these steps on macOS and Linux because otherwise you will not be able to use the new features of this update. This is a one-time step required to
make updating Felgo versions easier in the future:
1.) After you updated Felgo, open Qt Creator and click on the "Projects" icon on the left. You will now see the new "Felgo Desktop" kit greyed out. Then double-click on the greyed out Felgo kit on the left.
After double-clicking on the (new) grey kit, it will be used by default for your project:
2.) To also set the new Felgo kit as the default for your future projects, click on Qt Creator / Preferences on macOS or Tools /
Options on Linux from the menu bar and select Build & Run. Then select the Felgo Kit and click on the "Make Default" button. Now the new Felgo kit will be the default for all your future projects and it
will look like this:
Felgo Games & Felgo Apps
Highlights
Add support for Qt Creator 4.4.
If you want to send push notifications with the OneSignal Plugin to a specific user from the OneSignal dashboard or from your custom server, the
userId property now works properly (it returned an empty string before).
Also, the nickname users can enter in the Felgo Game Network ProfileView, will now be stored as a push notification tag for this user. This allows you to send messages to users based on this additional information.
You can see these new additions in the OneSignal Dashboard. In this screenshot, you can see the "Player ID" which is now available with the OneSignal::userId property. And the new tag "_vpgnnickname" stored for users who entered a manual nickname:
Improvements
Optimize the default AppListView cacheBuffer for better scrolling performance.
Add a new property FelgoGameNetwork::defaultUserName. You can use this to change the default username that is shown for players who did not set a nickname
before. For example, for apps you could set it to "User" instead of the default "Player".
Fix Flurry Analytics plugin crash if no Flurry::apiKey was set.
The OneSignal Plugin plugin now uses framework version 2.3.7 on iOS. Make sure to download the latest framework from our PluginDemo here and replace it in your project. This fixes an issue of a potential empty OneSignal::registrationId
property (push token).
Store the last selected platform from the menu bar on Desktop platforms during development and reload it at subsequent app starts. This accelerates the development process if you simulate different platforms like iOS &
Android on your Desktop PC.
Felgo 2.13.0 adds rewarded videos and native ads as two more ad types to the free AdMob Plugin. This allows you to better monetize your app or game and earn more revenue from your app! This update also adds support to get
the phone contact list and to query the phone number of the device on Android.
Important Notice for Windows Developers
Follow these steps on Windows, because otherwise you will not be able to use the new features of this update but still are on the previous Felgo version 2.12.2. This is a one-time step required to make updating Felgo
versions easier in the future:
1.) After you updated Felgo, open Qt Creator and click on the "Projects" icon on the left. You will now see the new “Felgo Desktop” kit greyed out. Then double-click on the greyed out Felgo kit on the left.
After double-clicking on the (new) grey kit, it will be used by default for your project:
2.) To also set the new Felgo kit as the default for your future projects, click on Tools / Options and select Build & Run. Then select the Felgo Kit and click on the "Make Default" button. Now
the new Felgo kit will be the default for all your future projects and it will look like this:
You can now use native ads with the new AdMobNative component for the Google AdMob Plugin. This gives you total control how an ad is displayed and
allows you to change the text, colors, width and height of the ad.
Access the mobile device's contact list on Android and iOS with the new NativeUtils::getContacts() function.
AdMobBanner ads now follow global position changes: If the QML element's global position changes as result of a parent's position change, the ad will follow. This enables you for
example to add banner ads into ListViews which then scroll with the list.
Felgo 2.12.2 adds support for Realtime Database Listeners to the Firebase Plugin, which allows your app to get notified whenever your data changes. In addition, the recently improved Qt
Creator Designer now comes with icons for all Felgo types to let you distinguish the different components more easily.
Felgo Games & Felgo Apps
Firebase Realtime Database Listeners: Use the Firebase Plugin to store and sync data in realtime across all clients with the Firebase NoSQL Cloud Database.
The Firebase Realtime Database is a cloud-hosted database. Data is stored as JSON and changes to the database are propagated to other clients in real time. This update adds new properties and signals to the FirebaseDatabase item, which you can use to add listeners for certain database entries. Your app is then notified immediately after your data in the cloud gets changed - no matter which
device, user or application changed the value.
import Felgo 3.0
App {
FirebaseDatabase {
realtimeValueKeys: ["public/newstext"]
onRealtimeValueChanged: {
if(success) {
console.debug("Public Realtime Value '"+key+"' changed to '"+value+"'")
// if newstext got changed -> update AppText to show newsif(key==="newstext")
news.text=value
}
else {
console.debug("Error with message: "+value)
}
}
}
AppText {
id: newstext: ""// no news by default, news is loaded from database and always up-to-date
}
}
This example already shows how powerful this new feature can be. As soon as the newstext entry changes in the database, all clients will get notified and replace the old news. As Firebase also supports authentication and user access rules, you could even create a real-time chat with this new feature. The possibilities are limitless!
Qt Quick Designer Icons: Since Felgo 2.12.1, it is possible to use Felgo Components with the improved Qt Quick Designer of Qt Creator 4.3. To help you get more out of the designer and quickly find the components you
need, this update adds icons for all items available with the Qt Quick Designer:
For a quick guide how to use the new Qt Quick Designer with Felgo, have a look at our tutorial video:
Felgo 2.12.1 adds improved support for the new Qt Quick Designer of Qt Creator 4.3, which allows to write QML code side-by-side with a visual representation of the code. The designer now better supports rendering Felgo
Components and all core components are available for drag'n'drop in the side menu.
Felgo Games & Felgo Apps
Improvements
Qt Quick Designer Support: With the switch to Qt Creator 4.3 in the previous update the Qt Quick Designer has become even more awesome. For example, with the split-view feature to design your UI and code with QML at
the same time:
This is why we now improved compatibility of Felgo Components with the Qt Creator Designer, which allows all Felgo developers to fully utlize these new IDE features! All Felgo core components are now available in the
side menu of the designer for easy drag'n'drop as soon as you add the Felgo import to your QML file. In addition, the designer now better supports rendering Felgo components. Especially the Felgo Apps Navigation Components
have undergone a big improvement regarding designer support.
Creating amazing user interfaces with Felgo has never been easier!
Multiplayer: you can now join the game lobby without joining a game with the function joinLobby(). This way, you have
information about the lobby available before joining a game room. You can use this to customize matchmaking, for example you could display the number of currently open game rooms, and let the user select a game to join
based on this new information.
See the properties rooms, playerCountOnServer, playerCountOnMasterServer, gameCountOnServer and the function countOpenRoomsWithProperties() for more details.
Switch to a cleaner and brighter version of the Felgo Splash Screen, which better fits a broad diversity of game and app types.
Felgo 2.12.0 adds support for Qt 5.9 and the latest Qt Creator 4.3. Qt 5.9 adds many great features like support for gamepads and 3D animations. Qt Creator 4.3 adds a much improved design mode, which allows you to write QML
code side-by-side with a visual representation of the code. This allows rapid prototyping of UIs. Some of the Felgo components now also support the Qt Quick Designer and visual development to further accelerate the development
process.
Felgo Games & Felgo Apps
Qt 5.9 Support
Felgo 2.12.0 upgrades to Qt 5.9 and Qt Creator 4.3, which allows you to use all latest Qt features in your Felgo projects.
Please note the following points for a successful switch to Qt 5.9:
After updating, open the MaintenanceTool in your Felgo SDK installation folder and remove Qt 5.8 from your installed components. Since Felgo is not compatible with Qt 5.8 anymore, it is best to remove these
kits.
Qt Creator should automatically detect the kits for Qt 5.9, which you can use to build your Felgo projects.
To enable one of the new Qt 5.9 kits, click "Projects" on the left side of Qt Creator and enable your desired kit in the section "Build and Run". This image is for Qt 5.8, after the update you'll see Qt 5.9 listed as an
option:
Qt 5.9 dropped support for MSVC2013 and added support for MSVC2017.
Improvements
Some of the Felgo components now also support the Qt Quick Designer and visual development to further accelerate the development process. The supported components include GameWindow,
App, Scene, Page, NavigationStack and also others are working.
You can use an improved icon-font handling within games and apps and use the latest FontAwesome version 4.7.0 with the IconType component.
The Friends View now has an improved UI. You can use the Felgo friends system within Felgo Multiplayer to allow users to send friend requests and then show the friends in a separate section of the leaderboard. You can also use this friend system to
allow sending messages only between accepted friends to prevent spam in your in-app messages. This improvement is live in the released card game One Card! for iOS and Android.
Use the Navigation::tabs property to access the TabControl within Navigation, which is shown if tabs navigation is enabled.
The new TabControl::textFont property allows to change all font properties of the text within tabs.
With the AppButton::textFont property, you can now access and modify all font properties of the text within AppButton.
Use the new Dialog::autoSize property to decide whether the dialog uses a fixed height or a dynamic height based on the Items you add as dialog content.
Incorrect warning for publish builds about using DEPLOYMENTFOLDERS is no longer displayed when QRC is actually used instead. This is relevant when protecting your source code for published apps.
Reduce the initial engine log output when running an application.
Felgo 2.11.0 adds many changes to Felgo Plugins: all monetization plugins for in-app purchases and ads are now free to use in all licenses! This allows all developers in the Personal license to earn revenue with your app or
game, no paid license required.
You can now also use all the other plugins for evaluation in a Trial mode. Integration of plugins is now a lot easier thanks to new wizards for adding plugins with Qt Creator.
The Google Firebase Plugin is a new plugin for user authentication and to access the Firebase Realtime Database.
All other Felgo Plugins are now usable for free as a Trial Version for all users. This means you can test plugin integration and start developing with plugins before upgrading to
Felgo Pro for full plugin access.
When you add a plugin a Felgo Plugin Trial Watermark is displayed and an alert dialog is shown when the plugin is used. Specify a GameWindow::licenseKey or App::licenseKey to remove this trial with your Pro plan and to activate the used
plugins.
Choose your plugins and create a license key for your application here. To gain access to all Felgo Plugins, upgrade to Felgo
Pro.
Plugin Project Wizard: This new wizard allows to create a fresh Felgo Project with sample integrations of the Felgo Plugins you choose to include:
To create a project using this wizard, open Qt Creator and choose "New Project", then select Plugin Application in the Felgo Apps section or Game with Plugins in the Felgo Games section.
After choosing the plugins to include, please make sure to perform all integration steps described in the plugin documentation.
In a similar way, the existing project wizards for Felgo Games and Apps now also support adding Felgo Plugins.
Plugin File Wizards: Use the new file wizards for Felgo Plugins to add Plugin Items with example QML snippets to your existing projects.
To create a new Plugin Item, choose "New File or Project" and choose Felgo Plugin in the Felgo Games or Felgo Apps files section.
Choose a name for the new item and select which plugin you want to use. Then add the new item to your main QML and run the project to view the plugin example.
Before you can use the plugin, it is required to perform all integration steps described in the plugin documentation.
Add Google Firebase Plugin for user authentication and to access the Firebase Realtime Database.
Improvements
Improved Games & Apps Compatibility: You can now use Felgo Apps features like controls and platform themes in your games too.
FelgoMultiplayer correctly registers for OneSignal push notifications when switching user accounts by connecting or disconnecting to Facebook.
If players connect with Facebook and allow access to their friends list, they can directly compare scores with their Facebook friends or challenge them to multiplayer matches without the hassle of manually searching for
their friends in the game.
When closing native alert dialogs, the NativeUtils::alertDialogFinished signal now passes correct values for the accepted parameter.
The threshold for setting tablet to true also increases to 5.3. This prevents tablet layout detection on bigger phones like the iPhone 7 Plus.
The settings.language property for GameWindow and App now always correctly reflects the loaded translation. For more information
how to make apps or games for multiple languages, see here.
Prevents a Qt Creator crash after closing the IDE on macOS.
Felgo Games
Fixes
Using TexturePacker components is possible again without shader issues that might caused runtime errors.
Solves an OpenGL linker issue when using Spine on Windows Phone and Win RT platforms.
The icons in GameNetworkView now display correctly when using the component in combination with other icon fonts.
WebStorage initializes and synchronizes the current state with Felgo Game Network at first app startup.
Felgo Apps
Fixes
The tint color of used controls gets rendered correctly again, when running the Qt World Summit 2016 Conference App demo on Linux.
Felgo 2.10.0 adds a new Showcase App which combines all app demos in one application and adds a new demo with full source code for the most common requirements in mobile apps. Furthermore, Felgo Multiplayer now supports to
invite players to running games. You can now add support for multiple languages easier than before. And use all the features like text-to-speech introduced in Qt 5.8 with Felgo.
Felgo Games & Felgo Apps
Qt 5.8 Support
Felgo 2.10.0 upgrades to Qt 5.8 and Qt Creator 4.2, which allows you to use all latest Qt features in your Felgo projects.
Please note the following points for a successful switch to Qt 5.8:
After updating, open the MaintenanceTool in your Felgo SDK installation folder and remove Qt 5.7 from your installed components. Since Felgo is not compatible with Qt 5.7 anymore, it is best to remove these
kits.
Qt Creator should automatically detect the kits for Qt 5.8, which you can use to build your Felgo projects.
To enable one of the new Qt 5.8 kits, click "Projects" on the left side of Qt Creator and enable your desired kit in the section "Build and Run".
Qt 5.8 for Android requires the latest Android NDK. You can download the NDK here.
New Features
Internationalization support: Felgo now makes it easier to support multiple languages in your app or game. Create your app using default texts and easily support different countries and languages by adding your
translations. The correct translation is automatically chosen based on the detected system language of the device. Users can also switch the language manually at runtime - use the new GameWindow::settings.language property to use this feature. See How to Make a Multi Language App or Game with Felgo for more
information.
SyncedStore: Use this new component together with the Soomla Plugin to synchronize your in-app purchases across devices. This new feature allows users
to purchase goods in your game or app as before, but additionally uses the Felgo Game Network WebStorage to synchronize the balance of your virtual goods and currency between the user's
devices.
Felgo Apps
Highlights
New Showcase App
iOS
Android
The improved component showcase covers the most useful Felgo features you might want to include in your own app. Have a look at the full source code in the updated Felgo
Sample Launcher or download the app from the stores for iOS or Android.
The updated Component Showcase App combines the most important Felgo Apps features in a single app with native user experience (UX) and fluid UI animations:
Theming and native platform styles
Native dialogs, camera/image picker and share features
Dialog now supports changing properties of the used opacityAnimation and scaleAnimation when showing or hiding
the Dialog. After closing a dialog you can now also execute code using the Dialog::closed signal, which fires when it is fully hidden.
SearchBar now comes with a new property showClearButton to activate or deactivate the clear button of the search field.
If players connect with Facebook and allow access to their friends list, they can directly compare scores with their Facebook friends or challenge them to multiplayer matches without the hassle of manually searching for
their friends in the game. In addition, the player profile with all scores, achievements and friends is synchronized if a player uses the same account on multiple devices.
Felgo 2.9.2 comes with the Qt World Summit 2016 app showcase demo, adds a lot of new app components and updates the Facebook Plugin to use the latest available version.
Felgo Apps
Highlights
Qt World Summit 2016 App Showcase
iOS
Android
We made a full featured conference management app for the recent Qt World Summit Conference that comes with many new components. Have a look at the full source code in the updated Felgo Sample Launcher or download the app from the stores for iOS or Android.
The Qt World Summit 2016 Conference App allows to:
Browse the conference schedule.
See detailed information for all talks, speakers and tracks.
Manage your personal schedule by adding talks to your favorites.
Customize the UI and switch between different native styles and colors.
Earn points for each app-start and favored talk to climb the leaderboard.
Make friends and send messages with the integrated in-app chat.
The app also shows best practices how to use the Felgo Apps Components to create apps that:
Support multiple platforms, screen sizes and screen resolutions.
Provide a native look and feel for different platforms from a single code base.
Handle mobile app specific requirements like offline capability.
Use native device features like confirmation dialogs.
iOS
Android
New Felgo Apps Components
While working on the Qt World Summit 2016 Conference App we also made many new components you can easily use in your own apps:
Create native-looking tabs with the new AppTabBar and AppTabButton components that also support a swipe-able content view.
Add a search feature by integrating the SearchBar component with Theme-based styles for iOS and Android.
Quickly jump to the alphabetically sorted sections of your ListView with the SectionSelect control.
Use the AppFlickable to add a native looking rebound effect to your scrolling.
The PictureViewer also allows to keep the default size of the chosen image instead of always scaling it up to fit the screen.
AppListView now scrolls to the top if the status bar on iOS was tapped (platform-specific behavior on iOS). You can disable that behavior by setting the new AppListView::scrollsToTop property to false.
Fixes
Among other dialog fixes, the Android hardware back button now correctly works with InputDialog dialogs and custom Dialog items.
Facebook: We upgraded the Facebook plugin to use the latest platform SDKs version 4! There is also a new signal that gives additional information about an opened session, called Facebook::sessionOpened. On iOS, make sure to copy the latest iOS frameworks from here and have a look at
the updated integration guide.
Improvements
AdMob: We updated the AdMob iOS platform library to use version 7.14.0. Please make sure to copy the latest iOS framework from here.
We rebranded our Multiplayer Card Game "ONU". This includes updated graphics for the whole game, custom cards that match the Felgo style and a new game title "One Card!". See the game overview page to learn where to find it in the stores or to have a look at the source code.
The new game version also includes many additional features like a single player mode, medals for high-level players and an increased max player level. It now also showcases the integration of In-App Purchases and
Advertisements with the Soomla Plugin and the AdMob Plugin.
New Felgo Multiplayer Features
Latency Simulation: The new property latencySimulationTime allows to simulate network latency for messages in your multiplayer game. Use the
property during the testing of your game to fix errors coming from delayed messages, that might occur when players have a bad network connection. This is a very important feature for debugging any multiplayer game.
Restarting Games: Additional multiplayer functions restartGame() and endGame() make it possible
to restart or end a game for all players in the room. To allow handling a new game and a restarted game differently in your game code, the gameStarted(gameRestarted) signal now provides a gameRestarted parameter, which is set to true for a restarted game. The signal gameEnded() informs all players that a game has ended. This feature requires two additional reserved messages codes: restartGameMessageId and endGameMessageId.
Single Player Mode: Use the new function createSinglePlayerGame() to start an offline game. For offline games, the initial matchmaking phase is
skipped and no other players can join the game. The offline game starts immediately and the leader player can provide AI moves for users that would otherwise be controlled by a person. No messages are sent during the game
and everything is handled locally on the device. As you can reuse your already existing multiplayer game logic, this allows to add an offline mode to your game with only little effort. During a single player game, the
property singlePlayer is set to true.
All Plugins on Android now use the latest available Play Services libraries 9.4.0.
OneSignal: We updated the OneSignal platform libraries to use the latest versions. On iOS, make sure to copy the latest iOS framework from here.
Chartboost: We updated the Chartboost platform libraries to use the latest versions. On iOS, make sure to copy the latest iOS framework from here. This update also fixes video caching issues that prevented loading Video Interstitials and Rewarded Videos.
AdMob: We updated the AdMob platform libraries to use the latest versions. On iOS, make sure to copy the latest iOS framework from here.
Felgo Apps
Fixes
Fixes Theme font issue that initially caused a wrong font to display on desktop platforms.
Felgo 2.9.0 adds Felgo Multiplayer for easily creating real-time & turn-based multiplayer games with Felgo.
Felgo Games & Felgo Apps
Qt 5.7 Support
Felgo 2.9.0 upgrades to Qt 5.7 and Qt Creator 4.0, which allows you to use all latest Qt features also with Felgo projects.
Please note the following points for a successful switch to Qt 5.7:
After updating, please open the MaintenanceTool in your Felgo SDK installation folder and remove Qt 5.6 from your installed components. The update deletes the Felgo libraries from Qt 5.6 and the old kits do
not work anymore.
Qt Creator should then automatically detect the 5.7 kits for Qt 5.7, which you can use then to build Felgo projects.
Qt 5.7 for Android requires at least a minSdkVersion >= 16 setting. To successfully build your projects for Android, open the file android/AndroidManifest.xml of your project and make sure to
set at least:
<uses-sdk android:minSdkVersion="16".../>
Felgo Games
Highlights
Felgo Multiplayer is officially released.
Following its successful beta release, you can now access Felgo Multiplayer when you update Felgo – even as a free user. This new feature can be integrated into your game with less than 100 lines of code! For a quick preview
of the Felgo Multiplayer features check out the Felgo Multiplayer YouTube Video.
Felgo Multiplayer Features
Real-Time and Turn-Based Multiplayer Support: Felgo Multiplayer supports both real-time and turn-based gameplay, so you can use it to make many different types of multiplayer games. It's perfect for making
player-vs-player games like 'Words with Friends' or games for a large amount of players, such as 'Clash of Clans'. With Felgo Multiplayer, you can now rival these games and make whatever kind of multiplayer game you
like.
Matchmaking and ELO Rating System: Felgo Multiplayer includes a matchmaking feature that allows you to play with your friends or join already running games. It also includes an ELO Rating System that matches players
against opponents of a similar skill level to ensure competitive gameplay.
Friend System and Social Features: Felgo Multiplayer lets you add your friends or make new friends with players you meet in-game. You can also compare your highscore with your friend’s in a dedicated Friends
leaderboard. These leaderboards are sure to increase your retention and engagement rates as players compete against friends and international players to reach the top of the rankings.
Interactive Chat & Push Notifications: Felgo Multiplayer features a messaging system so you can chat with your friends, even if they’re not online. This makes it easy to discuss games or arrange future matches. Best
of all, Felgo Multiplayer sends Push Notifications to players when they receive new messages or game invites.
Player Profiles & Cloud Synchronization: Felgo Multiplayer lets you create your own player profile. You can upload a profile picture, set a username and decide if your national flag should be displayed. It’s simple
to do and no additional logins are required. Furthermore, all the player data like highscore or earned achievements gets synced across platforms and across devices with the built-in Felgo Game Network cloud
synchronization.
In-Game Chat: Felgo Multiplayer allows players to communicate during gameplay with an in-game chat feature. Players can use it to discuss game results with one another, message their friends or chat about the
latest news with people from all over the world, right in a running game. This feature adds a strong social element to any multiplayer game and creates an engaging experience for young and old players alike.
True Cross-Platform: Just like other Felgo features, Felgo Multiplayer is a cross-platform solution. This means that your game will work on both iOS and Android devices, but also that players on iOS devices can play
against Android users. Felgo Multiplayer also works on Windows Phone and Desktop platforms, including Windows, macOS (Mac OS X) and Linux.
Easy Integration: The Felgo Multiplayer component can be included in your game with less than 100 lines of code. This means that you can integrate this feature into your game in less than 10 minutes. You can use the
documentation to find out how to add this feature to your game.
Component Overview
The following table gives an overview of all relevant Felgo Multiplayer components and what they are used for:
Defines a simple multiplayer ranking strategy. It is the default rankingStrategy.
Felgo Multiplayer also integrates seamlessly with the FelgoGameNetwork. For showing leaderboards that include a Friends section or to let the users customize their profile it is
sufficient to add a GameNetworkView like you would for games without multiplayer features. Each MultiplayerUser is essentially also a GameNetworkUser with leaderboard scores and achievements.
New Demo Game and Examples
Felgo Multiplayer has already been used to launch "One Card!", a successful 4-player card game based on the popular UNO game. "One Card!" is available on the App Store and Google Play Store and has garnered 100,000+ downloads in the first month. The player
retention rates and engagement metrics are also way above the industry standard, thanks to the multiplayer features. Thus you as developers can use the full source code as a best practice for multiplayer integration
and create your own multiplayer games within a few days.
The full source code for "One Card!" is available for free in the Felgo SDK. See here for an overview of all game features and to find the full source code of the
game.
The new Felgo release also contains two more Multiplayer Examples:
Multiplayer Advanced Example - A demo project that uses most of Felgo Multiplayer features in a game where players try to turn the time on a clock to
noon/midnight.
Multiplayer Simple Example - A simple multiplayer demo where players can ping each other in turn. It uses the Matchmaking and Game Invite system.
AppMap automatically deactivates GPS tracking when the app is backgrounded to avoid draining battery if the app is not used.
Replacing Theme fonts with newer versions of our default fonts caused troubles because a certain font can only be loaded once in an app. The default Theme fonts are now lazy loaded to give priority to custom font
definitions by Felgo users.
Fixes
If the Navigation item on iOS uses the NavigationDrawer, the menu items do not display a disclosure icon now.
Fixed an issue with displaying NavigationItem icons in the NavigationDrawer.
Felgo 2.8.6 adds a new multiplayer card game and new native features like storing a contact in the address book and opening an apps page in the native App Store to help get app store ratings for your app or cross-link to
other apps.
Felgo Games & Felgo Apps
Highlights
Greatly improve UI of all multiplayer views. You can see the views in action in the new multiplayer card game "One Card!" available in the app stores.
Allow joining already running multiplayer games to support more active players in a running multiplayer match.
New native features: Store vCard contacts to the device AddressBook with NativeUtils::storeContacts(vCard) or launch apps on the device with
NativeUtils::openApp(launchParam). The NativeUtils::openApp() function is useful to get an app store
rating for your app or cross-link to other apps.
Access the device OS and version with system.osType and system.osVersion and retrieve the device model identifier with NativeUtils::deviceModel().
Fixes
The callback of the FelgoGameNetwork::uploadImage() function now returns the fully qualified (absolute) URL instead of a relative one.
Felgo 2.8.5 adds the functionality to upload pictures to our web backend and adds a native image picker from camera or the picture gallery.
Felgo Games
Highlights
You can now upload images to our FelgoGameNetwork BaaS (Backend-as-a-Service) with the new FelgoGameNetwork::uploadImage() function. With this function, you can build for example your own social media app where users can upload and share their pictures, or
create games like Draw Something where the images are hosted on our server.
Players can now upload their own profile image in the ProfileView of the Felgo Game Network. They can upload a custom user image by taking a picture or choosing an image from the
gallery. This new feature works on iOS, Android and also on all Desktop platforms.
For changing the user image in your own views use the following FelgoGameNetwork functions:
In leaderboards, the country flag of the players are now shown by default. At app startup, the locale of the player is read and uploaded to the FelgoGameNetwork. Players can
deactivate this in the ProfileView. This feature is enabled for your game by default, you can deactivate it with GameNetworkView::countryCodeEnabled.
Players can now enter Unicode characters as their player name in the FelgoGameNetworkProfileView. This allows for example players
in Arabic countries to add their custom names to leaderboards and multiplayer games.
Many other improvements in preparation for our upcoming Felgo Multiplayer release, including several new methods for FelgoGameNetwork:
The Scene::uiScale setting now uses the specified GameWindow::uiScale by default. When the Scene::dp() function is used, this allows to simulate device-specific sizes with the resolution changer of the debug menubar. Also note that the initial GameWindow::uiScale is now set to 2.0 on desktop to match the default App::uiScale.
It's now possible to use the same Xcode project on iOS for all device and simulator targets without recreating it from Qt Creator for every change.
Fixes
Lots of minor fixes and improvements for Felgo Multiplayer which is currently only available to Startup & Business customers.
Felgo Apps
Highlights
You can now upload images to our FelgoGameNetwork BaaS (Backend-as-a-Service) with the new FelgoGameNetwork::uploadImage() function. With this function, you can build for example your own social media app where users can upload and share their pictures, or
create games like Draw Something where the images are hosted on our server.
It's now possible to use the same Xcode project on iOS for all device and simulator targets without recreating it from Qt Creator for every change.
Fixes
If all child items of NavigationBarRow are hidden, the "more button" is now correctly displayed.
Fixes AppMap issues when zooming with fitViewportToMapItems while also showing the user position on the map.
The new NavigationBarItem::contentWidth property now allows to manually set the width of the item's content area. This fixes binding loop issues with the item
width when creating custom NavigationBarItems.
Felgo 2.8.3 adds the GameCenter Plugin and fixes several minor bugs.
Felgo Games
Fixes
It's no longer required to change the AndroidManifest.xml file for existing projects if you don't use plugins in your project, as it was with update 2.8.2.
Fixes a possible error output that module "QtQuick.Dialogs" could not be loaded if using Felgo Game Network components.
Felgo Plugins
Highlights
This release adds the new GameCenter Plugin that allows to synchronize scores and achievements from Felgo Game Network to iOS Game Center.
Felgo 2.8.2 drastically improves integration of Felgo Plugins, as all plugins are now part of Felgo. If you want to use the new plugin integrations please have a look at our migration
guide.
Note:Important note for Android users: If you're using our existing projects with Felgo 2.8.2, please perform the changes to your
AndroidManifest.xml file as described here.
Felgo Games
Highlights
Felgo Plugins are now integrated into Felgo libraries, which makes integration a lot easier. Please have a look at our migration guide for further information.
Improvements
We improved the Felgo debug menu to downscale the application window for resolutions that do not fit the screen. This allows to simulate all devices on desktop regardless of the screen resolution.
GameNetworkView now automatically fills the GameWindow if placed in a Scene, or its parent item if not.
Felgo Apps
Highlights
Felgo Plugins are now integrated into Felgo libraries, which makes integration a lot easier. Please have a look at our migration guide for further information.
Improvements
We improved the Felgo debug menu to downscale the application window for resolutions that do not fit the screen. In addition, the UI is now also scaled to simulate the selected device.
The AppMap type can now retrieve the user position without showing it on the map with the new enableUserPosition property.
There's also a new Spine example in the Felgo Sample Launcher that shows how to use the converted Spine entities. You can find in it the
Examples/Sprites category.
Improvements
Felgo debug log messages are hidden by default when running qmake on your project (you can still display the messages when setting CONFIG += felgo_debug in your project file).
This Felgo release uses Qt 5.6. If you update your Felgo installation through the Felgo MaintenanceTool, Qt 5.6 will be automatically installed in parallel to your 5.5 installation.
If you don't need Qt 5.5 for your custom Qt projects anymore, you should uninstall it by opening MaintenanceTool, select "Add or remove components", uncheck all Qt 5.5 packages in the package tree and continue until
finished:
Afterwards, make sure that you are using Qt 5.6 kits for you Felgo projects when opening in Qt Creator.
Fixes incorrect Scene scaling when using the debug menu bar.
Felgo Apps
Highlights
New App Example & Wizard: The Login Template provides a simple app structure with a login page that ensures that the user is signed in to work with the app.
New Features
The debug menu for resolution and theme changing is now available for all demos and examples in the SampleLauncher.
New properties App::screenWidth and App::screenHeight allow to set the size of the content area within the application window
on desktop platforms.
These properties should be used instead of width and height, which refer to the total window size that may also include the Felgo debug menu bar.
The property App::menuBarFelgoEnabled allows to activate or deactivate the Felgo debug menu bar.
Improvements
AppSDK controls (e.g. AppButton, AppSwitch, IconButton, ...) now specify their implicitWidth and implicitHeight.
This solves some layout issues.
NavigationStack splitView feature is now deactivated by default.
NavigationStack functions popAll and popAllAndPush got renamed to popAllExceptFirst and popAllExceptFirstAndPush.
Felgo 2.7.0 comes with lots of improvements for Felgo Apps components: You get new components, wizards and a brand new demo showing how to use map-based features within your apps.
It also adds a platformer level editor that enables you to create your own platform game within days.
Felgo Games
Highlights
The New platformer level editor allows you to create your own platformer game within days. You can use it to create levels for your platformer game and balance all game properties while the game is running. This speeds up
content creation and production time significantly: you can use the level editing functionality to create levels for your game faster.
With the new Platformer Demo Game, you can see the full source code of a platformer game with integrated level editor and use it to create your own
platformer.
Thanks to the in-game level editing support, the demo game also includes support for user-generated content: Players can create and share their own levels with other players around the world. This enables you to create a
game like Super Mario Maker or Minecraft.
The new Camera component allows you to easily add cameras following players/characters and camera control for side scrollers or platformer games. You can also use it for any games with
bigger level size than one screen. It supports zooming with Mouse wheel on Desktop and finger pinch gesture on mobile.
ColliderBase: Fix property type for ColliderBase auto-completion files. This enables correct auto-completion in Qt Creator for all properties in
ColliderBase.
Felgo Apps
Highlights
New open-source demo for map-based apps.
New project wizards for getting started with a master-detail view app, a tabbed app or a maps app
New Features
AppMap: Complete map view implementation based on Qt Location. Can show user location and use coordinate.
IconButton: New button type that uses an IconType as visual representation. The button can be used as push button or toggle button with multiple
states.
PageControl: This control displays a row of dots, each of which corresponds to a custom page or other block. The currently viewed page is indicated by a filled dot. You can also set
custom icons instead of dots.
NativeDialog: It's now possible to show platform-native dialogs as an alternative to custom-styled dialogs with InputDialog component.
The new clearsOnBeginEditing property allows clearing out existing content as soon as the input control gains focus (as an example, this is a common
pattern for password input fields).
The new property showClearButton displays a button to quickly clear out entered content by the user without the need of using the backspace key.
AppTextInput: This component is no longer part of Felgo Apps, please use the API-equivalent AppTextField instead.
PictureViewer: When opened the statusbar is hidden automatically.
PictureViewer provides two new signal handlers opened and closed and the
new property isOpen to handle state changes when opening or closing the picture viewer.
TabControl: It's now possible to hide the icons from the tabbar when setting the showIcon to false. This is especially useful (and the
default value) on Android where tabs appear as text-only items.
Improve AppActivityIndicator: Connect the animating property with the visible property. Set the internal
animating property only to true when the indicator is visible.
Add support for all Box2D functionality (like new joints, fixture types, etc.) in QML and update to latest Box2D version. See the Box2D Upgrade Guide how to upgrade your existing Felgo 2.5 projects.
Add many more Felgo Apps Documentation app components. For example support for split view on big screen devices like tablets or advanced listview handling with pull-to-refresh gestures.
Add AlphaVideo component to display videos with alpha channel within the QML Scene Graph.
Add support for loading levels created with R.U.B.E (= Really Useful Box2D Editor). The new main components are RubeParser and RubeBody, along with the other RUBE components. For a tutorial how to use RUBE to create a side scroller game with Felgo, see here.
Plugin license keys are now included in a single Felgo License Key (create your license key here). Felgo Plugins are available in Startup license or higher.
Increase Soomla In-App Purchase Store Plugin to version 1.2. It adds functionality for the StorePurchase
item to use meta data defined in the platform-specific stores for your custom store front (e.g. show localized price and currency for every user).
Dynamic Image Switching now supports per-image file switching with Felgo File
Selectors. This means, you can decide to not include an hd2 version of your image to reduce the app size, however the image will then not be crisp on hd2 (high retina) screens. This allows you to decide based on your
requirements if app size or image quality is more important on a per-image basis.
Handle back button and touching outside of dialogs on Android for NativeUtils::onMessageBoxFinished and NativeUtils::onTextInputFinished. If the dialog is canceled, the accepted parameter will be false.
Add StyledButton for a publishable Button component.
Rename the LevelEditor::levelLoader property to LevelEditor::levelLoaderItem. It chooses the id levelEditor by default.
Fixes:
Fix reading config.json file from the Android assets folder, if the sources are not deployed with qrc but with DEPLOYMENTFOLDERS during development. For publish builds, the sources shall be protected and deployed with Qt Resource System.
Fix emitting GameWindowItem::keyPressedGlobally() only once, and only emit it if the key event was not accepted by any of the children before.
Set the default width and height of Scene to 480x320 if GameWindowItem::landscape is set and to 320x480 if GameWindowItem::portrait is set. This allows auto-rotating Scenes. You might need to change the logical pixel values of Scene children though for making the best use of available
screen space.
Fixes:
Fix physics position updating if only the y position of the entity changes.
Improve GameNetworkView: add profile icon to leaderboard list and own profile, add loading progress bar and decrypt server communication in background thread for better
performance. Also better UI and fonts.
Set felgoScheduler.schedulingMethod to fixed timestep bound to frame rate which has much better visual appearance for MovementAnimation and physics system than
previous default value (FelgoScheduler.Accumulated).
If you are using MultiResolutionImage in your game, create an own subfolder +hd and +hd2 in your img folder. Then rename e.g. myimg-hd.png to myimg.png and move it into the
+hd folder. See the ChickenOutbreak example in the new release how the new folder structure looks like in a real game and see the Felgo File Selectors
documentation.
Rename the imports from import Felgo 1.0 and import QtQuick 1.x to import Felgo 3.0 and import QtQuick 2.0
Not all Felgo components from the latest v1.x are ported to Qt 5 and Felgo v2.0 yet. For a list what is supported, see the current Felgo Games Components Reference.
Add ChickenOutbreak2 Sample Game including in-app purchases, Chartboost plugin and FelgoGameNetwork for achievements and
cross-platform leaderboards. This game is also released in the app stores.
Discard FelgoGameNetwork error response if device is already registered for other user. Required to avoid error message when signing up with a new fb user.
Improve FelgoGameNetwork backend response handling to correctly check for 4xx and 5xx http errors.
Update PolygonCollider doc with hint about maximum number of vertices is 8.
Change default size for content-scaling to match all aspect ratios from 576x368 to 570x360, which makes it more clear why this exact resolution is used. Also upload a Photoshop template to make designing the background
easier.
Change default disconnect behavior in ProfileView: show a messagebox the user has to accept for a disconnect. If disconnected, also clear local data as otherwise the player would
be in the leaderboards twice when the highscores are not cleared.
Fixes:
Fix permanent relogin if facebookId is stored for FelgoGameNetwork user.
Do not allow newlines for FelgoGameNetwork::updateUserName() on Android any more and limit allowed characters to ASCII characters.
Don't restart BackgroundMusic after app was in background mode if the music was stopped beforehand within the game.
Improve FelgoGameNetwork response error handling: if an unrecoverable error is received, do not store this request offline but discard it and continue sending the next requests
in the queue.
Fix maximum request length of FelgoGameNetwork to be unlimited from about 6kB before.
Fix wrong default storage path for DownloadablePackage for packages loaded from dynamically created sources (e.g. /package.php?id=123).
Add performance improvement to set fully opaque items invisible to speed up rendering.
Add documentation instructions how to use the latest Qt Creator version with Felgo.
Add mirrorX and mirrorY property to SingleSpriteFromFile and SingleSpriteFromSpriteSheet.
Allow changing of GameWindow::displayFpsEnabled property at runtime as it also has a performance cost to re-create a new texture every frame when the framerate changes.
Add a World::timeScale property which allows a bullet time effect, i.e. to slow down or speed up of game objects with constant and correct update rates. Added upon customer request.
Add Linux 64 bit support to felgo.prf mkspecs feature file to daily and stable build upon customer request.
API Changes:
Android DocumentsLocation is now on external storage instead of internal.
Change return of FileUtils::getMultiPathUrl() so the absolute url is returned even if not found (required to find videos or non-qml files or non-images from
application binary).
Allow changes of Text item font properties at runtime.
Set correct size of QML renderer if both cocos and QML renderer are enabled on Windows.
Take the musicEnabled setting in GameWindow::settings into consideration when resuming and pausing background music for apps going into foreground/background.
Add full support for resizing applications to arbitrary sizes on desktop with the GameWindow::resizeable property. Add GameWindow::minimizeable and GameWindow::maximizeable properties for improved desktop publishing.
Add GameWindow::fullscreen property for fullscreen support on desktop, even changeable at runtime by pressing Ctrl + F.
Add translation.useSystemLanguage property to allow to always set the system language and overwrite the custom language setting.
Add asynchronous writing to Storage component to not block UI thread while writing. Synchronous Storage::setValue() and Storage::getValue() calls are still possible thanks to cache implementation.
Change keyboard shortcuts for changing resolution at runtime from keys 1-7 to Ctrl(Cmd) + 1-7.
Change clipping node implementation to use Stencil buffer. This allows nesting multiple clipping items.
Add FileUtils contextProperty to load files from multiple directories. By default, the documents directory is looked for with FileUtils::getMultiPathUrl().
Add declarativeView() method to FelgoApplication C++ class to be able to register custom items and declare custom context properties on desktop platforms.
Add label for remaining memory on iOS devices if GameWindow::displayFpsEnabled is enabled.
API Changes:
Greatly improve performance of image loading by 80% for SingleSpriteFromFile and SpriteSequenceFromFile.
Overhaul the sources of all Felgo demos and remove unused code and old comments.
Improve performance of image loading as it is not loaded twice for QML and cocos renderer any more when QML renderer is not active.
Add network plugin support to the prf file as it is required for reading the Mac address.
Fixes:
Make BuildEntityButton work in a Flickable and add check if position changed in release. Use Flickable::pressDelay for parent Flickable to allow flicking and dragging out
entities. Use entityManager.entityContainer instead of scene in BuildEntityButton to remove dependency.
Fix keyboard bug with back button on Android: before the keyboard had still focus when back button was pressed and could not be opened again.
Pause sound effects when app goes in background, not only background music.
NativeUtils::clearCocosTextureCache() now also removes SpriteBatchNodes if they are not held by any existing items. Also fix memory issue for sprites of entities.
Set default system language for translated games on Android.
Allow storing to SQL database after Storage::onDestruction was called.
Fix MultiTouchArea::onSwipeUp and other signal emitting.
Fix issue with wrong image path in ParticleEditor leading to texture list not being shown on mobile platforms.
Fix ItemEditor issue with changing the current editableType the old group was still displayed
Disabling new Particle item with settings.particlesEnabled for GameWindow::settings is now possible.
v 1.3.3 (2013-05-07)
Additional Features:
Add LevelEditor component to store, load, duplicate, remove and export levels so they can be bundled with the application. The new functionality is added to the LevelEditor example and Squaby demo as a reference.
Add ItemEditor and EditableComponent to change properties at runtime and save the settings into a JSON format usable by the level editor.
The new functionality is added to the ItemEditor example.
Add Store plugin for in-app purchases on Android/iOS.
Add SpriteSequenceFromFile item that supports sprite animations read from sprite sheets with multi-resolution support. This update also increases the performance of previous SingleSpriteFromFile item and adds support to
trimmed and rotated sprites in the sprite sheet for smaller texture sizes. It also supports different pixel formats.
Add Clipping item and support the clip property in the Flickable element.
Add TextInput item to use a text input field without opening a native input dialog with NativeUtils. Added test is in Examples/FelgoTests/basicTests/TextInputTest.qml.
Add application state information of GameWindow with signals GameWindow::applicationPaused() and GameWindow::applicationResumed(). This allows saving the game state when the game is
moved to background or put the player to a pause state when returning to the app.
Optional config flag for enabling iTunes file sharing.
API Changes:
The EntityBase::entityId of entities is now set to a better readable format entityType_variationType_entityCount instead of the verbose entity qml url
before.
Breaking Change: the internals of BackgroundImage use a MultiResolutionImage instead of the Image element. This change requires
3 background images with -sd, -hd and -hd2 suffix to be available. If you do not want multi resolution support for the background image, you can use a normal Image element.
Fixes:
Fix Storage issue: at first application start the SQL database was not initialized correctly.
Fix certain cases where an active MouseArea can't ungrab the mouse.
When resizing Text elements, the characters were displayed incorrectly with cocos renderer.
The Particle::positionTypeFree now also works if the Particle element is rotated, not only when its parent is rotated.
Fix Squaby bugs and cleanup code.
v 1.3.0 (2013-03-07)
Additional Features:
Simple demo game from the SimpleNinjaGame tutorial from Ray Wenderlich's website.
Particle Editor Demo: Allow saving and loading of files. Add many more particle effects to the existing particles. Add support to Particle element to load a particle effect from a json file.
File reading and writing with System::readFile() and System::writeFile().
Swipe gesture detection for MultiTouchArea.
NativeUtils::clearCocosTextureCache() for removing unused but cached textures from cocos renderer.
Simpler project configuration by defining CONFIG += felgo in the pro file.
Add widescreen support to ParallaxScrollingBackground by duplicating the images 4 times in total next to each other.
Add Utils component that provides often-needed functionality like creating a random value in a given range.
Fixes:
Font rendering of cocos renderer on all platforms with support for Text wrapping.
Support for umlauts and other special chars (UTF-8) for Text element.
Correct Y position calculation of Flickable element.
Physics Collider removal issue when an entity was pooled and then reused: the old position applied for the physics colliders leading to an instant remove again.
EntityManager issue caused by deferred deletion with auto-generated ids: entities did not get deleted if created with the same id in the same tick.
Transparency issue for images without alpha channel in cocos renderer.
Add properties System::logOutputEnabled and System::publishBuild which can be used in QML to use different app ids e.g. for
Flurry or Facebook. Logging is enabled by default for test builds, and always disabled for publish builds.
Documentation for MultiTouchArea.
Z property of sprites can now be changed at runtime with cocos renderer as well. Note that z-ordering only works for sprites in the same sprite sheet.
Documentation for GameWindow::loadItemWithCocos().
Support arbitrary amount of item hierarchy depth. The limit was 16 before, caused by the OpenGL maximum stack size. There is no limit any more now.
Keyboard handling of cocos renderer on Mac: Correctly handle all normal characters from A-Z and special keys like backspace, shift, cmd or direction keys.
API Changes:
The transformOrigin of EntityBase is changed to Item.TopLeft from the default value Item.TopCenter, because children of items will always use
TopLeft as their default (see the examples and demos).
Additional parameter for NativeUtils::displayTextInput(): a placeholder parameter which gets overwritten when the user starts typing and a
text property for pre-filled text the user can modify. In previous version, only the placeholder text was possible.
Fixes:
Native text input dialog bug on iOS.
Font loading on Android for some fonts.
v 1.1.0 (2012-12-31)
Additional Features:
Accelerometer support for iOS, Android, Symbian and MeeGo.
Keyboard handling of cocos renderer on Linux: Correctly handle all normal characters from A-Z and special keys like backspace, shift, ctrl or direction keys.
Z property of Items can now be changed at runtime with cocos renderer as well.
Add MovementAnimation::onLimitReached signal handler to check borders with better performance from C++.
Add 2 more orientation options to auto-rotate the display by 180 degrees on iOS & Android: sensorPortrait and sensorLandscape to Deploying Felgo
Games & Apps documentation.
API Changes:
Breaking Change: Rename PhysicsWorld updatesPerSecondForPhyiscs property to correct name PhysicsWorld::updatesPerSecondForPhysics. All demos, examples and documentation got applied this change - if any of your existing projects are using the old
updatesPerSecondForPhyiscs property please rename it.
Internal scheduling of physics and MovementAnimation, which leads to much smoother movement and position updating of items using these components across all platforms. The
improvement is mostly visible at these demos: VPong and Chicken Outbreak. Physics calculation also changed to a deterministic time step, so all platforms have an equal physics speed independent of their CPU.
Fix linux linking of 32-bit libraries on 64-bit systems and wrong projectinclude files for debug builds of linux, Symbian and MeeGo.
Check for maximum texture size when calculating allowed scalingSuffixes in GameWindow, which would otherwise lead to a crash if textures are too big. Add additional parameter
"requiredTextureSize" for a contentScalingFileSuffixes.
Fix message and input dialog on Android.
Close app when calling Qt.quit() in QML.
Limitations:
Fonts in CocosRenderer are always black on Mac OS X.
Text elements can now be aligned horizontally (left, right, center).
Add key-value-based web storage on a server hosted by Felgo with the same API as local storage for easy switching.
Add support for entity pooling.
Add advanced serialization features of entities for level saving.
Add functionality to GamInfo to pause and resume all animations and timers for an object with Gam.pauseGameForObject() and Gam.resumeGameForObject().
Add back and menu button for Android and integrate to Squaby and ChickenOutbreak examples.
Add key event handling from Cocos renderer for Windows platform.
Add mirrorX and mirrorY support for Sprite.
Add TechDemo example for performance measurement.
API Changes:
Change API of GameWindow by merging the 2 confusing properties settings and userSettings to a single settings and improve their doc with example usages.
Fixes:
Fix multiresolution support on iOS&Android and improve performance by setting the correct scale factor when loaded at runtime.
Improve performance of SingleSpriteFromFile, by caching the result of the json file instead of reloading it for every batch node.
Greatly improve performance of rotating particles in entities, healthbars and size-changing of Healthbars when modifying the alive percentage.