Pretty soon in the development process of an app, a decision must be made on how to get an app into the hands of the people. This comes down to choosing between a native or web app format. A native app is what most often comes to mind when thinking of an app. It is made for a particular OS or device and downloaded from a store or marketplace. A web app is run through a web browser and can best be described as an interactive web page that simulates an app.
Code
This decision is made early on because the fundamental difference between the two is the code itself. A native app will use the code the device uses, such as Objective-C for iOS and Java for Android. As for web apps, they predictably use web page languages such as HTML, CSS, and JavaScript.
Optimization
The choice in format also affects how many options and tools the app can access. Downloading it allows for the app to access everything that device has to offer, from its camera to its motion sensors. Keeping the app on the web limits the user interface to basic gestures that any device can recognize. So, the format will depend on what controls and input the app requires.
Cost
Finally, what most people worry about, how much does it cost? To give away the ending, web apps tend to end up costing less. This is because of the simpler design of a web app and the specialization of native apps. To have an app reach as many people as possible, it needs to be available on as many platforms as possible. For native apps, this requires a different version for each system. Web apps can be accessed from any device with a web browser. The development time for web apps is also shorter because of the limitations of making such broadly accessible software. Having fewer choices in controls makes for easier development.
In short, think of a native app as specialized to a device and a web app is for more general use.