April 12, 2016 by Samina Momin

From the past few years penetration of mobiles has gone up exponentially. The Growth of mobile consumers has led to growth of multiple carriers, devices and platforms. The opportunity for developers (businesses and individuals) in the marketplace is the distribution mechanism to large users across all geographies. In the world of mobile applications, choosing the right development approach is a big challenge – the development approach which saves time, resource and money.

Is Hybrid Platform the best approach for the customers and developers? In this blog, we shall look at:

The need for hybrid applications

Ability of hybrid platforms to serve application development with their benefits and disadvantages

Popular hybrid platforms

The Need for hybrid application development

In the early days of application development, there used to be limited number of devices running on platforms with specific languages. But nowadays building an application for each platform includes additional development and maintenance costs, as developers have to account for large number of devices running on different platforms like Android, iOS, Windows phone etc. Hybrid application development is not a ‘one size fits all’ concept; it’s about increasing the productivity while incurring minimal cost.

Let’s have a look at types of mobile applications in brief:

Native Application Development

Native applications are built to run on specific devices and OS. These applications have full device access and you can create complex UI using native framework support in respective language by platform vendor e.g. Android (Android SDKs – Java), iOS (XCode- Objective C or Swift), Windows Phone (Visual Studio – C#).These applications are distributed via store (App Store, Play store, Window market place and more) so you can directly reach to the end customers. However from business perspective, developers have to pay high costs while building native application. Developing native applications requires expertise in SDKs, languages for every platform and need to maintain code base for their respective platforms. Fixing a bug or adapting new feature is one of the big problems with native application development since it means working on each targetable platform code base which in turn slows down the rollout process. Games, Augmented reality are the best examples of native applications.

Web Application Development

Web applications are built and run on mobile browser. This requires developers with technical skills in HTML5, CSS3 and JavaScript to build mobile web app. Web applications are developed with single code base which reduces upgradation process. These applications are not distributed via the native stores and installed as web or packaged app on device. But web applications are not good choice for complex UI and applications with high device access. Business to enterprise, financial applications is the best examples of web application

Hybrid Application Development

Overcoming the limitations of native/web applications, It’s difficult in Hybrid application development to optimize software development process across platforms and minimizing cost of tools, maintenance and resources. Hybrid application development can be further divided into two parts – Hybrid mixed and Hybrid web application development.

Hybrid web applications are written in Html5/JavaScript/CSS3 and wrapped into native platform web container (e.g. Web-View in Android). Rather than running on mobile browser, hybrid web applications are downloaded and installed on device via market place like native application. Cordova, Sencha & Kony are the best hybrid web application development platforms.

Hybrid mixed applications is written in languages like C#, JavaScript. These applications are distributed via market place. If you want to develop native application which contains complex UI, high device access and targets multiple platforms and yet want all this in single code base, hybrid mixed native application is the best way to go. Xamarin is one of the best examples of hybrid platform.

How hybrid platforms serve application development

Before starting to develop any kind of mobile application, The big question is how to start and where to start?

Which development approaches suit your application [native/web/hybrid]?

Which is the best tool and platform for developing the application?

So here, let’s see how to choose development approach first.

Key factor of the mobile application Native Hybrid Mixed Hybrid Web Web Does your application haveomplex UI and require specialized interactions? Yes Yes No No Does your application have high platform specific features? Yes Yes Yes No Do you need your application distributed via app store? Yes Yes Yes No Do you need your application support multiple devices and OS? No Yes Yes Yes Do you frequently upgrade business logic of your application? No Yes Yes Yes Do you need your application support offline mode? Yes Yes Yes No

Over the years, developers are moving towards hybrid application development. Let’s have a look into Pros and Cons of using hybrid platforms.

Pros:

Single Code Base

Hybrid platforms provide feature to develop application on single code base and running across multiple platform.

Limited learning skill

While working with hybrid platforms, no new specialized skills are needed; we can use the skills which you already have in HTML5, JavaScript, CSS, C# etc.

Reduced development and maintenance cost

Since one is working with single codebase any future enhancements or bug fixes are easy. This directly reduces the development as well as maintenance cost and time.

Fast up-gradation

It is easy to make changes while working with single codebase. This further reduces time in up gradation process. As a result, developers can reach the market faster.

Support mobile to web

There is no context switching between languages. If you are targeting mobile, web and portable devices then using hybrid platforms provides the flexibility to use same code across multiple platforms. The business logic can be shared and can run across mobile platforms and web.

Cons:

Loss of platform specific UI and feature

If your application is having device specific feature, then it is a big challenge when working with hybrid platforms. If each platform has its own native UI component, the look and feel of native platforms is lost while working with hybrid platform due to commonalities that come along with hybrid platform.

Different tools

There are different tools and languages when you are working with hybrid platforms. If you are not familiar with IDE like visual studio then it might create a problem as some of the hybrid platforms have their own tools and IDE doesn’t support external tools. If application is going to support multiple devices, build should be unit tested with as many devices as possible and you need to take care of debugger and emulator whether they are supported by hybrid platforms or not. Some hybrid platforms support cloud testing while some do not e.g. Xamarin Test Cloud Service – Made mobile application testing easy. While some hybrid platform support plugin services to allow native device capabilities e.g. Cordova Plugins and Xamarin Plugins .

Lack of framework or new OS feature support

Some of the hybrid platforms do not support all devices specific UI and content frameworks native to devices and thus might lead to problems while upgrading application on new devices. If you want to support new devices and OS features then it might not possible to leverage new capabilities provided by OS upgrades quickly. While some of the hybrid platform support new features quickly e.g. Xamarin , Cordova support Android Marshmallow.

Impact on Performance

If performance is key concern for your application then hybrid is not a good approach for your application. Some platforms identify the target platform OS runtime and then render the UI component on screen which indirectly reduces the performance of the application.

Choosing a Hybrid Application Development Platform is a big challenge. Some of the hybrid platforms listed below

Platform Mobile Deployment Platform Programming Language Integrated Development Environment Emulator Support Tool Cost Xamarin Android, iOS, Window Phone C# Visual Studio 2005 / Xamarin Studio Yes Licenses available PhoneGap/Cordova Android, iPhone, Window Phone, Tizen,Blackberry,Symbian,Plam, Bada HTM5,CSS, JavaScript 3rd Party Tools 3rd Party Tools Free, Commercial license Sencha Android, iOS, Blackberry, Kindle, Bada HTML5,CSS, JavaScript Hybrid via native shell for each platform Yes Free Commercial license ,Paid OEM and embedded system license QT SDK Symbian, Android, iOS, MeeGo C++,QML Qt Creator Yes Free and commercial license Unity Android, iOS, Nokia Symbian C#,JavaScript, Boo and other .NET based languages Unity Editor/ Visual Studio/ MonoDevelop Remote used to simulate device interaction Free and commercial license

Conclusion:

Developers should consider several key factors before creating mobile application that delivers high quality and user experience. As we have seen in this blog each approach has its own strengths and drawbacks and choosing the right development approach depends on the business need and application goal.