Web app or native application ? What is the best ?

What is the difference between a "native Application" and a "Web app"?

Native application: The native application is a mobile application that is downloaded (for example on the App Store or the Play Store) and then installed on its smartphone or on its tablet, like a software on its computer . That is, each manufacturer has its own programming language:
For iPhone and iPad, the programming language is called Objective-C;
For all Android and BlackBerry devices, the programming language is called Java;
For Windows Phones, the programming language is called C #.
These languages ​​use the basic layers of the smartphone or the tablet more simply to the functionalities for example the GPS, the accelerometer ...
Web app: The Web app is neither more nor less than a website created exclusively for mobile devices, but be careful not to confuse Web app and website Responsive. The Web app is accessible only via mobile browsers. The programming languages ​​are HTML5, CSS3 and JS (JavaScript).
Installation and upgrade

Native application: As mentioned above, a native application must be downloaded and installed on the device. When an application update is performed by the developer, the user must manually update the application to keep the application in question up to date. This can cause a multitude of files on its mobile. When an application is installed, a shortcut icon is created on the "Desktop" which allows the quick launch.
Web app: A Web app is simply an Internet site that is consulted from its smartphone or tablet, so there is no installation to perform and the updates are automatic, because every page change or the Web app is reloaded. The updates will be transparent for users.
The user experience

There is some difference on the user experience between a native application and a Web app.
Native application: This type of application will be faster and smooth and will run full screen unlike the Web app. In addition, the native application can use the features of the phone or tablet such as GPS, accelerometer, camera, or even the gyroscope (to detect the movements of the user). This type of application will also be able to use the system of notifications "Push" that everyone knows.
Web app: You have to make the difference between a website and a web app. The user will see your Web app with the same design as a native application, with a mobile menu, animations, but with the elements of your mobile browser (address bar, navigation arrows ...). When developing a Web app, it is necessary to optimize the rendering of the images and the weight of the pages so as not to make the user wait too long, because you must know that the throughput on the telephone network (even if they promise us incredible speeds), we are far from ADSL speed.