Wednesday, October 29, 2014

Is Hybrid apps the “future” of Mobile Development?

Is Hybrid apps the “future” of Mobile Development?

There has been a lot of discussions are happening regarding mobile application development using native approach and Hybrid approach.As Gartner(www.gartner.com),the analysts predicted that by 2016 more than 50 percent of mobile applications will be hybrid.
So its time to clearly analyze the pros and cons of hybrid app development and it advantage over native application development,there by enabling the mobile app owners to take a quick decision,whether to go with native approach or hybrid approach.

What is a hybrid mobile app?

Hybrid mobile apps run inside the native browser container and leverage the device's browser engine to render the HTML and process the JavaScript Locally.No matter which is the target device ,it can be iOS Android Blackberry etc , the app developed using HTML+ Javascript will work on all the devices .So by following this approach following are the advantages

  • Faster time to market
  • Low development cost.Multi-platform applications can be developed in a short period of time
  • Maintenance cost are usually lower
  • HTML5 developers are typically easier to find and less expensive than native developers
  • Web app development knowledge is enough to develop apps
  • A single source code is needed to maintain for multiplatform apps

A lot of helper frameworks are available currently available to support hybrid mobile apps development .Some of them are

Sencha-Touch

        An HTML 5 based framework which provide a lot of mobile specific components and methods.To develop apps using Sencha touch some knowledge about the standards of Ext Js is necessary as it is not following pure Javascript coding styles.So the learning curve here is a bit steep.Sencha touch follows a class system ,so it is easy to manage the code.

Jquery Mobile

        Jquery mobile is also an HTML 5 based user interface system designed to make responsive websites and apps that are accessible on all smartphones,tablet and desktop devices.Compared to sencha touch Jquery provides less number of components and UI is wrapped with a custom jQuery Mobile styles, just like jQuery UI. Page transitions and animations don’t feel ‘native’ enough and can be sluggish sometimes.

Ionic-Angular JS

        This is the youngest among the above two frameworks.Ionic provides a set of Angular directives (custom HTML elements) for it’s own components, making it as easy to use the widgets as writing a line of HTML code. In addition to directives, Ionic uses Angular’s touch recognizers, view animation logic, HTML sanitation, and asynchronous communication.This is not an object oriented javascript framework like sencha touch.This can be observed as a weakness or a strength,depending on the level of simplicity requested on the JavaScript front end.

All the above frameworks provide a lot of UI related component and APIs ,but none of these framworks provide any ways to access native device directories or native features like Camera,Photo Library etc.
Cordova(Phonegap) is using to solve this issue

Cordova (Phonegap)

        Apache cordova is a set of device APIs that allow a mobile app developer to access native device function such as camera,accelerometer etc.Combined with Jquery Mobile ,Sencha touch ,Ionic etc, this allows a smartphone app to be developed with just HTML,CSS and JavaScript.

Titanium Appcelerator

        Compared to other hybrid frameworks ,the concept here is a bit different.All the other frameworks are using the devices basic web-view to render the app pages,but here the code written using the Titanium APIs will call the corresponding methods in native SDK .For example to add a button to a page titanium SDK uses a class named Titanium.UI.Button.On compilation this class will access the corresponding UIButton class in iOS Sdk if the app is for iOS or will access the Button class in Android.This approach gives a fully native appearance to the app as it is not using the Web-view and will work just like a native app.But here also a lot of limitations are there.The more complex your applications become, the more often you’ll have to deal with, on the one hand technical issues (random crashes, weird behaviors, annoying bugs, etc.), on the other hand a greater effort (code organization, MVC separation, multi-device support, multi-platform support, code readability, etc.

Drawbacks

Now coming to the drawbacks of hybrid app development .

  • Potential performance issues
  • Some features may not work in all mobile platforms (for example : webworkers which is commonly using in web based apps is not available in lower versions of Android,pdf support is not available in android browsers,but it is available in iOS browsers.)
  • Native frameworks can provide advanced functionality that cannot always be easily replicated on the HTML5/CSS/JS side
  • UI design will become difficult if need to handle multiple sized devices.
  • Privacy is not guaranteed in hybrid apps.

Summary

If the user is expecting a high performance app with rich UI and animations then ,surely Hybrid is not a solution.But for simple multi-platform apps with limited number of screens and less animations then Hybrid will be a better option.




6 comments:

  1. Thanks for sharing hybrid mobile app this app is helpful for every one you can post more post for this topic...

    http://www.appliconic.com/

    ReplyDelete
  2. This comment has been removed by the author.

    ReplyDelete
  3. Well you are very right Sreelal, I am currently working with Affordable Web Design or Software Development - Hire Programmers , and now in advance level I am thinking to do app development , Very nice post , I really appreciate this one !

    ReplyDelete
  4. Thanks your blog is awesome.
    Videocon offers one of the best prepaid service in Punjab.

    ReplyDelete
  5. wonderfull blog keep posting.
    < a href="https://www.vcubesoftsolutions.com/python-full-stack-in-kphb/">PYTHON FULL STACK IN KPHB

    ReplyDelete