Native app development means using the native programming languages of the devices to build the app. For iPhone, the native programming language is Objective C and the new Swift. For Android, the native programming language is Java.
Hybrid apps are developed using web technologies: HTML5, CSS and JavaScript, then put inside a native container such Adobe PhoneGap. These native containers run the web application code and package it into an app.
Both technologies: hybrid (HTML5, CSS and Javascript) and native can creates apps that are downloadable for iPhone and Android, at Google Play or apple iTunes app Store.
Most mobile interfaces can be implemented using either native app or hybrid app development technologies; however, there is more flexibility in designing these interfaces using hybrid / PhoneGap app development technology. Hybrid app development uses HTML5 and CSS3 that have far superior capabilities when designing interfaces with many form factors and highly dynamic content.
Native apps provide better performance, responsive and fluid experience and a user can navigate and interact with the app without noticing any loading delays.
Native apps are developed using native app Design Tools that are provided for the purpose of building the mobile apps for the platform, so implementing many native features and new technologies are easily adoptable and built into the native mobile app Environment Tools that are provided for each platform
Summary
Here are different scenarios for building apps in hybrid or native:
Hybrid / PhoneGap:
For budgetary limitation, hybrid app may be a better choice.
If there is a need to quickly develop the app, hybrid app may be a better choice.
If the app is simple, does not have large animations, does not have lots of clicks and does not require lots of native user interaction, hybrid will be a better choice.
Hybrid / PhoneGap:
If the requirement is to create the best user experience, native development is a better choice.
For companies with sufficient allocated budget that are planning to build and maintain large app projects and do not want to worry about limitations for implementing new technologies, and support, native is a better choice.