About Venkata Kiran

Kiran is a product developer working in medical domain. He worked on creating scalable java batch applications and is currently working on developing cross platform mobile applications. His current interests include automated testing of mobile applications.

Native vs Mobile Web vs Hybrid applications

We have decided on developing a mobile application, but what type of application ?

There has been an ongoing debate with legitimate pros and cons of developing a Native app or a mobile web app or a Hybrid app.

What are the differences between these types of apps?

Native apps are built using the development tools and languages (XCode and Objective C for iOS apps, Eclipse, Android Studio and Java for Android, Visual Studio and C# for Windows) that the respective platforms support and so run only on their targeted platforms.

HTML5 apps are cross-platform mobile applications that run on multiple devices since they mostly run on browsers. Developers can write complex apps using standard web technologies HTML5, Javascript and CSS.

Hybrid apps are the applications that are developed using HTML5, javascript and css, but run with in webview container on the devices and so the applications are packaged natively and so has access to native API’s of the OS also.

Like in all language wars, there is no one answer for all the questions.

It depends on what your application is offering, what is the expectation of the users and what are your core development strengths.

Native Applications

Pro:

  • Native apps have the best performance and use the last available hardware resource to improve performance.
  • Applications will work in offline mode.
  • The apps are distributed through platforms App store providing better visibility to the prospective users.
  • Your application will have access to the latest API’s, releases on that platform.
  • The apps are built in languages the platform supports and so, has access to IDEs which provide the best tools to develop, debug the project fast. iOS app can be built in objective C on XCode which has all the tools to debug, design the interface, and check the performance using Instruments etc.
  • Linkedin is one example which shifted over to Native from HTML5.
  • And there is Facebook too, which took a U-turn.

Cons

  • You need huge budgets to support all the platforms that have considerable markets.  You will need to maintain multiple teams, one team per platform you want to support. So basically each team will replicate the same functionality in their platform.
  • App updates needs to be downloaded by users and so you end up maintain several versions of Apps on your web server if not properly designed.
  • Availability of developers for ramping up is another concern. When objective C suddenly revived after release of iPhones, there are not enough good developers ready.  May be the developers can be trained , but it is not feasible for small and medium head count companies and even in bigger companies where the training is feasible, the developers trained are not going to be at the same level of expertise they were on the technologies they are working on.

HTML 5 Mobile web app

Pro

  • HTML5 mobile app is similar to a normal web app, except that they are designed to work at smaller screens.
  • The distribution of these apps is very easy. You just deploy the web app on your web server and users access it from their browsers.
  • There are some very good mobile UI frameworks like JQuery Mobile, Sencha Touch and of course my favorite mgwt which provides several widgets for mobile.
  • These apps can probably reach out all platforms since they run on browsers and all the modern smart phones have a browser.
  • The development and testing of these apps is easier as they are similar to normal web apps where you have tooling support.

Cons

  • These apps don’t have access to the native functionality.
  • Performance doesn’t match with native apps.
  • These apps don’t work in offline. Actually works in offline mode, but that doesn’t match what native apps provide.

Hybrid Apps

Pro:

  • Hybrid apps are faster to develop since most of the development is done is web technologies which are cross platform and do very small amount of native coding, only when access to native layers is required. So only small portion of the code needs to be re-implemented for other platforms .This saves development time and cost and you can concentrate on developing new features rather than replicating the same features on each platform.
  • You are near to ‘Write Once, Run Anywhere’, the strategy that made Java such a dominant force.
  •  The tools for building Hybrid apps are not mature enough when compared to their counterparts on native apps. The situation is changing rapidly and soon there can be some good tools which support development of cross platform Hybrid apps.
  • These applications can be deployed in platform specific app stores.
  • Hybrid apps provide good and bad of both native apps and HTML5 web apps.
  • They can access the native layers.
  • These apps can work in offline mode.
  • Netflix is one cool example which runs the same code base against all the devices.
  • Gartner predicts by 2016 more than 50 % of the apps deployed will be Hybrid apps.

http://www.gartner.com/newsroom/id/2324917

Cons:

  • Hybrid apps, even though are packaged natively are not native apps. They execute on the platforms web engine, Webkit in case of Android and iOS which is another layer between the user and the application and so the performance can’t match the native apps.
  • Since Hybrid apps are normally built using standard web technologies, there will be huge pool of developers available for ramping up. This is not the case with native apps.

If you are building productivity apps , Utility apps or Enterprise apps, Hybrid apps are for you.

If you are building games or photos, videos related app then Native apps are the way to go.

If you are building apps which need to work in real time, which doesn’t need access to the native layer and is not performance stressed, then html5 mobile web apps are the way to go.

So the decision needs to be done based on what type of application you are building, what is the development cost and time that can be offered.
 

Reference: Native vs Mobile Web vs Hybrid applications from our JCG partner Venkata Kiran at the Coding square blog.

Do you want to know how to develop your skillset to become a Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

JPA Mini Book

Learn how to leverage the power of JPA in order to create robust and flexible Java applications. With this Mini Book, you will get introduced to JPA and smoothly transition to more advanced concepts.

JVM Troubleshooting Guide

The Java virtual machine is really the foundation of any Java EE platform. Learn how to master it with this advanced guide!

Given email address is already subscribed, thank you!
Oops. Something went wrong. Please try again later.
Please provide a valid email address.
Thank you, your sign-up request was successful! Please check your e-mail inbox.
Please complete the CAPTCHA.
Please fill in the required fields.

3 Responses to "Native vs Mobile Web vs Hybrid applications"

  1. joe says:

    I tend to disagree that you’ll need to hire a team of different developers for each platform since now, with tools like MonoTouch and MonoAndroid from Xamarin, it’s possible to have an abstract logic code for all your platforms (WP8,ANDROID, IOS)and still you get your API with this abstract C# code y just using these tools.

  2. There is always a big question should we build mobile apps in native code on every platform, or should we build them in cross-platform code, such as HTML5? There are many benefits and drawbacks using both native and Cross-platform in any given situation.

Leave a Reply


8 × = sixty four



Java Code Geeks and all content copyright © 2010-2014, Exelixis Media Ltd | Terms of Use | Privacy Policy | Contact
All trademarks and registered trademarks appearing on Java Code Geeks are the property of their respective owners.
Java is a trademark or registered trademark of Oracle Corporation in the United States and other countries.
Java Code Geeks is not connected to Oracle Corporation and is not sponsored by Oracle Corporation.
Do you want to know how to develop your skillset and become a ...
Java Rockstar?

Subscribe to our newsletter to start Rocking right now!

To get you started we give you two of our best selling eBooks for FREE!

Get ready to Rock!
You can download the complementary eBooks using the links below:
Close