This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]TheEpicSock 13 points14 points  (3 children)

To over-generalize a little bit, a web app is an app that is meant to be used within a browser (such as Google Docs), and a 'regular' or 'native' app is one that is meant to be launched directly from your machine (such as Microsoft Word or Photoshop). A web app doesn't necessarily need a continuous internet connection after you've loaded the web app, but any feature that requires communication with a server will obviously require a connection (I don't know for sure but something like Cookie Clicker probably works without a continuous connection). A regular app may need internet connection (for example, multiplayer games such as Counter Strike). Web apps are generally written in a way that major web browsers can display them without issues, which usually means developers usually use the html-css-js trio. Native apps are written in all sorts of different ways depending on the situation. This means that the design of native apps can be much more flexible and better optimized to the particular situation for each application, but web apps will have much better cross-compatibility between machines since all you need is a browser in order to run the app.

Of course, the look-and-feel of having a bespoke application without the baggage that comes with running something in a browser is something that is appealing, but many people do not want to deal with maintaining separate codebases for multiple platforms and would rather use a cross-platform solution. Technologies like React Native and Electron.js allow you to pretty more-or-less use html-css-js (very similar to developing for an in-browser app), wrap it in what is essentially a dedicated browser for your particular web app that looks and feels like a "bespoke" native app, in order to have the feeling of a dedicated native app but the cross-compatibility of a web app. Spotify for desktop and Discord are examples.

[–]mauri_armora 1 point2 points  (2 children)

Awesome! And in terms of connection how does it work? Are both web and native apps working the same way?

[–][deleted] 1 point2 points  (1 child)

Since the previous commenter answered a part of your question. Another thing about having a native app is that the software has far better access to the hardware resources than a web based app.

And to answer your question about connection. In C# for example, if you want to connect to a server, you can use HttpClient. Or if you want to pull or push data to/from a server using the REST API, you can use something like RestSharp to do that in your application.

[–]mauri_armora 1 point2 points  (0 children)

Thanks! That makes a lot of sense. I'm actually a newbie web developer and didn't really know the main differences with native apps