Date Archives July 2018

Frameworks supporting to develop cross-platform mobile apps

cross-platform-app

Recently, multiple frameworks support developing cross-platform mobile apps. This means developers can reuse the written code on different platforms using these frameworks, and it helps to reduce costs significantly. On this post, I will talk about the differences between these popular frameworks.

Four popular frameworks

There are four popular frameworks which are Flutter, Xamarin, ReactNative, and Titanium. For easier understanding, I drew a comparison table.Screen Shot 2018-07-01 at 2.51.05 PMXamarin, ReactNative and Titanium are similar but using different languages. Flutter is the latest framework from Google, and its key feature is providing full UI stack implementation without using native UI components. This means UIs will be exactly the same on different platforms. Other three frameworks link with original framework, and that means UIs will be slightly different on different platforms. Also, Flutter is fast and smooth because of no need for linking with original frameworks.

Integrating with third party libraries

Class-form supporting frameworks usually have issues with integrating third-party libraries. Complex apps use multiple third-party libraries, and this limitation is critical. However, Flutter supports linking Flutter APIs with third-party libraries, and those codes using third-party libraries should be written in specific languages of the libraries. That means these codes cannot be reused across other platforms.

Common misunderstanding

A lot of people get confused with characteristics of ReactNative, Titanium, Ionic, PhoneGap and Cordova. Even though they all use JavaScript, they are different. ReactNative and Titanium are frameworks for developing cross-platforms and link JavaScript with original frameworks. They do not use WebView. However, Ionic,PhoneGap and Cordova use WebView and also have native source codes. These are called hybrid apps.

Ionic, PhoneGap and Cordova are sometimes called frameworks for class-platform because they use html, css and JavaScript which are class-platform.

 

 

Types of apps and frameworks

Screen Shot 2018-06-30 at 7.45.44 PM
Native Apps are built with native APIs from specific platform such as IOS, Android, and BlackBerry.

  • Pros
    • High performance.
    • Supports push notification and full device APIs.
    • Interactive and intuitive.
  • Cons
    • Platform dependent. Developer should work with different codebase for different platform.
    • Hard to maintain.
    • Expensive developing cost.
  • Frameworks that support cross-platform

 

Web Apps use html, css and java scripts and can be accessed via a web browser over a network such as chrome and safari.

  • Pros
    • Low developing cost.
    • Easy to build and maintain.
    • Cross-platform because it is accessed through internet browser.
  • Cons
    • Performance issues such as lagging.
    • Less interactive and less intuitive.
    • Limitations of device utilities such as bluetooth, NFC, camera, biometrics and sensors.
    • No push notification.

 

Progressive Web Apps are advanced version of Web Apps. These apps support push notification and offline functionality. This support is important to keep people using your app after initial usage. Still access through internet browsers. 

 

HybridApps are built with html, css, and java scripts and run inside WebView. Also, they have native source codes. These apps cover limitations of web apps. There are multiple frameworks that support to build hybrid apps(e.g. PhoneGap, Ionic, Cordova).

  • Pros
    • Support push notification and have access to device utilities using APIs.
    • No browser needed.
    • Faster development than native apps.
  • Cons
    • Still have performance issues.
    • More expensive than web apps.