Native versus hybrid versus mobile websites

As you may already be aware, there are three ways to develop a mobile device compatible application: native, hybrid, or mobile website.

Native apps are coded in a programming language specific to a platform, namely, Objective C for iOS, Java for Android, and so on. Native applications run faster, have access to all device APIs and features, and provide a better user experience. Since native apps are built for a particular platform, the entire application needs to be rewritten if a native application needs to run on another platform. This will create code duplication, maintenance headache, budget increase, and the need to have multiple development teams (specializing in a certain platform) working on the same business rules. Typically, games and applications which require high performance are developed as pure native apps.

Hybrid apps are written using pure web technologies (such as CSS, HTML, and JavaScript) and they run on the device in a native container using the device's browser engine. Hybrid apps are usually packaged using tools such as PhoneGap, which helps the app to access device-specific APIs and hardware features. WebKit rendering engine is used in platforms such as iOS, Android, and Blackberry to render the web-based script/code to be displayed in a web view control of the native platform. Since Hybrid apps are created using a native app shell, they can be distributed using app stores too. Icenium by Telerik is a cloud-based, all-in-one development environment to package, test, and deploy hybrid applications. PhoneGap is another commonly used tool for packaging web apps for deployment on multiple mobile platforms.

Mobile websites are accessed using a URL and run in the mobile device's browser. They can be developed using server-side technologies, such as ASP.NET and PHP, and can be deployed and updated without any approval process from an app store. If the mobile website is written using pure web technologies (HTML, CSS, and JavaScript) or using frameworks based on them, such as jQuery, Kendo UI, and jQuery Mobile, mobile websites can be packaged to be installed as a hybrid application without much effort. A major drawback of mobile websites is that only device features that are exposed through the browser can be accessed, and this makes a mobile website suitable for content-based applications. There is no single solution which is suitable for all the scenarios. Selection of a methodology will depend on a number of factors, such as the skill sets you have, budget, time lines, and update frequency.

Kendo UI Mobile is an ideal platform for developing hybrid apps and mobile websites. During the course of this book, we will create a Movie Tickets application using Kendo UI Mobile which will be treated as a mobile website initially and then, towards the end of the book, it will be packaged using PhoneGap as a mobile app and deployed to Android as well as the iOS devices.