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.
The main big difference without going into different programming languages is that web apps are built to be served via a web browser and don’t interact directly with the underlying operating system (OS). Regular apps are built to be run and interact directly with the OS.
So, web apps lose a great deal of functionality, but gain independence and privacy? Or am I not seeing the issue correctly?
Web apps allow for greater cross system support since they can be utilized on any system that has a browser and access to the internet. Another benefit is that none of the code is hosted on your local system (except the client side which is served to you in the browser). Web apps don’t necessarily lose any functionality, it just depends on the goal of the application. Web apps still have server side (remote) applications that serve the web app to your browser and which can perform the lower level functionality on the host system.
No, not at all.
Web apps automatically update, and you basically don’t run any code on your machine. Whoever is running the webapp can usually see everything you do. Google knows you opened and edited that document at 4am last Thursday. If someone serves Google a warrant, they’ll give them your documents. You also don’t have to trust whoever is running the webapp. You can use Joe Shmoe’s interactive Diablo map and the only risk is the data you give them.
Desktop apps may or may not phone home. But generally if you edit a document in notepad or WordPad, nobody has that information but you. If someone wants that document, they need to get access to your machine. But it does require you to run code that you can never really be sure of what it’s doing. So you generally want to stick to known names or people you can trust. Don’t run random executables on your machine. Note that this is also why it’s so much harder to pirate games or software than it is to pirate media. You (generally) can’t get a virus from an mp3 or mpeg or jpeg file.
Web apps will be more restricted into terms of how they can interact with the underlying OS as they first have to go through the browser. Also I wouldn’t say weapp have any influence on independence and privacy, and if anything they are less private since the hosting server will know your IP and often require an account to use them. Native apps are installed on the system and unless they have routines to call back to the developer, it won’t really share any information about your system or usage.
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).
The Microsoft teams desktop app is written using a JavaScript framework called Electron. Electron is just a framework that allows you to write a single-page web app and install/launch it like a native application. Because it’s written in JavaScript (the same language web browsers use. Electron apps are literally their own chromium based web browser. It’s part of the reason those apps use so much of your computers resources) it is OS agnostic and cross platform without really needing consideration.
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
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.
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.