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?
- 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
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.
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
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.
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.
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.