As mentioned by <a href="https://news.ycombinator.com/item?id=26588480" rel="nofollow">https://news.ycombinator.com/item?id=26588480</a><p>Webapp nowadays has access to plenty of permissions. In addition, it can be updated freely and automatically.<p>For native app to update, you need to get Google and Apple to approve your updates and wait for their distribution network to propagate updates.
You get a lot of features, but not all of them. We've just fully migrated a web app to a native app. Reasons:<p>1. Camera is an absolute pain on web - you can take photos, but when you want to deal with things like EXIF data, cropping, zoom, and every device has multiple front cameras now.<p>2. File systems are a pain. Where does it go when you download? Are you planning on using a cache? Offline database? OK, great, your hack works. Now try again with the new Android 10 scoped storage.<p>3. Can't easily handle things like calls.<p>4. RAM usage by browsers can be massive, this is part of the reason for the lag.<p>5. App Store optimization is easier and more effective than SEO. You can create a shell around your app, sure but you still should upload it and you have to go through quality control processes.<p>6. DOM manipulation and UI is much harder than on native. If you're using a template, it works, but if you want custom UI, it's a lot easier to control on an app. Even small things like toasts. CSS is hard enough on desktop, try web browsers. And then create a "back stack" on top of your app.<p>7. You can use something like Cordova, but bits and pieces go obsolete every few months. And making Cordova plugins is an absolute nightmare. I did something in 3 days native recently which I couldn't do in 3 weeks previously.<p>8. Multithreading, e.g. an app that supports chat or a download queue.<p>Pros of web app:<p>1. Prototypes and MVPs are a lot faster. npm has most utilities. And there's custom templates for everything.<p>2. It's easier to integrate other web functionality, e.g. Facebook posts and TikTok.<p>3. Architecture is "flat" on a SPA. So you can access something 3 pages back easily, or do something like change data on every page. Whereas native architecture often has several layers. Duck typing is a nice feature.
I wouldn't say web apps are always preferred over a native app. When people are prototyping, I see a lot of people building web apps to get the idea out. However, as you grow, a native app might be favourable if you can have one cause in my experience they perform better, especially in the background. You don't have to worry about what browser they're using and if it supports the things you need, as long as the OS supports it and you can do more stuff in the background like local notifications which web apps can't
The absolute killer feature for webapp is privacy and I will use the webapp instead of the native app whenever it is available for that reason only.<p>Besides, all those comments about native being better due to performance and RAM and such go straight to the toilet when the app is something I will keep open for like 5 minutes every 2 days just to do something specific thing. Most apps do not require daemon-like features.<p>Dear native app developers, I'm not buying into your arguments on why a native app is required. You're going to use some kind of SDK that is going to spy the hell out of my phone. Get off my LAN!
You need a native program to access the web, so for now, always you'll need at least one native program ;)<p>Now, seriously, as muzani states indirectly, the preferred way will be divided as long as implies another layer and a difference in available device services. Also, you mentioned a disadvantage of the stores but think about the distribution network in terms of online presence to being noticed. There're plenty of pros and cons in every aspect.<p>Regarding the update point, like in desktop OS, with Android, you didn't need to wait, just take the APK file and install it. From the perspective of your sentence, it's only a problem (or situation) of the Apple ecosystem, not related to the web/native. They can't control the web but if they could they will. From the perspective of the consumer, some say they are fine with the gatekeeper, adding a layer of security and quality assurance.
Web app ui components or the ability to make a fluid ui is an entire class below mobile. There’s no two ways about this. Every website is pure dog shit compared to their mobile app.