Web developers shall get a picture of the available technologies and their drawbacks. Since cross-platform mobile apps have different requirments, not each solution is suitable for every scenario. When it comes to extensibility, performance and scalability, frameworks differ in several ways.
The most popular framework which is based on this idea is PhoneGap/Cordova. It has to be clarified that these frameworks are more or less the same but still exist as separate tools. This can be confusing but if you look at their documentation you will see that there's no difference. Some conventions and CLI commands differ so it's up the developer which one he chooses. Since the frameworks are being maintained by different developers (Apache and Adobe), they will remain separate tools in the future.
The advantage of this concept is the usage of native views and widgets. The drawback is that you can't use HTML components here. But since there is no HTML layout engine, there is no additional area which could slow down the performance of the application.
Currently there are 7 noteworthy frameworks and technologies which either follow the concept of having a WebView wrapper or provide a dynamic runtime. At this point, it has to be said that PhoneGap/Cordova are not included in the following evaluations. By this time there are more advanced solutions which already come with UI components and MV* frameworks. The following lists contain links to each framework and a brief description.
Based on PhoneGap/Cordova
|Telerik AppBuilder||A hybrid app solution based on jQuery and Kendo UI Mobile which comes with many UI widgets and an optional MVVM framework. The visual appearance of an app can be adjusted by using or customizing themes.|
|Supersonic||A hybrid app framework that utilizes Ionic and provides more advanced features (Cordova promises). It partly integrates native UI components and is based on an advanced PhoneGap-compatible WebView wrapper called AppGyver Wrapper.|
|Appcelerator Titanium||A mobile app framework that comes with an integrated MVC framework, an own IDE and a special framework designed for building APIs. Appcelerator promises a code reuse across device platforms of 60-90%. On Appcelerator.org you'll find the open source Titanium mobile framework.|
The table below illustrates a direct comparison of all frameworks mentioned on this page. Some cells contain additional information which can be shown by hovering the mouse cursor over that cell.
|Based on PhoneGap/Cordova||Ionic||Telerik AppBuilder||Supersonic||React Native —||Appcelerator Titanium —||Tabris.js||NativeScript —|
|XML-based views/components||Ionic —||Telerik AppBuilder —||Supersonic —||React Native||Appcelerator Titanium||Tabris.js —||NativeScript|
|UI framework included||Ionic||Telerik AppBuilder||Supersonic||React Native||Appcelerator Titanium||Tabris.js||NativeScript|
|UI customization via CSS||Ionic||Telerik AppBuilder||Supersonic||React Native —||Appcelerator Titanium||Tabris.js —||NativeScript|
|Use of native UI components||Ionic —||Telerik AppBuilder —||Supersonic||React Native||Appcelerator Titanium||Tabris.js||NativeScript|
|Repository with community plugins/modules||Ionic||Telerik AppBuilder||Supersonic||React Native —||Appcelerator Titanium||Tabris.js —||NativeScript|
|Node.js-based workflow||Ionic||Telerik AppBuilder||Supersonic||React Native||Appcelerator Titanium||Tabris.js||NativeScript|
|Usage of CommonJS modules||Ionic —||Telerik AppBuilder —||Supersonic —||React Native||Appcelerator Titanium||Tabris.js||NativeScript|
|Support for iOS and Android||Ionic||Telerik AppBuilder||Supersonic||React Native||Appcelerator Titanium||Tabris.js||NativeScript|
|Native app can be turned into mobile web app||Ionic||Telerik AppBuilder||Supersonic||React Native —||Appcelerator Titanium||Tabris.js —||NativeScript —|
|Requires online registration||Ionic —||Telerik AppBuilder||Supersonic||React Native —||Appcelerator Titanium||Tabris.js||NativeScript —|
|Free||Ionic||Telerik AppBuilder —||Supersonic||React Native||Appcelerator Titanium||Tabris.js||NativeScript|
Pro and contra
- Objective-C/Swift and Java knowledge is not/rarely needed
- usage of native IDEs (XCode, Eclipse, etc.) is very limited or not needed
- platform-specific adjustments can be implemented easily
- hardware features on both platforms can be used out of the box (API)
- prototypes and small apps can be developed quickly
- existing native plugins can accomplish more complex tasks
- a rapid development and testing workflow is possible through Node.js
- user interface layouts for both platforms can be developed faster
- strong dependency from maintenance/support of frameworks
- native UI responsiveness and performance is not possible with WebView approaches
- advanced device feature programming requires native language knowledge
- app performance and memory consumption can only be optimized slightly
- new OS/SDK features can not be used immediately
- possible dependency on community plugins/modules and their maintenance
- performance leaks and UI glitches in WebView solutions