V-Play is a desktop and mobile cross-platform development solution based on Qt. V-Play aims to make it easier for developers to create apps by using JavaScript and QML, the Qt 5 declarative language. V-Play supports iOS, Android, WindowsPhone, BlackBerry and other mobile platforms. InfoQ has spoken to Christian Feldbacher, CEO & Co-Founder of V-Play.

V-Play aims to provide default native look and feel, high performance thanks to its C++ backing, easy animations thanks to Qt Quick, and more. It also makes it possible to use platform-specific features by integrating custom C++, Objective-C, or Java code.

V-Play was originally born as a 2D game-development engine and recently extended its offerings to also support generic mobile app development. This is an example of how you would declare a simple “Hello World” app in QML using ready-made V-Play UI components:

import VPlayApps 1.0 App { Page { AppText { text: "Hello World" } } }

V-Play provides a large list of components that covers UI, multimedia, networking, etc. Importantly, all components that V-Play makes available through QML are implemented in C++, which guarantees the best performance. V-Play also claim that thanks to QML you can write 10 times less code than using C++ directly. V-Play provides a number of sample apps including a Twitter app, a messaging app, and a weather app.

InfoQ has spoken to Christian Feldbacher, CEO & Co-Founder of V-Play to learn more about their product.

Could you describe V-Play evolution?

The Qt framework, which V-Play is based upon, was already well suited for app development. Mainly because of its key advantages: QML, the Qt Meta Language: a declarative scripting language with full support for JavaScript for the application logic, and many features that enable huge code savings. QML is also easy to learn and understand.

Animated UIs & Customizable Themes: These are very simple to do in QML, and because they are getting more and more important for mobile apps, QML is a good fit for mobile development.

Native Performance: The rendering of Qt apps is done via a scene graph renderer that was fully reworked and optimized for mobile by the Qt team just a year ago. This results in high performance mobile apps. Plus, the Qt framework itself is written in C++ so it is as native as it can get. So we’ve been using Qt and some of the existing V-Play gaming components for internal app development and for mobile app client projects for a while now. In the process, we noticed that we reused many of our new, internal components in different mobile apps to further accelerate production time. This was the starting point of the V-Play Apps SDK: mobile components that simplify app development with the Qt framework. These components allow you to write responsive apps that auto-adapt for smartphone/tablet and portrait/landscape changes. They also allow you to have a native user experience on iOS and Android, without needing any platform-specific changes. After using the SDK in multiple apps and fine-tuning the API, we finally released the first public version of V-Play Apps in August 2015.

The mobile cross-platform arena is pretty crowded. What are the main benefits that you bring to the pack?

In our team of mobile developers we have a lot of experience with mobile app development ranging back to the very first days of the iPhone 1 and Google G1. During these past 8 years the development landscape changed a lot: in the beginning native iOS or Android development was the only choice, and later on more and more frameworks were released to allow cross-platform development. We have worked with many of these frameworks in the past, and still in some cases choose or recommend native Obj-C/Java development. However, for the majority of mobile apps, a cross-platform framework is the best route given the time and costs you save. If you use frameworks that are HTML5-based, you will have a poorer experience and performance in comparison to a native framework like Qt and V-Play. On the other hand, tools like Xamarin require a massive amount of code for getting things like animations done. With V-Play, our mission is to create the easiest to use app framework while maintaining native performance, look and feel, just as we did for the V-Play Game Engine. The fact that QML enables rapid development can be seen in the sample apps that we provide: For example the Twitter app (it comes with full source code in the SDK!), only has 500 lines of code including access to the Twitter REST API and animations just like in the native Twitter app. You can check the code for yourself and test this app on your mobile here. Also, as QML builds on using JavaScript, you have an easy time learning the framework. Most developers report they are productive after just a single day. Thus the learning curve for new developers is very small. There was a cross-platform tool report last year by research2guidance that shows this: V-Play was scored 1st place in front of others like Xamarin, KonyOne or Titanium in terms of time savings & easiness to learn. (2,188 developers participated world-wide).

Mobile app support is a recent addition to V-Play. What are the next major features that you are going to add?

We will put a lot of effort into adding more sample applications that you can use as a starting point for your mobile app, like a navigation app or a newspaper application. Also at the top of the list is improving the tooling: with V-Play Build Server you will soon be able to deploy your apps to multiple iOS and Android devices without needing to install any SDK on your work PC. This will also enable deployment from Windows to an iPhone or iPad for example. However, we also closely listen to the feature requests from our community – so if a feature is often requested we put that one over all others. In the end, all we want to do is make cross-platform mobile app development easier with the V-Play Apps SDK. Over the past 4 years, we’ve learned this can be best achieved by working with the developer community.

V-Play offers a free-tier that allows developers to try out the platform and build apps with some limitations, such as not using V-Play's own in-app purchase or mobile advertisement plugins.