hybrid apps - GarthDB/phonegap-day-workshop-beginner GitHub Wiki

What are Hybrid Apps?

Hybrid apps are a fusion of native and web technology.

Table of Contents

  1. Native Applications
  2. Web Applications
  3. Hybrid Applications

Hybrid apps are a combination of two different technologies:

  • Native platforms
  • Web platform

In order to understand how hybrid apps work and why they can be a good choice for developers, it's helpful to first understand these two platforms.

Native Applications

Native applications are created for a specific platform.

Native applications are created for a specific platform, such as iOS, Android, or Windows Phone. Each platform offers their own platform SDK, tooling, and programming languages. For example, iOS offers the Xcode SDK and the Objective-C programming language; Android offers the Eclipse SDK and Java programming language; and Windows Phone offers the Visual Studio SDK and .NET programming languages.

Native applications have their advantages.

Native applications have their advantages. Since native apps are built with the recommended tools, they can match the standard application look and feel, such as buttons and toolbars. They also perform well because they are written with the native language and compiled into an optimized code.

Native applications have their disadvantages.

Native applications are not without their disadvantages. For developers, it's time consuming to learn each platform environment: SDK, tooling, and languages. When a developer needs to create the same app on multiple platforms, they must learn each platform environment before recreating the same app. Few people enjoy doing the same thing two or more times!

Web Applications

Web applications are created with standard web technologies.

Web applications are created with standard web technologies, such as HTML, CSS, and JavaScript. These applications are hosted on a web server and available through the web browser.

Web applications have their advantages.

Web applications have their own advantages. Most developers understand web technologies and can write web apps, so there is low learning curve. Additionally, web applications work on all platforms, regardless of whether you are accessing it from Windows, OS X, Linux, mobile, or a tablet.

Web applications have their disadvantages.

Web applications are not without their own disadvantages. They do not perform as well, since they run within a browser, rather than compiled for the native platform. Additionally, they lack rich functionality because the web is a limited environment. On the web, you typically cannot access the file system, camera, or push notifications, although some of this is changing.

Hybrid Applications

Hybrid Applications marry the worlds of native and web.

A hybrid application is a native application.

A hybrid application is a native application. It's built with the platform's SDK, tooling, and programming language. This allows a hybrid app to access the native features, such as the file system and push notifications.

A hybrid application is a web application.

A hybrid application is also a web application. The actual app is still written with web technology. However, unlike a web application that is hosted on a server, a hybrid application will bundle the HTML, JavaScript, and CSS files into the native app. You can still access the web, but it's not required. This is accomplished by compiling a window-less browser into the native application. When the application is opened, the window-less browser immediately displays your web application.

Many people think that hybrid applications are the best of both worlds. They expose the power of native with the simplicity and portability of the web.