I’ve been using wefwef WebApps to browse the fediverse and am curious to understand how it works. I do not have knowledge deep knowledge about coding or programming.
Native apps are apps written in the native language of the platform of choice. It would be Java for Android and swift for IOS. Native apps can request lower level access to your system than a webapp.
Now, a webapp is a basically a website which can run like a native app with similar features and is full screen unlike a website. The language is javascript for the front-end and the backend(server) handles some communication. So, webapps can behave and act like native apps but they are not native and won’t have the same lower level access to your system. Think access to storage, accessibility services, settings, etc. Webapps can also be slower compared to native apps which is prominent in non-flagship smartphones.
Adding onto limecool’s response, both iOS and Android are able to use them. I’m using wefwef right now on my iPhone. It looks like any other app on my phone and acts a lot like it, too. (As a former Apollo user, I can only commend the wefwef team for a truly spectacular replication of Apollo’s sleek user interface. The similarities are truly striking.)
So they’re kind of like a glorified web bookmarks, but they have some capability for managing their own storage (note when you’re prompted to “update” wefwef) rather than being simple links. As an iPhone user, another notable difference comes when you’re getting a new phone. These days, all your apps redownload whenever you restore from a backup, which of course takes time. But your webapps? They’re ready to go right away.
Wefwef does stuff I didn’t even know was possible on a webapp. The gestures work very nicely, it’s responsive, etc etc etc.
Really shows how low the bar has been set for other websites.
A regular app is an executable you install on a machine. Typically people associate “app” with specifically mobile apps, but technically a program you install on Windows can be called an app, but most people differentiate those by calling them a “program”
A web app is just a name people use for a website that looks and behaves in an “applike” way.
Like you wouldn’t call a blog a web app because blogging is just content you consume.
But if you make a website that “does” something, like a tool (for example most of google’s tools you can use like Google Docs, Google Sheets, etc), folks like to call that stuff a “web app”, because it sort of serves the same purpose of what an app installed on your machine would do but it runs inside your browser on the internet, instead of as an installed executable.
You also then get further specific to what is called the “Single Page Web App”, or SWP. These are web apps that also are notable for the fact they pretty much are just 1 single page with all their functionality in 1 place, no need to navigate to another url triggering a page reload, the entire web app exists at 1 single endpoint and all of its “pages” are within its own logic.
For example if you have a web app where it has “tabs” or “modals” that you can sift through within the webapp, instead of needing to load an entire new url+web page to view em, thats a SWP.
I would also like to add that there are PWAs (Progressive Web Apps).
PWAs can be installed on most devices and share even more similarities with native apps (Native app = usually installed through app store). For example installed PWAs can be viewed in Fullscreen or work offline, even though they are still technically a webpage.
So the advantage here is that you don’t need to use an App Store to have an app installed on your phone.
And the main disadvantage is that the PWA can’t access most of the device’s APIs, that you could access through a native app. This means worse performance usually, no support for theming beyond dark/light (like Material You), no good access to on-device databases etc. This is also the reason why most apps aren’t PWAs.
Although that is changing slowly. PWAs are starting to get more and more support for APIs on the devices. For example if you install te Microsoft teams app, afaik it’s also just a web app, but bundled with all the rest so that it seems like a normal app.
PWA’s can even have hardware GPU support nowadays.
Regarding Teams, you mean it’s a web app on mobile? I thought the MS Teams Windows application was written in that API that uses insane amounts of resources for what it does (although it does work, so I’m not necessarily criticizing using a library that works).
iOS has them too. Really it’s just saving a bookmark to your home screen that opens in a browser with a stripped down UI. I use Memmy for browsing Lemmy but I have wefwef saved to play with too. It’s pretty much indistinguishable from a native app. The only give away is how page elements load. It’s just slightly different.
Also lack of haptics, if you’re used to them
Haptics are possible if you aren’t using iOS. https://developer.mozilla.org/en-US/docs/Web/API/Navigator/vibrate
Nowadays there is not much difference between traditional applications and so called, web apps. A traditional application runs in a terminal and optionally provides a GUI, a web app runs in a browser. They both can have low-level access to hardware like USB ports and GPU.
Thank you all so much for your detailed responses. I understand much better now.
I think webapps are accessed solely through the browser. It doesn’t make sense to differ them based on ‘low level access.’ I have an app that is essentially just HTTP requests to a RESTful server. I have access to all the features any other app has, provided I am granted the proper permissions. I still only use the app to communicate with a webserver via HTTP.
It’s why we have someone saying “wefwef does things I didn’t know a webapp could!” Probably because it’s not a webapp. It’s just an app, lol.
It also has nothing to do with writing an app in a platform’s “native language.” Jesus. Stop upvoting that guy, lol.
Wefwef is a web app. Its a PWA - progressive web app. It is accessed through your browser. You can “install” it, and access it without the browser interface. It is however still the browser.