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:





    PhonegapXamarinUnityQtAppcelerator titaniumTelerik AppBuilder
    LanguagesJavaScript, HTML5, CSS3 and native languages ​​(Java, Objective-C, C #) C #, XamlC #, UnityScript, BooC ++ QMLJavaScript, Python, Ruby, PHP.Net, JavaScript, HTML5, Java, PHP
    Supported LensesAndroid, 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 OneAndroid, iOS, WinRT, Windows, Symbian, Linux, QNX iOS, Android, BlackBerry, Windows, Tizen, DensoiOS, Android, BlackBerry, Windows, Windows Phone
    PricesPhoneGap 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+--++-
    UIWebNativeUi canvasNativeNativeWeb

    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

    Also popular now: