This guide is a mobile app framework comparison for cross-platform development.
In early cross-platform mobile app development times, content was rendered within a WebView, which is a browser window within an app. The most popular framework for applying this approach was PhoneGap, later renamed to Cordova. As a developer, you would define for example a button, and this button then gets styled with CSS in a way so it looks like a native button on iOS and Android.
The key disadvantages of a webview based approach are:
- The performance for WebViews varies a lot between smartphones as they rely internally on the WebView version used in the operating system version (e.g. Android 4.0 vs 6.0).
- You are dependent on Apple (iOS) & Google (Android) to add features for & improve the performance of the WebView.
The most relevant disadvantage is performance, which was also the main reason why Facebook decided against a web-based approach for their own apps and rewrote their mobile apps native in 2012 for iOS & Android – with 2 separate code bases & teams.
Qt & V-Play on the other hand, allow you to compile real native applications without the need for a WebView. V-Play renders its UI elements with a custom renderer built on C++ & OpenGL ES, optimized for performance and which guarantees the UI will look 100% the same on any device & platform. This solves another common issue web-based frameworks have: the UI is guaranteed to look the same, no matter which OS, browser, web rendering engine or browser version is used. If your app prefers a native look & feel, native UI elements are rendered in combination with the custom renderer.
Furthermore, if you have existing native code which you’d like to keep, you can do this with V-Play thanks to its architecture:
Recently, several popular app development companies like Udacity or AirBnB stepped back from using React Native in their mobile apps, who have listed more reasons why RN was not the right choice for their requirements in the company links in this paragraph.
In contrast to React Native, V-Play uses custom rendering of UI elements. This has the advantage of the same UI being shown across platforms with a single code base. You can see the result of this code savings in this chart, which shows how little code V-Play requires compared to other development platforms. The comparison is based on a real-world project (an app to search real estate properties) that got implemented in various frameworks and which is available on Github: