Overview of Cross-Platform Mobile Application Development Solutions
In this article, we compare the 6 cross-platform development solutions that were popular in 2016 and try to find the best solution.
Cross-platform frameworks PhoneGap, Xamarin, Unity, Qt and Appcelerator Titanium, Telerik Platform currently occupy 80% of the cross-platform development market for mobile devices. The table below shows the main characteristics for each framework:
Phonegap
PhoneGap allows you to create mobile applications using standard web technologies (HTML5, JavaScript and CSS3). As a result, this led to a rapid increase in the popularity of the framework, with it you can do without development in programming languages such as Java for Android, Objective-C for iOS, and C #.
PhoneGap Build allows you to build for iOS, Android and Windows Phone at the same time, without the need to install any SDK tools (of course, this is a bit of cunning - it’s better to build locally, at least on Android, before sending it for testing) . But more importantly, this service allows builds for iOS in the cloud without a Mac.
Installing PhoneGap requires incredible efforts, so I advise you to free up half a day ... It's a joke. Installation for Xcode took about 3 minutes - it consisted of downloading the archive, unpacking and installing. That's all.
PhoneGap presents the ability to use the native functions of a mobile device to work with:
If the application does not go beyond these points, then the development speed using the PhoneGap framework will be an order of magnitude higher than the development of a native application for each platform. Video with application development and description of PhoneGap. Benefits:
Disadvantages:
Xamarin
Xamarin is the second cross-platform framework on our list. Xamarin allows you to create one single application logic using C # and .NET.
Functionally, the Xamarin platform presents a number of sub-platforms. These sub-platforms play a large role - through them, applications can direct requests to application interfaces on devices. The visual interface is defined, the logic is attached to C #, and all this will work on Android, iOS and Windows Phone. Application development video on Xamarin. Benefits:
Disadvantages:
Telerik AppBuilder
One of the main reasons to use AppBuilder is a full online IDE. It allows you to create, test and even publish hybrid applications from any computer or mobile device, without the need to download it.
The ability to create iOS applications running on Windows or Linux is another advantage.
And finally, AppBuilder’s affiliation with the Telerik Platform gives you the opportunity to use features such as analytics, pop-up notifications, user authorization, and cloud storage. Detailed description in the article and video . Benefits:
Disadvantages:
Unity
The multi-platform tool for developing 2D and 3D applications and Unity games is also one of the best tools for demonstrating 3D content. Applications created using Unity work under the operating systems Windows, OS X, Linux, Android, Apple iOS, Windows Phone, BlackBerry, as well as on Wii, PlayStation 3 and Xbox 360 game consoles. Video with the development of a mobile game on Unity. Benefits:
Disadvantages:
Qt
Qt library for creating cross-platform window applications in C ++. Qt should be considered not so much as a set of classes for creating a GUI, but rather as a complete toolkit of classes for all occasions. It is possible to develop programs not only in C ++, but also in QML, which is very similar to JavaScript. This is a special branch of Qt's development aimed at rapid prototyping and development of mobile applications. Tiled Map Editor Qt development video .
Benefits:
Disadvantages:
Appcelerator titanium
Titanium is a completely open platform for the development, deployment, distribution, and, ultimately, the execution of web applications. Appcelerator Titanium allows you to create mobile applications in JavaScript, HTML and CSS.
You can create modern, and most importantly, native applications using any operating system that is popular today: Windows, GNU / Linux, or MacOS X.
Applications created using this SDK will be truly native. The navigation controller on Android will look familiar and not like on iOs. And not only the view, but the application code itself will also be native. By the way, this does not prevent you from creating a classic WebView and filling it with the desired web content.
Benefits:
Disadvantages:
React native
What is React Native? This is a JS framework based on JS and React, a JS library for creating a UI (View level).
The technology is very promising, but young, so the platform is still crude in some places. The Android version appeared later, so there are more components for iOS applications so far. It is also worth considering that when the application is deployed, the entire JS will get to the user's device, so you should not keep secret business logic at the presentation level. We can say that now React Native can be used to quickly prototype mobile versions of your web applications. Moreover, if the web application is already written in ReactJS, then the transfer speed increases at times. React Native development example .
Benefits:
There is no perfect solution, each framework has its pros and cons. For very simple applications, I would recommend using PhoneGap until responsiveness becomes a key criterion. And for more serious development, it is better to use Xamarin, but even with Xamarin it is better to combine native development for most user interface elements.
Cross-platform frameworks PhoneGap, Xamarin, Unity, Qt and Appcelerator Titanium, Telerik Platform currently occupy 80% of the cross-platform development market for mobile devices. The table below shows the main characteristics for each framework:
Phonegap | Xamarin | Unity | Qt | Appcelerator titanium | Telerik AppBuilder | |
Languages | JavaScript, HTML5, CSS3 and native languages (Java, Objective-C, C #) | C #, Xaml | C #, UnityScript, Boo | C ++ QML | JavaScript, Python, Ruby, PHP | .Net, JavaScript, HTML5, Java, PHP |
Supported Lenses | Android, iOS, Windows Phone, Blackberry, WebOS, Symbian, Bada, Ubuntu, Firefox OS. | iOS, Android, Windows Phone and Windows 8 / RT, Tizen | Android, iOS, Windows Phone, Tizen, PS 4, Xbox One | Android, iOS, WinRT, Windows, Symbian, Linux, QNX | iOS, Android, BlackBerry, Windows, Tizen, Denso | iOS, Android, BlackBerry, Windows, Windows Phone |
Prices | PhoneGap pricing Paid version: from $ 9.99 Free version: available Adobe Creative Cloud Membership: available | Xamarin pricing Xamarin Studio Community: free Visual Studio Community: free Visual Studio Professional: available Visual Studio Enterprise: available | Prices Unity Personal Edition: free Professional Edition: from $ 75 per month | Prices Qt There is a free version. Paid versions start at $ 79. | Appcelerator Pricing Indie Free Trial : $ 39 / month Pro: $ 99 / month | Prices Telerik AppBuilder There is a free trial period Price from 39 $ per month |
Open source | + | - | - | + | + | - |
UI | Web | Native | Ui canvas | Native | Native | Web |
Phonegap
PhoneGap allows you to create mobile applications using standard web technologies (HTML5, JavaScript and CSS3). As a result, this led to a rapid increase in the popularity of the framework, with it you can do without development in programming languages such as Java for Android, Objective-C for iOS, and C #.
PhoneGap Build allows you to build for iOS, Android and Windows Phone at the same time, without the need to install any SDK tools (of course, this is a bit of cunning - it’s better to build locally, at least on Android, before sending it for testing) . But more importantly, this service allows builds for iOS in the cloud without a Mac.
Installing PhoneGap requires incredible efforts, so I advise you to free up half a day ... It's a joke. Installation for Xcode took about 3 minutes - it consisted of downloading the archive, unpacking and installing. That's all.
PhoneGap presents the ability to use the native functions of a mobile device to work with:
- accelerometer
- camera
- compass
- contacts
- file storage
- geolocation
- database
- events, notifications,
- media and others
If the application does not go beyond these points, then the development speed using the PhoneGap framework will be an order of magnitude higher than the development of a native application for each platform. Video with application development and description of PhoneGap. Benefits:
- PhoneGap has a simple API that makes it easy to start development for those who have come across HTML, CSS and JavaScript.
- Ability to use any existing JavaScript libraries (jQuery, Prototype, Sencha Touch)
- Support for all mobile platforms
Disadvantages:
- The user interface is visualized using the built-in browser. This creates difficulties in obtaining feedback compared to the native application.
- Often existing plugins are deprecated, so sometimes you have to write your own.
Xamarin
Xamarin is the second cross-platform framework on our list. Xamarin allows you to create one single application logic using C # and .NET.
Functionally, the Xamarin platform presents a number of sub-platforms. These sub-platforms play a large role - through them, applications can direct requests to application interfaces on devices. The visual interface is defined, the logic is attached to C #, and all this will work on Android, iOS and Windows Phone. Application development video on Xamarin. Benefits:
- Large and developing community.
- Developers can use TestCloud to test applications automatically.
- If you are already familiar with C # and .NET, then you will not need to spend a lot of time learning a few new frameworks.
- You can reuse already written code.
- Applications under different systems will look very similar.
- Dynamic layout for iOS is infinitely easier than using constraints manually.
- Due to CustomRenderers, the standard controls are easily supplemented with arbitrary properties (for example, to make the gradient fill of buttons is a matter of a couple of minutes, although this does not work out of the box).
Disadvantages:
- Some interface patterns are hard to implement on monodroid and very hard on monotouch, since the default solutions for a particular feature rely on platform crutches that may simply not work in Xamarin.
- There are problems on the mono, monotouch, and monodroid platforms. Your application must meet the special requirements of stability.
- Android pages cannot be positioned as part of an existing Activity / Fragment.
- Not all controls are implemented.
Telerik AppBuilder
One of the main reasons to use AppBuilder is a full online IDE. It allows you to create, test and even publish hybrid applications from any computer or mobile device, without the need to download it.
The ability to create iOS applications running on Windows or Linux is another advantage.
And finally, AppBuilder’s affiliation with the Telerik Platform gives you the opportunity to use features such as analytics, pop-up notifications, user authorization, and cloud storage. Detailed description in the article and video . Benefits:
- Telerik provides Visual Studio and Sublime Text plugins for AppBuilder.
- AppBuilder offers a quick way to import Cordova plugins .
- Full online IDE.
- Easy to use and learn.
Disadvantages:
- Small community
Unity
The multi-platform tool for developing 2D and 3D applications and Unity games is also one of the best tools for demonstrating 3D content. Applications created using Unity work under the operating systems Windows, OS X, Linux, Android, Apple iOS, Windows Phone, BlackBerry, as well as on Wii, PlayStation 3 and Xbox 360 game consoles. Video with the development of a mobile game on Unity. Benefits:
- A great option for creating mobile games for a variety of devices
- 3D engine delivers high-quality results without any complicated configurations
- There are many good free plugins
- Unity allows the developer to create their own shaders and change the way that Unity renders the game.
Disadvantages:
- UI and usability for beginners
- Source Code Not Available
- Unity compilers are not optimized for ARM processors on some mobile devices.
Qt
Qt library for creating cross-platform window applications in C ++. Qt should be considered not so much as a set of classes for creating a GUI, but rather as a complete toolkit of classes for all occasions. It is possible to develop programs not only in C ++, but also in QML, which is very similar to JavaScript. This is a special branch of Qt's development aimed at rapid prototyping and development of mobile applications. Tiled Map Editor Qt development video .
Benefits:
- Qt has a lot of good tools to help with development, for example: IDE QT Creator, Qt Designer and code profiling.
- It has libraries containing intuitive APIs for elements such as networks, animations, and more.
Disadvantages:
- Qt is hard for beginners
Appcelerator titanium
Titanium is a completely open platform for the development, deployment, distribution, and, ultimately, the execution of web applications. Appcelerator Titanium allows you to create mobile applications in JavaScript, HTML and CSS.
You can create modern, and most importantly, native applications using any operating system that is popular today: Windows, GNU / Linux, or MacOS X.
Applications created using this SDK will be truly native. The navigation controller on Android will look familiar and not like on iOs. And not only the view, but the application code itself will also be native. By the way, this does not prevent you from creating a classic WebView and filling it with the desired web content.
Benefits:
- JavaScript makes it easy to develop applications without using platform languages.
- Appcelerator lets you do real-time analytics
- Using the native API will give better performance for applications that are not very large.
Disadvantages:
- There are delays when starting the application due to loading the library
- It is difficult to create complex applications, as the use of JavaScript adversely affects application performance.
React native
What is React Native? This is a JS framework based on JS and React, a JS library for creating a UI (View level).
The technology is very promising, but young, so the platform is still crude in some places. The Android version appeared later, so there are more components for iOS applications so far. It is also worth considering that when the application is deployed, the entire JS will get to the user's device, so you should not keep secret business logic at the presentation level. We can say that now React Native can be used to quickly prototype mobile versions of your web applications. Moreover, if the web application is already written in ReactJS, then the transfer speed increases at times. React Native development example .
Benefits:
- A single workflow and tools: it doesn't matter if you work on the Android or iOS version - you still use the same tools.
- For this reason - the speed and ease of development.
- JS API legacy app binding and hybrid apps: let's say you already have a ready-made iOS app and want to upgrade to React Native. Then you can wrap the native components so that they are available in React Native. So you can gradually switch to React, and you get a hybrid application - half of it is native, and half in React, and several legacy components in the JS API.
There is no perfect solution, each framework has its pros and cons. For very simple applications, I would recommend using PhoneGap until responsiveness becomes a key criterion. And for more serious development, it is better to use Xamarin, but even with Xamarin it is better to combine native development for most user interface elements.
Only registered users can participate in the survey. Please come in.
Which of these technologies have you worked with?
- 24.7% PhoneGap 172
- 26.2% Xamarin 183
- 21.5% Unity 150
- 29.7% Qt 207
- 3.5% Appcelerator Titanium 25
- 1.1% Telerik AppBuilder 8
- 12% Other 84
- 23.9% have not worked with any 167
What is your experience with PhoneGap?
- 11.5% Very satisfied 28
- 47.5% You can work 115
- 40.9% did not like 99
What is your experience with Xamarin?
- 32.7% Very satisfied 73
- 43% You can work 96
- 24.2% Did not like 54
What is your experience with Unity?
- 41.7% Very satisfied 84
- 44.7% You can work 90
- 13.4% Did not like 27
What is your experience with Qt?
- 50.8% Very satisfied 122
- 33.3% You can work 80
- 15.8% did not like 38
Your experience with Appcelerator Titanium?
- 8.6% Very satisfied 7
- 29.6% You can work 24
- 61.7% did not like 50
What is your experience with Telerik AppBuilder?
- 3.3% Very Satisfied 2
- 15.2% You can work 9
- 81.3% did not like 48
What is your experience with React Native?
- 28.3% Very satisfied 36
- 40.9% You can work 52
- 30.7% did not like it 39