I cannot agree more and this has always been a pet peeve of mine.
Most native apps are some half gig large where even the heaviest website is a few mb. They dont let you highlight text and have other bizarre design choices. Even worse, they request importing contacts list which isnt even an option on the web.
Native apps could be butter but more often than not they are like margarine. Smooth, oily, and not good for you.
A lot of native apps are just wrappers around a JS context with a few bridges into native APIs and they are pure data grabs.
Reddit always asks you to use its native app, for example. Why the fuck would I care so much about Reddit that I want it outside of my browser? Same goes for any other website.
The 3rd party Reddit apps made an effort to be more 'native', and actually used native UI elements to make rendering and interactions faster than the web page could.
WAAAAAY too often the 1st party native app is exactly what the other poster said: a browser context with access to some local native API's in order to hoover more data about the user. It is rare that a first-party app actually has some effort put into it to be a quality app. Is in fact so rare, that the sites that actually put in the effort suffer because folks can't believe that a native app for a site could actually be better or worth it.
I think the parent's point was that an app for reddit only makes sense because they deliberately don't add the features you like to the mobile site. There's no reason those features couldn't work perfectly well in a browser, they just choose not to (and to kill off third party apps).
If Figma runs perfectly well in a web browser, Reddit can do the same. It was built for and evolved almost entirely within the browser, like many other Internet forums. Pure data grab.
Figma shows what it is possible to do in a browser, but the cost of doing so is basically prohibitive. The level of persistence and technical nous needed to stand it up are on par with getting a first-person shooter running at an interactive frame rate on a 286 -- they basically reimplemented a browser within the browser.
According to Reddit's "Staff Platform Engineer (Web Platform Team)":
--- start quote ---
Old Reddit has the advantage of being pretty much static non-interactive content. No video, tiny thumbnails, and barely any JS or styling. Some people like this and some don't, but the end result is a very lean website that performs well out of the box.
Which is of course a bunch of bullshit when you consider that Reddit's backend returns most data in under 400ms, and it takes Reddit frontend 3+ seconds to render it
Figma is sort of an Apollo Project among webshit, isn't it? IIRC they did rather extreme amount of R&D to make the webapp performant in spite of the web as a platform. Great that they did, and I hope their insights will keep trickling down to everyone else - but I don't think they're currently an example anyone can actually follow.
It’s great, but it’s not Apollo-level anything. Most games are far more interactively and visually complex. Apples to oranges with UX and interaction problems to solve, but certainly not depth and complexity. I’ve certainly experienced bugs in Reddit’s interface before — there seems to be this idea that they have to be so risk averse that they can’t do anything significant— I’ll bet you a pizza that their official app which implements all the features that people really want to use is made with JS/HTML on the back end anyway.
They’re not indifferent to browsers (less data mineable contexts) so much as actively hostile. For the past few years some things I have to add “-reddit” to my Google searches, because they killed i.reddit.com, which was the only useable, fast, non-complete-shit mobile site they have ever built. Their old. subdomain isn’t really readable in a cell phone.
Their new version is incredibly slow, moves me to sub-pages trying to expand comment threads (very disruptive if I saw something in the Google preview snippet and want to control F to it, but whatever comment that was literally isn’t loaded), and sometimes outright fails to load. now I can’t/wont use it.
So screw reddit, it’s a glorified q&a site, with sub forums run by fedora neckbeards, that’s gotten uppity and chosen to be hostile to users. And for some reason Google hasn’t just downranked it to death. The other day there was a thread complaining that their AI responses are reducing websites clicks. I hope that it is very damaging to reddit.
> make rendering and interactions faster than the web page could.
McMaster-Carr begs to differ. Hell even old.reddit is pretty snappy (but deliberately shittily rendered on mobile). Websites can be fast if you don't stuff them with bullshit or degrade then on purpose to drive traffic to the app.
Right -- their website is a great example of a great web app. Their web site is brilliantly organized. But their revenue comes from sales of their products, not harvesting user data, so they have little need to add all the extra jank.
But if they had a native app (do they?) I imagine they would have the wherewithal to build the app natively, with the same stellar navigation of their website, and maybe some native-only features? Imagine if you could use the 3d sensor + camera of an iPhone, and point it at an assembly, and the app would identify the parts it could, and you could order with one click, or integrate with a local ERP or other systems...
Simply because native UI is faster and more functional and better integrated and better thought out than anything webdevs of any company can put together even if they cared to do it well. Sites like Reddit, or platforms like Slack or Discord, are perfect use cases for native clients, because there's a lot of space to make them better and more streamlined than the webapp.
Unfortunately, that only ever happens when some third party gets involved, and rarely survives long - but the experience, however brief, is glorious. See: RIF ("Reddit is Fun") on Android; Ripcord (Slack/Discord client) on Windows.
It’s a website for showing text and pictures. I know I’m being a bit reductive, but there is absolutely no reason why reddits functionality couldn’t be extremely performant in a browser. In fact the Reddit mobile site actually is very snappy, it’s just full of nagware trying to push you on to the app.
They would seamlessly in the background pre-cache all the articles and images coming up in your feed so if you had intermittent connections like on the subway, you could browse nearly[0] unaffected.
[0] Unfortunately, the app I used in the before-time did not implement queuing for submitting comments/posts so that functionality was broken while you were between stations, and videos weren't cached.
And if you ever push a service worker with a bug, then you make the browser permanently unable to display the site unless the user knows how to manually remove the service worker. I've seen it happen on Gmail.
Yes it is a pain in the ass, but just for other people who read this, the bug was in the self-update code for the service worker. If you mess up the cache configuration it can make the service worker never look for an updated version of itself.
It is quite subtle thing in a very small part of the service-worker code but it is not like any random update can brick your app.
There isn't even a need for JavaScript for reddit though it does seem to require it. I posted this without JavaScript enabled so it obviously would be fine for reddit too. Using an app for reddit doesn't make any sense to me at all. Banking apps make sense, they are doing some crazy device finger-printing to avoid id theft. But when the goal is to convey information use html and css. If you are taking payments then yeah maybe some JS. If it is a game, try wasm. Apps are for things that need access to hardware that the browser doesn't allow, which these days is a short list.
Reddit is in full in AI data hoarding mode. Try to load their website with fingerprinting entirely mitigated and you'll be greeted by impossible are you a robot validation
Chromium with autogenerate device resolution and client agent id with only simple JavaScript enabled(no rtc or gdi data) is enough to wall you from Reddit login script unless you're already validated by cookie
The main reason they make sense is that no matter which version of real reddit you use it's got irritating behaviors. But a browser based better reddit wrapper could easily also make sense.
That is in context of Reddit being Reddit. It kept screwing with its mobile site for years (now it's FUBAR btw), so third-party apps were the only sane way to use it on mobile. Even Reddit’s official app used to be a decent third party app - Alien Blue. Then Reddit bought it and made it pathetic. That’s why people used third party reddit apps.
On desktop, the browser’s always been the best way to use Reddit — as long as old.reddit still works. If you are on a non-Safari browser, there's also RES.
Same goes for many other sites. Like HN — it’s fine on mobile browser unless I bump the font size, then it pretty much breaks. But I’m not installing an HN app for something the mobile usage time share is barely 5–10%.
I used vger.app (a frontend for a Reddit alternative) as a PWA for a few weeks. Then when the native Android app released I switched to it and it felt so much better to use. I can't tell you why, it was just more responsive.
I too switched from Reddit to HN during the API protests of '23. But I always browsed through old.reddit anyway, I never used the third party apps. I'm aware of names like RIF and that everyone said they were great, but what was great about them?
So apart from the ad blocker, that's ... features, smoother, better. What?
Edit: I'm not trying to be rude (it comes naturally). But you just explained "great" as "better, with more". I guess smooth might mean faster, which might be because it isn't doing ads and tracking. It seems to come back to third-party being the crucial difference, and "app" not mattering.
I'm on old.reddit.com too and I use the mobile app (including the 3rd party ones back when they existed) for one primary reason: Two windows I can quickly switch back and forth on. On my phone I use Reddit to look up things. I can have a Reddit thread on one window and a Google search on the other and go back and forth. In a browser switching tabs back and forth is painful, often reloading pages, losing the spot in the browser, having this url bar and top bar taking up tons of screen space.
I imagine it depends on how you use it. I came to Reddit late and never got into the old interface. I commented a lot on technical subreddits and didn't do much with the doomscrolling ones.
I used Boost. Its ads were not intrusive (and I despise ads) and the UI was written with a small touchscreen in mind. If not for my distaste for phone keyboards, I'd say it was a better experience than the website on a desktop.
Would it be possible for a mobile browser to have a better experience? I don't know. I value my sanity too much to do web development. But Reddit was absolutely determined to make its mobile site unusable and the official Reddit app had a bad reputation (and I wouldn't give those bastards the satisfaction after being nagged so much to install it), so a 3rd party app was the only reasonable solution.
Unfortunately, it's getting harder and harder to hold your phone like this and see any useable amount of information. I'd love to have a 3:2 desktop monitor to replace my 16:10, but even 16:10 isn't available for phones. My current phone is 9:19, and I think I've seen 9:21. The wider the phone is, the larger percentage of precious screen space the system UI uses up when horizontal. I can see half a paragraph on my phone in landscape mode, and if it was any wider I'd never even try. As soon as I want to type something, I have to switch to portrait or I lose my view of what I'm looking at. There are terminal apps I simply cannot use because portrait mode isn't wide enough (unless I shrink the font so small I can't read it) and landscape mode I can't see anything at all. This affects some websites as well, due to their insistence on removing UI elements entirely when the device is too narrow (instead of moving them to the bottom) and others that set a ridiculously large minimum width. I far prefer tethering my phone to my tablet for this reason, which I'm lucky enough to have in 16:10 form factor.
Some of the third party apps were quite good, certainly better than the reddit mobile site, but that's mostly because the reddit mobile site is just so deliberately awful.
There aren't really any major technical reasons why the mobile site couldn't be as good.
This is so funny. For me, it was as if the "monkey's paw" had played me.
Back in the early 2000s, I loved desktop applications. My thinking was that there's no way a web app could do what a desktop application could. I loathed slow, proprietary, online-requiring, HTML based web apps .
25 years have passed, and now we DO have some "native" device apps... but they are just HTML web elements bubdled in a freaking custom browser.
Edit: anyone remember the "PortableApps" wave? I loved having that in a usb drive.
You never experienced the horror that is XAML. Not HTML, not native control either, it’s a weird middle ground of platform lock-in that you couldn’t escape until recently.
What I miss are the days where one could Win32 call a window up, and it looked like every other. Not sugar for me and none for thee.
I cut my teeth programming GUIs, I still like making GUIs - immediate mode guis, event based guis, animated guis and informational guis. I left front-end web dev when every 6 months there was a new framework, a new new, and everyone dropped everything for it. I understand why React ate the world at the time but it’s gotten to the point where it’s no longer standards driven, its ecosystem driven, and even then it’s leaking.
What I love about these hybrid apps though is that from Apache Cordova (PhoneGap) onwards, they’ve all looked really really good. Proving that a normal user can’t tell the difference. Which makes solo-dev or small-dev dev easier. Go with what you know. No need to learn flutter, or SwiftUI, or Kotlin.
The most annoying thing is repeat questions ( reddit, linkedin, facebook, ... ). If I already told the site 10 times that I don't want to use the mobile app, stop asking me. That's even worse than cookie consent banners, at least those stay away
Your comment got me a bit curious and so I spent time playing around creating a simple Android app using webView for my personal website and got it working, the only permission I added was INTERNET. So what's the next level of awfulness - do I add additional permissions and then additional information can be presented to my website server, or would I actually have to implement an additional path to collect the kind of info these apps are trying for?
It is just the app producers forcing you. Like AliExpress, the app is just the website (it does not even respect the default text size), but only the app allows you to do reviews. Some only give you rebates if you install their spyware. Many do not support notifications for no obvious reason. IMHO we need more user scripts to fix some of those stupidities.
Most apps, these days, seem to be “hybrid,” where they use a system like Ionic or React. These systems usually slap on some considerable libraries.
I understand why, but I’m not a fan of hybrid apps. I like to do native, which results in much smaller, faster, and more efficient apps. It’s just not as cost-effective, if you want to support multiple platforms.
However, native apps aren’t automatically well-behaved ones. In fact, they usually have access to even more tools for eroding privacy or user agency.
Good behavior is up to the app developers, and that doesn’t seem to be much of a priority, these days.
If it's not a game or a large company's app, it's probably a web view app. At my company I work on the website, and we have an app that is essentially just a bunch of web views of the website. Why we need an app I don't know. I suppose people are just used to apps more than they are websites, which makes me sad.
I am particularly incensed by governments that require citizens use apps to access their digital services.
Especially so in the EU, where on one hand they're annoyed at big tech, and on the other they're forcing citizens to be customers. Even services which are web-based rely on an app for login authentication.
Funny cause I was just thinking about the tradeoff of "internal wasm app" vs "internal native app".
The former has convenient distribution, but worse performance and other limitations.
The latter can be tricky to keep updated, ensure the environment is the same for everyone and/or cross-platform differences, etc., but significantly better/faster.
But both binaries about the same size. Assuming using something like sokol or SDL3.
:-) be nice to margarine. It can be used to better your health. Because it's not butter, it can be supplemented with vitamins and minerals and can be used to lower cholesterol. But, I get your point.
of course Apple doesn't list the size of their own apps like Apple Maps, Photos, Music, etc...
I am quite surprised at a few apps I know are just a webpage, because I can to go to the webpage and see it's exactly the same, are still 40meg to 80meg. I'd expect them be able to be as small as a few K. Open a webview, navigate to https://mycompany.com. The end
Not to defend Uber, but there was a post here some time ago where one engineer explained why it's so large (sadly can't find it anymore): it's due to a lot of different implementations for different markets (some masks may have slight differences in different countries) and their choise to re-implement the masks multiple times.
> of course Apple doesn't list the size of their own apps like Apple Maps, Photos, Music, etc...
You can find that in the phone storage settings:
iOS: 12 G
Keynote: 498 M
Numbers: 482 M
Pages: 455 M
Clips: 213 M
Maps: 81 M
Watch: 70 M
Find My: 60 M
Music: 38 M
iTunes U: 35 M
Support: 34 M
Podcasts: 32 M
Books: 31 M
iCloud Drive: 30 M
Freeform: 19 M
Fitness: 18 M
Notes: 17 M
Journal: 15 M
Home: 10 M
App Store: 8 M
Weather: 8 M
Mail: 7 M
Files: 4 M
Health: 3 M
Measure: 3 M
Voice Memos: 3 M
Calendar: 2 M
Clock: 2 M
Safari: 2 M
Shortcuts: 2 M
Translate: 2 M
TV: 2 M
Calculator: 1 M
Facetime: 1 M
iTunes Store: 1 M
Tips: 1 M
Wallet: 934 K
Messages: 860 K
Photos: 791 K
Compass: 712 K
Camera: 635 K
Contacts: 598 K
Phone: 570 K
Magnifier: 516 K
Passwords: 213 K
There's also an "Apple Inc." listing, which appears to be "shared" between a lot of their apps which clocks in at 204M
My takeaway from having gone through the list and compared to the various 3rd party apps:
1) Apps can absolutely be smaller. Plenty of stuff in the <200MB range including things like Signal, OBD Fusion and Infuse
2) Games are often big, but there's a surprising number of "simple" apps that are larger than some of the games
3) The largest apps seem to be from companies that you would expect to be doing the most tracking of your data
4) Apple's first party app sizes probably explain a little about why they weren't in a hurry to upgrade storage sizes
No idea, those are the numbers as reported in the settings app. I would assume it's part of the OS since it's a framework for other apps to tap into mapping functionality. For comparison Sygic is 324 MB. Waze is 170 MB, Tom Tom is 251 MB, Magic Earth is 135 MB and OSM And is 238 MB
I thought these couldn't possibly be right and you must be including their storage and cache usage, but I'm seeing similar reported on my iPhone. Rounded to the nearest megabyte.
I'm still skeptical (or just hopeful?) that there's some storage accounting bug here, and it's including caches. I'm not in a place to plug it into Xcode right now, maybe someone else can check the actual IPAs?
edit: also, I do see Apple's own apps in mine. Music reports 39mb; Photos 791kB (lol?)
Almost certainly has to do with how the app is built. Most thoughtfully built native SDK (UIKit, etc) apps clock in well under the 100MB mark, often under half or a quarter that.
Bloat like that is usually due to unnecessarily convoluted tech stacks pulling in a list of dependencies that goes out to Mars and back, or for globally targeted apps sometimes it’s translations for everything in the app for hundreds of different languages.
But this is still incredibly ridiculously comically gross.
The fact that we can afford it these days is an irrelevant seperate thing. These numbers are just unjustifiable for what most apps actually do.
I mean, it scales with complexity. Naturally, well-made native SDK apps bumping up against 100MB are more likely to be highly functional, while simple apps are very small.
For a couple examples pulled from my TestFlight list, there’s a social media site reader app that’s 7.6MB and a text editor that’s 697KB. Those sizes aren’t the least bit unreasonable.
Whats the business case to invest in building these well and as small as possible?
Heck, if you are a world business and the app isn't your core value prop, whats your case for investing anything more than the bare minimum in creating your app?
UIKit is fine, good even, SwiftUI isn’t fully baked yet, Android Framework definitely sucks, and Jetpack Compose is decent but needs work. Both platforms have at least one SDK that’s good to use, and personally I’d take them over fighting the extra layer of issues something like RN adds on top of the native issues that devs will encounter regardless of the SDK used.
Cross platform frameworks really aren’t the magic wand they’re sold as.
Cross-platform is very much not a magic wand, but it's still often easier than building the same thing in two different native SDKs, and I can see why people do it.
Disagree about UIKit, mainly cause of Autolayout, unless it's gotten reworked in the past 8 years. When I started using RN, I had zero web experience, and still it was way quicker to set up a basic UI than in the UIKit stuff I'd been doing for years. And for all that setup, Autolayout doesn't even seem to future-proof your stuff that well. An abandoned ObjC iPhone app I wrote in high school using C-style macros for layout worked perfectly fine on the newer screen sizes that broke most other apps.
I thought maybe I was stupid, but the other iPhone devs I worked with constantly had problems with Autolayout. Maybe a real expert iPhone dev won't, but it shouldn't take that.
The thing about UIKit is that you really need to forget about the drag and drop UI editor (XIBs and storyboards). They make everything including autolayout much more painful than they need to be.
Pure code UIKit using autolayout’s anchors API is quite serviceable, and if you follow recommendations (use safe area and keyboard constraints! They exist for a reason) reasonably futureproof. The iOS apps I’ve worked on have needed very little change year to year for quite some time at this point.
That's true, though some will tell you the opposite. But even then, the pure code autolayout seemed a lot harder to use than HTML/CSS. The fact that so many people got it that wrong says something. Like yeah a desktop website might break on mobile, but I'm talking about a mobile screen just getting slightly longer or something.
Is it? You can't easily tell with iOS apps because the container might be that big, but the app on your phone is a fraction of that. The container might contain multiple versions.
Most native apps are some half gig large where even the heaviest website is a few mb. They dont let you highlight text and have other bizarre design choices. Even worse, they request importing contacts list which isnt even an option on the web.
Native apps could be butter but more often than not they are like margarine. Smooth, oily, and not good for you.