Tuesday, 19 April 2016

Hybrid and Native Apps ?


The moment you consider investing in a mobile app, you’re immediately faced with a barrage of terminology. What’s the difference between iOS and Android? What are native, hybrid and web apps? More importantly, which is most appropriate for your and your app?

Native Apps

Native apps are what typically springs to mind when you think of an app. You download them from the App Store or Google Play, they sit within your device’s applications and you launch them by tapping their icon.

Developing Native Apps

Each mobile platform offers developers their own development tools, interface elements and standardised SDK. This should enable any professional developer to develop a native app relatively easily.
There are a number of advantages to writing apps in this way:
  They offer the fastest, most reliable and most responsive experience to users.
  They can tap into the wider functionality of the device; including the camera, microphone, compass, accelerometer and swipe gestures.
  Publishers can make use of push-notifications, alerting users every time a new piece of content is published or when their attention is required. This is a key method of engagement. You get the opportunity to continually bring your audience back for more.
  Users spend time on apps. The popularity of apps has increased enormously and is continuing to rise.

It’s not just about access to core device capabilities though, native apps, when well designed, respect the design patterns and standards of each platform. It goes beyond a left-aligned header on Android vs a center-aligned header on iOS, there’s hundreds of small differences in the design of user interactions on each platform. Taking them all into account means designing apps that are intuitive to use and play well with the rest of that platform’s ecosystem. Overall, going for native apps helps you create apps that are designed to delight your users.
The main downside of a native app is that it will not work with other kinds of devices. If you write an app in Objective-C for iOS, it’s not going to run on Android without being completely re-written in Java. When building for multiple platforms, developing a native app therefore can be quite expensive (when done from scratch), as it will require you to build and maintain multiple, separate versions of your app. It’s also common for developers to specialise in one platform, so often you’ll have to find different coders for each platform you want your app to be available for.
If your budget allows it, native apps are the ideal, offering the best user experience. When building from scratch and when multi-platform support is key, then be aware this can also be the most costly option.
What are Hybrid Apps?

Somewhere between native and web apps you’ll find hybrid apps. They are usually quicker to build (and thus cheaper) than native apps, but a step-up from what you can expect out of browser-based web apps. Is the hybrid app the best of both worlds?

The bulk of the app is built using cross-compatible web technologies, such as HTML5, CSS and Javascript — the same languages used to write web apps. Some native code is used however to allow the app to access the wider functionality of the device and produce a more refined user experience. For native apps, instead only native code is used. The advantage of this approach is obvious: only a portion of native code has to be re-written to make the app work on the different kinds of devices available.

An advantage that hybrid apps have over native is that it’s faster and easier to develop. It’s also easier to maintain and you can change platforms. The app itself will not be as fast as a native app as it still depends on the browser speed.

Getting your hybrid app to run appropriately on each platform generally takes substantial work. In some situations, the total cost might become comparable to that of fully native apps, rendering the cost benefits negligible. It all depends on how close you want to get to the “native user experience” or how simple your app is.

When the user accesses your web content online through a hybrid app, performance will be sluggish when compared with a native app.

Still, there’s one big advantage in hybrid apps.  Being built on one single core, you can add functionality and have multiple versions of the app all benefit from it. On the contrary, with native apps, for every new functionality you want to introduce, the feature will have to be replicated on each platform