Overview of the 7 most popular cross-platform mobile frameworks
At work, I was asked to make a comparative description of several products for creating cross-platform mobile applications: Appcelerator Titanium, Kony Platform, Adobe PhoneGap, IBM Worklight, Telerik Platform, Verivo Akula, Xamarin. I spent a lot of time, so I decided that it would be better to share the obtained data with the habrasoobshchestvo, who suddenly seems useful. I’ll say right away that, apart from PhoneGap, I haven’t come across and have not worked with any of these frameworks, so I’m sure I missed something, maybe I misunderstood somewhere, but I was wrong about something. But in the comments I hope to hear your opinion and correct the flaws.
At the end of the article I placed several polls that will help to understand the popularity and rating of these frameworks.
Interesting opportunities
Distinctive features of the platforms that I wanted to highlight.
Applications look and behave like native, but are completely written using JavaScript (js code in runtime is translated to native view).
The UI can be created separately for each platform using the Alloy framework (an integrated MVC framework using XML and CSS-like syntax). Despite the fact that creating a separate UI for each OS complicates the development and greatly reduces the amount of reusable code, the entire business logic, model and core of the application still remain the same for any platform.
The store of plug-ins and components (520 components and 204 of them are free) - everything that you may need for applications: analytics, advertising, cloud storage, social networks, work with graphics, etc.
Analytical platform (monitoring of application data in real time, monitoring performance, crashes, logs, and even the process of creating an application)
Full automation tests.
Built-in connectors to the most popular enterprise platforms (Salesforce, SAP, Oracle, Microsoft Dynamics and SharePoint), connectors to popular applications (LinkedIn, PayPal, DropBox, Facebook, Twitter, etc.). The ability to create your own connectors to any services.
Web, hybrid and native applications for smartphones, tablets and desktop devices, written with a single code.
Support for the full cycle of creating an application (design, development, testing, deployment and management of cross-platform applications).
The ability to show and share prototypes and applications between designers and developers (you can even comment and discuss some problem areas on the layouts).
Access backend services using thousands (at least they say so) RESTful APIs.
Flexible ability to choose development frameworks (including JavaScript and PhoneGap) and native tools (iOS, Android).
Preview applications in real time.
Ability to send messages and notifications to users (push services).
Synchronization services allow you to connect to any third-party enterprise services.
Reporting system and analytics. Determination of devices, crash logs.
Authorization and security.
Application update, settings and version management.
The application works like a regular web page inside the WebView, respectively, everything is based on the familiar HTML, CSS and JS. But at the same time, PhoneGap API gives us the opportunity to use all the capabilities of the device in the application: camera, sound, GPS, file system, contacts, notifications, etc.
Due to the fact that the PhoneGap application is built on the basis of WebView, it can be embedded in the native application (we get a hybrid application).
You can compile to any existing mobile platform, including Tizen, Bada, Firefox OS. And it can be done literally in a couple of clicks using the cloud service PhoneGap Build.
The framework itself is small and simple, so the threshold for entering the development on PhoneGap is quite low, it’s enough to know only the basic web technologies.
Created on the basis of Apache Cordova (like PhoneGap), so you can also create web applications and hybrids (with the ability to send messages and data between native and web modules).
Internationalization support.
Support USSD-services.
Application analytics service.
Security at every level - user, device, data, application.
Portal AppManager, where you can download your applications, assign access to them, invite and manage users. (original own Play Market).
Automated testing of native, hybrid and web applications.
Push notifications.
Own advanced web IDE, respectively, you can create applications directly in the browser from any device (with a normal browser of course) anywhere in the world (with access to the Internet).
Design and prototyping.
Version Control System (VCS).
Like PhoneGap and Worklight, Telerik is based on Apache Cordova with all its advantages and disadvantages.
Creating native iOS, Android, Mac and Windows applications using C #. Moreover, unlike Appcelerator, the code is not interpreted at the execution stage, but is compiled immediately into native code. Therefore, the behavior, appearance and performance is the same as in native applications!
A UI is created for each platform using the standard view for these platforms.
Xamarin Test Cloud is an automated application testing service on hundreds of virtual mobile devices.
A huge number of components (plug-ins) to enhance the capabilities of Xamarin.
In-app purchases.
Development tools
Availability of own IDE, plug-ins for popular IDE and other development tools.
1) Appcelerator Titanium
Titanium Studio, based on Eclipse.
2) Kony Platform
Based on Eclipse Kony Studio (Kony Visualization Cloud - for design and prototyping, Kony Development Cloud - development, Kony Management Cloud - application management).
3) Adobe PhoneGap
Own development environment is not, but in fact it is not really necessary. But there is integration with Adobe Dreamweaver and Brackets .
There is also a kind of application "Developer App", which allows you to instantly watch the changes on your mobile device, without having to compile the developed application and build it.
4) IBM Worklight
Worklight Studio is a plugin for Eclipse that turns it into a Worklight development environment.
5) Telerik Platform They generally have development tools that follow the trend of cloud applications, so they created a web IDE (the so-called ICE - integrated cloud environment). It consists of 5 modules for all stages of development:
AppPrototyper (design and prototyping)
AppBuilder (development)
AppManager (control)
AppFeedback (user feedback)
AppAnalytics (respectively analytics system)
In addition, there is an extension for Visual Studio, a client for Windows, an extension for Sublime Text.
6) Verivo Akula
There is a Verivo AppStudio IDE.
You can also use any familiar environment for development (IDEA, Eclipse, NetBeans, etc.)
7) Xamarin
Has its own IDE Xamarin Studio.
You can also develop in your favorite Visual Studio by installing a special plugin.
Supported Platforms
Under what OS you can write your own wonderful applications.
1) Appcelerator Titanium
Native applications for mobile OS: iOS, Android, BlackBerry, Tizen, Denso. Mobile-web applications for the same platforms.
Desktop applications for Windows, Mac.
2) Kony Platform
Desktop applications for Windows, Mac.
Web applications for browsers IE 8+, Safari 5+, Chrome 20+, Opera 12+, Firefox 4+.
Applications for smartphones and tablets - iOS, Android, Blackberry, Windows Phone.
Applications for info kiosks.
3) Adobe PhoneGap
Mobile-web applications: iOS, Android, Windows Phone, Blackberry, Ubuntu, Firefox OS.
4) IBM Worklight
Mobile native and mobile-web: Android, iOS, Blackberry, Windows Phone, Java ME.
Desktop: Windows 8.
5) Telerik Platform
Mobile: iOS, Android, Windows Phone.
Desktop: Windows 8.
6) Verivo Akula
Native and mobile-web: iOS, Android.
7) Xamarin
Mobile native applications: iOS, Android, Windows Phone.
Desktop native - Windows, Mac.
Apparently, if you need a truly cross-platform application, then Kony provides the widest choice of platforms.
Development languages
What languages can be used to develop applications.
1) Appcelerator Titanium
JS, Python, Ruby, PHP
2) Kony Platform
Native languages (Java, Objective-C, C #) - for native applications and hybrid solutions
Javascript
3) Adobe PhoneGap
Native languages (Java, Objective-C, C #) - for native applications and hybrid solutions
Javascript
4) IBM Worklight
Native languages (Java, Objective-C, C #) - for native applications and hybrid solutions
Javascript
5) Telerik Platform
.NET, Java, JS, PHP
6) Verivo Akula
Native languages (Java, Objective-C, C #) - for native applications and hybrid solutions
Javascript
7) Xamarin
C # only
No matter how cool (or seemed) Xamarin, it is available only to people with knowledge of C #.
Framework extensibility
Ability to extend the basic features of various plug-ins and components.
1) Appcelerator Titanium
Using the "modules" that you can download or create yourself (this requires native development skills for the right platform), you can expand the capabilities of Titanium.
There is a component store (520 at the moment and 204 of them are free).
2) Kony Platform
FFI (Foreign Function Interface) - extensions for the platform that can be written using native languages. But the problem is that they are very few and difficult to find, as a result, developers swear that for ordinary trifles you have to write these extensions. (If anyone knows the details, please write in the comments).
3) Adobe PhoneGap
In JS development, you can use any JS library (jQuery, Sencha Tuch, etc.).
PhoneGap itself supports plugins that can be found on the Internet or write yourself. But there are various compatibility issues with different platforms. (Who has tried, please describe the details in the comments).
4) IBM Worklight
Similar to PhoneGap, since Worklight is based on Apache Cordova, just like PhoneGap.
5) Telerik Platform
You can use special plug-ins for Verivo, as well as plug-ins for Apache Cordova, which can be found on the Internet or write yourself.
6) Verivo Akula
The necessary modules can be developed by yourself using Java. The platform itself is still evolving, so most likely there are still very few ready-made solutions, if at all.
7) Xamarin
Xamarin has its own component store , where 200 extensions are currently available (mainly for iOS and Android), a huge number of them are free.
Analytics, crash reports, logs, audit and management
Opportunities to monitor the application, users, as well as tools for monitoring errors and viewing logs.
1) Appcelerator Titanium
Monitoring panel in real time for the life cycle of the application (from prototype to publication).
Analytics system for business users, where in real-time you can track all indicators of the application. There is also a special application for iOS and Android.
Management System (Management Dashboard), where you can monitor application performance, exceptions, view crash reports.
2) Kony Platform
Built-in analytics and crash reports.
Integration with Omniture, IBM Coremetrics, Google Analytics and WebTrends.
Ability to set custom attributes through a special API for creating custom reports.
The ability to track user actions (detailed audit).
3) Adobe PhoneGap
The lack of their systems analytics. But since this is a web application, you can integrate any third-party system, for example Google Analytics (there are even special plug-ins for this on the Internet). The same situation with crash reports (only I did not find any plug-ins).
4) IBM Worklight
Analytics for enterprise clients, which allows you to monitor real-time logs and events that are collected from all applications, devices and servers.
Crash reports and flexible logging.
5) Telerik Platform A statistics system that includes:
Runs and running applications.
View users and sessions.
Tracking your own events.
Track exceptions.
6) Verivo Akula
No, nothing at all. The platform is new and is just beginning to develop.
7) Xamarin
No built-in tools. But there are a lot of different plugins that solve this problem.
Enterprise (all platform chips + support) - the price is not indicated, offering to contact them, so if anyone knows their corporate rates, please indicate in the comments.
Team (10 private applications, up to 3 employees) - $ 30 / month., $ 300 / year (saving $ 60).
Corporate (25 private applications, up to 10 employees) - $ 90 / month, $ 900 / year (saving $ 180).
4) IBM Worklight I did not find such data. To find out the price, you need to contact them, so this is only for corporate clients. If anyone knows the details, specify in the comments.
Developer (1 application, without many features) - $ 49 / month, $ 468 / year (saving $ 120).
Professional (hybrid and native applications) - $ 119 / user / month, $ 948 / user / year (saving $ 480).
Business (web, hybrid and native applications) - $ 224 / user / month., $ 1788 / user / year (saving $ 900).
6) Verivo Akula Here we also see a clear emphasis on corporate customers, hence the cosmic price tags. To find out the price, you need to contact them.
Starter (individual plan, without many features) - for free.
Indie (individual plan, without some features) - $ 299 / year.
Business (for organizations, without some features) - $ 999 / user / year.
Enterprise (for organizations, all inclusive) - $ 1,899 / user / year.
What to choose from this - you decide. I hope this brief review will save someone time in search of a suitable solution. Unfortunately, it makes no sense to describe the pros and cons of each framework without working with each of them. I hope that in the comments to the article, someone will share with me useful information regarding this topic and, perhaps, the article will be supplemented.
UPDATE 07.15.2014 Added section "Development languages". A couple of additions to the article. ________________________________________________________________