To build an app for a particular platform, you need to use toolkits provided by that platform’s creator (Apple or Google, for example). Apps built this way — native apps — can take full advantage of the platform’s features, and they can be distributed using the app store.
However, to launch on another platform you need to start over, using that platform’s toolkit.
An alternative is a web app — a web site that offers rich user interaction, just like an app. Built using web technologies like HTML, web apps are accessed using a web browser. You can reach every platform by building just one app!
The downside: web apps can’t access all of a platform’s functionality, like using Bluetooth or running in the background.
Meet their love child: the hybrid app.
This is a web app hiding inside of a native wrapper — basically a tiny browser that only ever shows one web app.
Hybrid frameworks like Cordova even offer toolkits that let hybrid apps access many native platform functions.
You write the code just once, but the resulting app can be distributed using the app store on multiple platforms.