Apache Cordova vs. Tabris.js

Apache Cordova vs. Tabris.js

Warning! This article is outdated and might not represent the current state of Tabris.js.

logosAt EclipseSource we’ve been doing frameworks for many years now. We did server and UI frameworks… Web and mobile frameworks… Open and closed frameworks… If we had only learned one thing, this would be “Play well with others!”. With this post I want to show you how our cross platform solution Tabris.js compares to Apache Cordova and how they are playing well together.

The UI

Apache Cordova Applications are basically webviews embeded in a native app. For this reason Cordova applications provide a UI written in HTML. This gives you the complete freedom of styling and layouting your UI as you are used to with web applications. But one major drawback of these HTML UIs is that they don’t feel and perform like native UIs on mobile platforms. Tabris.js goes in another direction. Instead of using HTML it provides a JavaScript API that renders a UI created with native UI elements. As a result a Tabris.js UI feels and performs like a UI that is written in Object-C/Swift for iOS or Java for Android like the one displayed on this image.

Plugins

One of the most valuable things Apache Cordova provides is a plugin API which allows plugin developers to wrap native functionality with a JavaScript API that can be called within your HTML UI. Popular examples are plugins for accessing the device camera or the device filesystem. To support as many Operating Systems as possible Cordova allows to specify a “platform” like iOS, Android or BlackBerry. Each platform comes with their own bridge into and out of the native world. This is the implementation of the Cordova “exec” function. While Tabris.js is a standalone framework it also ships as a custom Cordova platform. This means there is an “exec” implementation for Tabris.js applications. The cool thing is that as a result nearly all Cordova plugins work out of the box with Tabris.js apps.

Building

Apache Cordova comes with a very handy tool known as the Cordova CLI (Command Line Interface). It provides a very convenient way to build your applications as .ipa, .apk and others. The CLI also provides Scaffolding, Plugin and Platform Management. This means you will “install” a Cordova Platform using the CLI when developing an app. Because Tabris.js ships as a Cordova Platform you can use the standard Cordova CLI to create, manage and build your application exactly the same way you would do it with any other Cordova app.

Branding

To brand an app Cordova provides the “config.xml“. This file contains the application’s configuration like ids, icons, splash screens and more. Tabris.js apps also make use of the config.xml. As a result you can configure a Tabris.js app the same way you would configure a Cordova app.

Conclusion

As you can see Tabris.js and Apache Cordova do not compete with each other. Instead they are filling each other’s gap. You can put it this way:

  • Tabris.js provides a native UI for Cordova applications
  • Cordova provides plugins and the CLI to Tabris.js applications

To get more details read about Cordova plugins, online build and local Cordova CLI build in Tabris.js docs. You need to get invited to access it. So, don’t hesitate and request an invite try Tabris.js. It’s free!

5 Comments
  • gavin
    Posted at 22:51, 2015-05-06

    How does Tabris.js compare to NativeScript and React Native?

    • Gosia Mitros
      Posted at 14:59, 2015-05-07

      In Tabris.js JavaScript is loaded dynamically so you can have a quick develop / deploy cycle, (test your app instantly on your device via the Developer App). You can integrate Cordova plugins to access native APIs, and we made it possible to build apps directly from GitHub repos.
      Also React Native requires you to use Xcode while with Tabris.js you don’t have to use a Mac to develop for iOS.

  • gavin
    Posted at 22:55, 2015-05-06

    Do you have thoughts on this? manifoldjs.com

    • Gosia Mitros
      Posted at 15:03, 2015-05-07

      Not familiar with ManifoldJS, but it seems to be just for web apps and heavily relying on W3C standards. It is also not specifically for mobile as it includes ChromeOS and Windows.

  • Oscar
    Posted at 04:26, 2015-05-28

    Absolutely interested to see an exhaustive matrix-based comparison between Tabris.js and Telerik’s NativeScript. This will help us evaluate and decide between the two on features, performance, package size and other relevant factors you might care to include.

    I hope Holger will be able to find time soon for this.