Skip to content

Hybrid mobile

Comparing different dev approaches

Cordova

Apache Cordova is an open-source mobile development framework. It allows you to use standard web technologies - HTML5, CSS3, and JavaScript for cross-platform development. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's capabilities such as sensors, data, network status, etc.

cordova architechture

The Cordova-enabled WebView may provide the application with its entire user interface. On some platforms, it can also be a component within a larger, hybrid application that mixes the WebView with native application components.

Web app is the part where your application code resides. The application itself is implemented as a web page, by default a local file named index.html, that references CSS, JavaScript, images, media files, or other resources are necessary for it to run. The app executes in a WebView within the native application wrapper, which you distribute to app stores.

Plugins are an integral part of the Cordova ecosystem. They provide an interface for Cordova and native components to communicate with each other and bindings to standard device APIs. This enables you to invoke native code from JavaScript.

Apache Cordova project maintains a set of plugins called the Core Plugins. These core plugins provide your application to access device capabilities such as battery, camera, contacts, etc.

In addition to the core plugins, there are several third-party plugins which provide additional bindings to features not necessarily available on all platforms.

More details: https://cordova.apache.org/


PhoneGap

PhoneGap is a distribution of Apache Cordova. To keep it open-source always and follow standards, PhoneGap codebase was handed over to Apache. PhoneGap and Cordova are basicly the same cross-platform frameworks with different names. PhoneGap is powered by apache Cordova.

phonegap and cordova

PhoneGap is Cordova plus some extra Adobe stuff. An example of this paid service by Adobe is PhoneGap Build Service. It is a service provided by Adobe allowing developers to build apps in the cloud, without installing an additional local SDK.

More details: http://docs.phonegap.com/


Ionic

The Ionic Framework is a complete open-source SDK for hybrid mobile app development. It provides tools and services for developing hybrid mobile apps using Web technologies like CSS, HTML5, and Sass. Apps can be built with these Web technologies and then distributed through native app stores to be installed on devices by leveraging Cordova.

Ionic was based on a popular framework (Angular) and provided a way to access native capabilities using Apache Cordova. On top of that, it provided themes so the buttons and items look native to the platform without any code change. In a nutshell, Ionic apps run on the mobile browser; but the themes and the ability to access native hardware such the camera, make them look like native applications.

Ionic gained tremendous popularity since its launch for its simplicity. Developers could develop applications for iOS and Android, with a native look using JavaScript thanks to the power of Ionic Themes, Angular and Cordova.

!Ionic developmnet

Ionic 4 brings huge improvements to the platform. Ionic has transition from a mobile Hybrid framework to an universal framework: You can build hybrid, web and desktop apps. Besides the amazing Angular 7 integration now you get support for React and Vue.js.

Ionic now fully embraces Progressive Web Apps. Think about PWAs like web apps which add basic native features like home screen icon, camera access, offline mode, etc; into your smartphone.

More details: https://ionicframework.com/


Downsides of hybrid apps

Everything comes with a price. Even though you get lots of benefits, there are a few things you loose if you choose hybrid approach.

  • The Look - Not able to make your app look 100% native on all platforms
  • Lack of easy debugging of packaged apps
  • It is easier to make a high performing app with native components.
  • The web was originally built for web pages, not the complex apps we produce today.
  • Users spend the majority of their time using only a few apps, and they expect any new app they try to be as polished as Facebook, YouTube, or Uber.
  • Poorer user experience with slower animations, lack of platform-specific gesture recognition, keyboard misbehaviour, etc.

Read more