Some of the terminology here is used in different ways by different people. This is how I use it, but since it isn’t industry standard, you might see these terms used in different ways.
[Edit: I’ve added some more clarification here: Different Types of Mobile App - Part 2 ].
Fully native app
- Developed using Swift (or Objective-C) for iOS, and Kotlin (or Java) for Android.
- Released through the app stores.
- Has a separate code base for iOS and Android.
Cross-platform native app
- Developed using a framework such as React Native, Flutter or Xamarin.
- Compiles to two separate, native apps.
- Has single code base (but often needs separate logic for iOS and Android).
Web app
- Developed using standard web technologies to run in a browser on the device.
- Not available through the app stores.
- Can be saved to an icon on the home screen by the user.
Hybrid app
- A native app shell that wraps a web app.
- Can be downloaded through the stores.
Native with web views
- An app where a large part of the app is native, but some elements are wrapped web pages.
- This is common for content such as news articles.
Cross-platform hybrid app
- Developed as a single codebase using a framework such as Cordova.
- Compiles to two native app shells, which wrap web apps.