Different Types of Apps
You might be confused about the specific differences between apps, so I've put together these definitions to help clarify.
Native App - Native apps are apps built directly in the device's specific language. For instance, iPhone's is Objective-C, Android is Java, Windows Phone is C#.
Web App - A web app is an app built with HTML5, CSS3, and JavaScript, that works on any device. Usually these are accompanied by a responsive design.
Hybrid App - A web app that has the look and feel of a native app but is still built with HTML/CSS/JS.
Compiled App - A compiled app is a web or hybrid app that you've ran through PhoneGap's Build service to create "native" apps.
I made up the last one, but I felt there needed to be some sort of way to differentiate non-native apps from native apps that were built by running a JS app through a service.
Written by Cory Simmons
Related protips
2 Responses
Why would you make a distinction between "Web App" and "Hybrid App" if they're technically the same? I don't see a clear line between them, the "look and feel" is a subjective matter. What would you call Gmail web interface? A Web App or a Hybrid App? What apps would you call Web Apps but not Hybrid Apps?
I would call a "Hybrid App" what you call a "Compiled App" and eliminate the latter. IMHO it makes more sense cause then it justifies the word "hybrid" - those apps are hybrid because they're put into a native wrapper for specific platform(s) that can also provide extended access to OS functionality but the app itself (i.e. not the wrapper) is still written using open web technologies - HTML/CSS/JS.
@dpashkevich I don't think the differences between something that looks like Bootstrap and something that looks like a native app (http://moobilejs.com/demos/latest/ios/moobile-simulator/index.html).
From a visual standpoint, I'd call the GMail UI a web app.
TBH I see your point, but in day-to-day office use, it just became too confusing to refer to everything as a native, web, or hybrid app. I suppose because our workflow revolved around PhoneGapping everything and there wasn't a clear way to say, "Hey, this is the PhoneGap'd version and this is the pre-compiled version."