I think app size is a lurking problem that needs to be addressed.
I thought it was just me as a “power user” but then I noticed that my wife and kids were spending hours deleting stuff to make room for app updates. It’s a silent problem that people just seem to monkey around with.
Some apps are huge, I have 256GB because I ran into problems with only 64GB. “enterprise” apps that use up lots of app storage and then require local data storage for caches to edit files.
A big offender is Microsoft where the office apps are each 500MB and different apps are needed: Excel, Word, Office, OneDrive, PowerPoint. Why is Edge 200MB?
It’s common for apps to be 250MB and grow and grow. I used Chase as my credit card and their app is 300MB. I keep the app because their web site is horrible and requires MFA to login, so the app is easier.
It was impossible to use my phone with “only” 64GB without constantly deleting and reinstalling depending on what I needed at the time.
I remember the days of small hard drives when bloat really mattered, but it seems like devs just assume that people only use their app and it’s not reasonable that the Gmail app requires 300MB or PayPal needs 250.
> it seems like devs just assume that people only use their app
It's the "people have powerful computers now so we can be as lazy as we want" culture. We have amazing computers but they feel less powerful than an 80s arcade machine.
Today my Windows 10 PC told me that the "Snipping Tool" had been deprecated and would I like to try the new W10 version? So I did. And when I took a screenshot, it said something like "please wait while we make your screenshot" for about 20 seconds! What could POSSIBLY take so long‽
This is something I find myself asking more and more almost every time I use a computer or mobile device. I have multiple cores here. Why is anything stuttering? Why are these processes taking so much memory up? Why is this web page pulling down 100MB of traffic? Why do I remember text console DOS apps being so much more responsive than today's click-then-wait UI apps? Before spinning hard drives dropped out of fashion, you could hear that thing grinding away, doing who knows what, while the computer was sitting there supposedly idle! What gives software developers the idea that they can just have their software just wake up and do things without the user commanding it?
Just a particularly egregious example: If there's one thing that nothing on the entire system should preempt, it's the mouse cursor. If I move the mouse, the cursor should move instantly. There is nothing more important that the computer should be doing. I thought this was like a basic, very well understood rule and a solved problem. Hell, I recall a long time ago things like mouse cursor drawing were driven off a hardware interrupt. On today's "modern" computers, if I have a lot of applications running in the background, the mouse cursor will stutter and lag, and text input will be buffered and show up N seconds after I type. Totally unacceptable, yet software continues to ship like this.
EDIT: Sorry, the rant kind of drifted off of the "nobody cares about bloat" problem and into the general "nobody cares about performance" problem.
Boot FreeDOS from a USB stick on a modern computer, or even a 15-20 years old computer. Gives you some perspective on how fast the hardware really is, even when using only a single core.
Sounds like your screenshots are being conveniently uploaded to MS servers so you could share them (Yay!).
Getting such enormous delays when performing otherwise simple operations usually means that network requests are being made, and servers aren't normally snappy when it comes to free storage.
Here is my example of enormous loading times: it takes a few minutes to clear browsing history on the android version of Chrome browser. Quite outrageous.
On my barebones Windows 10, clicking the WiFi menu makes it hang for up to 5 seconds until the little popup appears where you can turn WiFi on/off or choose the network.
Windows 2000 on the Pentium 3 with 300 MHz felt way snappier.
The Linux desktop isn't perfect, but basic stuff like that works way better there on the same machine.
Windows 10 is in fact doing something when you click the Wi-Fi icon in the taskbar. That's the moment it chooses to actually poll for networks. This ties up your Wi-Fi card and dramatically increases ping for about two seconds, in short pulses.
The UI should instantly display the previously known APN list while loading the new one in the background. Microsoft has multiple teams researching asynchronous programming, but their work doesn’t seem to make it to the desktop.
I’ve never seen that, perhaps it was preloading the actual tool that makes the screenshot (since they seem to like lazy-loading features nowadays). Is this different from the Windows key+shift+S tool?
I use the new Snip&Sketch tool all the time on multiple computers and it never takes more than a fraction of a second. Maybe it was just slow the very first time you used it?
Doesn't fix Windows "Upgrades" ruining workflows, but Sharex[1] is a very useful utility that you might be interested in. System-wide hotkeys for screenshots, can do short encoded video, optional auto-uploading, etc.
Windows seems to be super stupid about cloud syncing, especially when one drive. For some reason, it seems like sync is a blocking action that will freeze the UI.
I would expect to just write it to disk and sync whenever. Instead it seems to take seconds any time it hits “the cloud” and makes me wait. So I bet your screencap tried to transfer your file.
I see this when trying to open files from OneDrive even though I have it local. Word will take seconds to “browse” through online OneDrive directories even though I have them local. So it might take 10 seconds just to pick a folder to save a file.
And of course, afterwards my cpu will peg for minutes doing something.
It must ask the mighty Gates for permission (they care about your privacy) and must request database access in the new FBI server. And then maybe execute some crappy JS because they are not able to program in C anymore.
probably telemetry of every running process, which ones have gui features, and which running process has a gui currently visible on your screen and sending all that data to MS.
I’ve seen some very rich people use some shockingly old hardware. It’s not about penny pinching, many don’t think about upgrading regularly largely because upgrading tends to be an annoying process.
Depends.... Social networks, bank apps, chat apps, casual games, productivity apps, music/video players,... basically everything except new games still should work, even on shitty phones.
If it involves spending money and your business model isn’t to make pennies at massive scale, it makes no sense to optimize for those who actively reduce costs. I don’t remember the exact percentages, but there’s a quip that Apple has something like 90% of the profit with under 30% market share.
So, throw away literally billions of users worldwide? Outside of USA, apple has a very, very small market share, and cheap (weak) android phones are the norm.
For example, Facebook ("lite") and google ("go") already optimize their apps to those markets. Why not eg McDonalds?
Not every business earns its revenue by casting the widest net possible. Focus on users who are known to have the discretionary funds to buy new iPhones and then you’ve also focused on users who aren’t as likely to penny-pinch when deciding whether to pay for your products.
I'm really surprised sometimes at the size of what should seemingly be tiny apps. An app with a single screen that does literally one thing can clock in at anywhere from 20-70MB it's ridiculous. Yet at the same time there's apps that manage to do a lot, but don't gobble up the space.
Looking at something like the Infinity reddit client vs the official one. Infinity clocks in around 38MB the official client is around 100MB. They provide essentially the same functionality, the layout and UI is even very similar, yet one manages to be almost 2/3rds smaller in size.
Does the "emoji keyboard" support searching for animated stickers or something? My guess is that it's littering your phone with thousands of tiny clips.
I always thought this was an Android problem, so I nuked every default Google app. For some reason, Google search/voice app I probably used 6 times a year had ~500mb space. 300 of that was just "data" for god knows what. Gmail was reaching a gig. Youtube also half a gig even though I never save anything and maps was just wild. All these apps are over 200mb solo dolo. Why? One would think the best paid devs in the world, in one of the wealthiest companies in the world would ship the best apps.
When apps target users in developing countries, there is pressure to keep apps small. Those users tend to have phones with less storage and tend to sort by size when deleting apps to install something else.
Some users will build up a cycle of delete A and B to install C, then delete it to put back A and B. The smaller your app is, the more likely it is to stay installed because it's not as helpful to delete it.
The biggest obstacles are small storage phone users are well represented in non-Play store installs, which often means a fat apk that has binary libraries for all platforms and raster images for all dpis. The other big issue is translated strings; Android standard string translations can't be compressed (apk is a zip, but not everything in a zip is compressed), even though they would be very compressible. There's a lot of languages out there, and not using the standard translation tool is hard to sell (and you still need it for somethings anyway).
Doesn't help for US based banks though. Mostly their customers are going to have enough space that a bank app isn't going to get deleted to make space for whatever else.
When talking about raw local performance ("why my 4 cores today work similar or worse than 1 core yesterday?") I think part of the answer is: because yesterday we had comparatively less software, but it was written in closer to the metal languages (i.e. C/C++ and similar) while now there are x1000 more devs out there, most of them looking into writing their desktop applet with JavaScript / other languages similarly far from the metal, and wanting to know as little as possible about the hardware, thus relying on dozens of abstraction layers just to make their lives much easier (and their softwate much crappier).
Typical counterpoint is VSCode, wtitten in Electron. But you know, VSCode has had some serious engineering and optimisation effort ($$$) so not really a typical example at all.
VSCode is least crappy Electron application, but that doesn't mean its not crappy. It does less than half things that Intellij IDEs do at base install, and stillmanages to be slow and regularly lock up. And that is a comparison for feature rich use. If one compares VSCode the editor vs Kate/Emacs/Kdevelop there is no performance match.
I agree, but I have a counterpoint. Kate has been my editor of choice for all text editing things, I think since times of KDE 3 (so you see it's a long lasting preference by now).
However, I have always used JEdit to copy-paste huge text, like anything beyond 100k log lines from some software. JEdit seems to handle everything fine, while Kate has always hung up on me during some 10s of seconds (any kind of parsing or colorization are disabled in Kate, and the minimap is too... after that wait, everything works fine though).
Turns out, VSCode handles this kind of pasting nicely too, so I've replaces JEdit with it. Which drives me to think there is some low hanging fruit performance wise in Kate.
I've had similar waiting experience with Sublime for large text bodies. VSCode, IME (been couple years since I tried) absolutely choked and eventually had to terminate.
These days, I stick to Emacs and Vim (terminal) for large files. Perks of being in a Linux shop, I guess.
> It was impossible to use my phone with “only” 64GB without constantly deleting and reinstalling depending on what I needed at the time.
I too have 64GB. I just checked and my phone says apps take 11GB, and I have about 33GB free. At 250MB each (and many on my phone take less) that would be over 250 apps on a 64GB phone...
Do you actually use that many apps. Am I just a Luddite?
I don't think you're a luddite, though people do use their phones for different things, some of which are just naturally going to take up more space over time. Rich media like photographs and videos taken on your phone is going to take up a lot of space, especially when you don't have them sync to the cloud. Some apps like reddit clients, comic readers, or music apps can take a lot of space up with cached images, music, and other files. Games also take up a ton of space.
> Rich media like photographs and videos taken on your phone is going to take up a lot of space
Right, but this was a discussion on app sizes. Photos and videos aren't due to the size of the apps, and can easily go on an SD card.
> cached images, music, and other files
Good point about caches. Should be some global policy for that IMHO. One thing is things like map apps downloading regions on demand for offline use, but just plain old caching...
> Games also take up a ton of space.
True, that's an issue even on my desktop computer with a 1TB SSD. Though I don't consider those regular apps. Still, point taken.
For me, iOS’s automatic offloading of apps seems to save me from having to do this, with the caveat that sometimes I try to access an app I haven’t touched in a while and have to wait to re-download in order to use.
I tried this, but the apps were big so it would churn. And the first time I arrived in a new country and didn’t have network and Apple had decided to offload Dropbox with my locally saved itinerary it really sucked.
I think that might with tons of apps that are rarely used. But it sucks if I have 10-20 apps that I frequently used.
I was referring to having 33 GB free. People with kids tend to always be running at the razor’s edge of their storage taking pics of their little one’s latest adventures.
In retrospect quoting that last piece, rather than the whole comment, made a lot more sense when I first wrote it than it does now.
> running at the razor’s edge of their storage taking pics
Well, I have SD cards for that... Regardless, the context was apps taking space. If I had used 80-90% of my storage for pics, then size of apps isn't the issue.
Yea, the capitalist "free market" that we have allows me to go buy the latest flagship phone with and root able bootloader that I can resign, replaceable batteries, expandable storage and dual Sim. Well you can in China but not the US.
This is why I think China has won. They are able to leverage free market dynamics without the ip/legal bloat here and then they just pull out the gun for national interest.
I'm curious why people trust apps published by banks/credit unions instead of using the substantially similar web pages with a trusted browser and password manager. I've seen a mix of anything from awful to OK from mobile banking apps.
My only use case for apps is mobile check deposits, presumably because asking for camera control on mobile devices was beyond the ability of their web developers.
I only have BoA because I haven't canceled my CC with them yet (kept because AMEX is not accepted everywhere). It seems I deleted my other bank apps (after I'd closed the accounts, makes sense, right?) but IIRC they were somewhere in the 150MB-200MB range. Some people just really like bloat I guess.
They do, and I signed up for it. I literally just haven't bothered canceling the BoA CC yet. It's not been used since I got the USAA card (which is only used when the AMEX isn't accepted).
It used to be that everyone wrote all of their own code and applications were tiny. Now it’s easy to pull in dozens of libraries and their hundreds or thousands of transitive dependencies. The resulting app bloat becomes a ticket on the pile, to be solved some day going on never.
Parent comment is evergreen. It could have been written in 1996.
I feel the same way. But as we curmudgeons stand athwart history, the whole of software development is moving toward the largest sizes the technology will allow.
Until recently I was using a Oneplus X with 16GB storage just fine. I was never tempted to download apps except the ones I completely needed (because I really didn't have room for it.)
Now, with a Pixel 4a the System/OS singlehandedly uses 18GB of storage. Today, I do not see myself ever filling up another 100GB of apps but who knows what app sizes will look like in 5 more years.
why cant we set a system wide cache limit on apps? i don't need to keep 5 billion page cache on browser or reddit or youtube or whatever. for people who have fast internet, or even those who don't, cache does not work because these apps "assume" you are always connected so they break the flow if it detects no internet so cache is worthless then.
other than that, i have been requesting app devs on github, foss apps at that to have a cache limit inside so if i set to 100mb or even 0, that works
Product managers want a faster, smaller install. It means less cancelled/failed installs. It's a metric they'd love to optimize for.
Why are you bashing PM's?
At the end of the day, if delivering a new feature on time adds another 5 MB, it is what it is. Pretty useless to try to assign blame to either devs or PM's, or portray them as somehow opposing teams. They both want success for the business.
I'm not "bashing" anyone, and I wouldn't say the person who I replied to was "bashing" developers, either.
I agree that both developers and product managers want success for the business.
I probably should have said product owner here rather than product manager. I only meant to call attention to the fact that it's often others in an organization beyond the developers making decisions around whether to optimize for this sort of thing.
On average, more technically-minded folks are more likely to want to optimize for technical things like app install size where the business impact can be a bit more abstract and difficult to measure, particularly when compared to folks like product managers who are likely to have their individual performance evaluated by even less technical stakeholders on their ability to quantify the impact of whatever ends up getting shipped.
Again, I'm generalizing here - of course there are highly thoughtful and competent folks capable of balancing competing priorities across domains in any type of role.
It still boggles my mind to this day that in the early 2010's, I was debating getting a 8gb or 16gb iPod Touch. Now I can't even imagine anything less than 128gb if I'm including videos and pictures on my phone. That's even with only essential or primarily used apps. If I had everything I'd want on it, 128gb still feels like not enough. Not to mention Android taking up an absurd amount of space.
I've dabbled in Android development for a rather simple app, and am fighting to keep it in the single digit MB size. I was shocked that even after as much build optimization as possible on libraries, a DEX analysis shows a handful of built in icons and menu translations into just 5 languages occupies over 40% of the package.
As an aside, I dug out an old 16GB Nexus 5 phone to use as a security camera monitor. With exponential app bloat, the basic camera app was a 300MB download, and ate 80% of the phone's free space. All that for a glorified video stream player. The rest of the phone with its outdated apps actually feels quite usable as a modern Android phone--what exactly did today's 10x size get us?
I'm an android developer with apps around 100Kb, or 0.1Mb.
The secret? Don't use android app compat, or rather, don't use any external library. Just plain old java. The apps are ugly (no themes) but they work extremely fast and to the point.
Extra: maybe it was a bug or something, but when I tried one of my apps on an android 12 emulator, it reported a negative app size! (user data to be precise)
Unfortunately no, or rather not yet. I guess it should be easy to publish most of them, as they are on GitHub already. (Except my most popular app by far, because in the past I had some issues with clones so I decided to kept its code private)
Android studio lets you analyze apks and you can check more or less why the size is so big.
Last time I checked it was a mix of assets (images mainly) and rarely used functions. In the case of app compat almost all is due to backward compatibility. That library allows you to use features intended for newer APIs, but making it compatible with older versions. This has advantages (mainly the themes) but it also means that the apps contains a lot of assets and code that will never run. The app bundle reduced this problem, but it's still present.
Another aside: I believe part of the argument for moving to "flat design" (Material) was lower file sizes since it's all CSS or SVG, as opposed to possibly dozens of raster images at different resolutions for the multitude of screens. Yet here we are, with our flat design, but apps now gobble up precious storage space because of bloated shipped libraries.
> I believe part of the argument for moving to "flat design" (Material) was lower file sizes
If it was, that was a sucker-play. Just like with CPU, RAM, and traffic lanes, any resource optimization will simply make room for something else to occupy.
I've tried using new Android Jetpack Compose libraries to rebuild my old Android app. Basic application with single activity is a bit below 6MB, optimized for release. This is really bad, compared to my original application, which apk is a bit smaller at 4MB, and includes offline maps and additional routing data.
It's probably impossible for Google to keep all shared libraries on devices, as there are millions of those not getting updates, so only way is to keep everything duplicated in each app. Now I'm considering converting app to PWA, even if it means that UI will look out of place and potentially will have more accessibility issues. At least I hope to keep app size as small as possible.
I may be late to the party, but I recommend RTSP Camera Server. It is what it says on the lid. I used it a few years ago as a baby monitor with a camera and it worked really good. I'm not sure in which state it is now. Simple, small and no bullshit.
Camera app as in a required smart home app to access the WiFi camera. About 300MB installed. It does do push notifications on motion detection so maybe that's 50MB there?
Is the size of the camera app really significant when, on a modern high-end device, it's going to be taking 10+ megapixel photos or recording 4K video at up to 60fps?
That's it. There's no need for the OS to figure out how much space to give to apps.
This way, if I install an app that is purportedly a 2GB app, I'll know exactly how much space I'll lose.
If an app needs more space after an update, that update would require a manual approval from the user.
Something tells me that if app developers were required to be honest about their disk usage, and knew that he users would have to agree to a "This app wants 5GB more space after an update, are you OK with that?" prompt, we would not be where we are today.
On top of everything else, I wish Android versions were held to the same standard, and that phones were advertised with the amount of free space available to the user.
I feel like app developers would try to do things right the first time, and after fighting the issue of users not accepting an extra 500 MB after an update, for the future they would learn to just request a good measure of their expected size x10, just to avoid that issue.
As a user I don’t care and don’t want more nag popups. I use my phone heavily and after a year I’m at about 40gb of 128 used and the majority of that is cached pictures and songs I can easily clear out. Rather than being nagged constantly I’d rather just check the storage page and remove apps that are too large.
What would you use that information for? Would you refuse to use an online service, smart device or video game based on how much storage space the app asks for? Even though the actual space they will end up using might be only half of that or even less?
For an app you haven't used in awhile, you'd probably uninstall it.
For an app you're actively using, you'd probably accept the update, but there would likely be pressure on the devs from the percent of people who would uninstall it instead. I think the hope is that this would cause them to think twice about bloating for no reason.
I've had multiple relatives (ahem, samsung) phones somehow waste data...
I'm talking 32gig phone, with 8gb 'system', 20gb "other", and a few apps. I can delete all the apps, app updates (because preinstalled apps are installed twice, once in the system partition and then a new version in the data partition), and 20gb is still missing. I can mount the phone, and find 5mb of random files, zero photos (i removed them earlier), and still, 20gb missing. I have a theory, that samsung updates leave some trash behind somewhere on the system partition and never clean up after themselves, because after a factory reset, and full upgrade, the space is back, even with all the apps and updates.
I don't want to root those phones, becase they're not mine, and this brings in more issues (eg. eternal support), and factoy reset seems to be the only way to "fix" them.
Semi-related: Older Android versions (up to 4.1.2 or so) used to have a bug whereby old native libraries weren't deleted when updating an app. I remember Skype being a particular offender, since their main native library included a version number in the file name, so with every update a new version of a multi-megabyte .so would be plonked onto your phone, but with all the previous versions of the library being left behind on your storage, eventually taking up a considerable amount of space after a couple of updates.
Unless you were rooted, the only workaround to free up that space as an end user was completely uninstalling and then reinstalling the app. I tried contacting their support about it, but it was of course useless in trying to get them to understand the problem…
Google in turn used to ship a number of 0-byte .so-files with their apps in order to circumvent the problem.
I had the same problem on my iPad. The “Other” category was taking up several GB and the only way to get the space back was to wipe it and restore from backup.
It’s infuriating that Apple allowed it to happen in the first place. It’s yet another slow-motion quality degradation like the battery-induced downclocking a couple years ago.
Did you try (temporarily) off iCloud in photos? On one iphone, 85G was Other (<3G remaining free) until we turned off the iCloud stuff in Settings→Photos. Seems like some bug, since the iCloud account was capped at 50G and the feature was supposed to store "smaller versions" of the full size stuff in the cloud …
I think part of the problem may be not taking advantage of external storage. I have an older Android phone with 32Gb internal storage and a 128Gb MicroSD card. I haven't had any storage problems because most big files go to the external storage without any effort on my part. I still have 10 Gb internal storage available, which is fine for my needs.
I have an old Nook eBook reader that I haven't used in a very long time because if became impossible to update. There was an Android update that said it would let you configure external storage as a seamless extension of the internal storage. There was just one problem: Android insisted that Android's Apps be stored in internal memory. The poor old Nook only had 8 Gb of internal memory (what do you expect for only $49). The OS took almost 4 Gb, the Android Apps also took almost 4 Gb, leaving less than 100 Mb. After a while it became impossible to update and now it's in a box somewhere with all its other abandoned bretheren.
If you buy a phone without a microsd slot that is exactly your own fault. They are still available. But tend to get less, because people think it's uncool and buy phones without, but 2 years later they whine about too small storage...
Although you're not wrong, the app bloat is still a problem. SD cards are slower than internal storage in almost all cases except for ultra cheap phones (during random access and sometimes even during sustained read or write) so running apps of them is annoying.
App developers should keep their app sizes down instead of driving everyone to add ridiculous amounts of external storage.
Android has pretty much cut off external storage support. You used to be able to move apps and all kinds of things over but I haven’t seen that in a long time.
Problem is SD cards are so incredibly slow that when you move apps over, the whole phone is stuck waiting and performance severely degraded. I’d much rather just buy a phone with as much storage as I need out of the box and know it will be high performance flash.
Even without external storage - my phone has just 64GB internal - I don't find myself using even half of it. Yet I often hear people saying they run out of storage. I don't know what I'm doing differently; my app list isn't hyper-minimalist or anything
My apps are all set up so that music, photos and videos all go to external storage. I have a 128Gb MicroSD card, and I'm using less than a quarter of the space.
Deprecated Google apps that can't be uninstalled nor disabled, but still keep updating themselves to the last bloated version after you do uninstall the updates.
Interestingly enough though removing preinstalled apps with `adb pm uninstall --user 0` (0, perhaps unexpectedly, being the main user, not root) does have a similar effect to disabling it, except it saves space permanently and only leaves the original APK in case of factory resets (not only this, but this works on what cannot be disabled otherwise, e.g. Google Play on some devices).
Just a side note that rooting may not be necessary. (even if I would love me a true Linux phone :)
One thing I noticed of my mobile games is that they seem to download a huge amount of items for each "event", and because they will reuse the resources for future event the downloaded items were never cleaned up. So eventually I got a blob of a couple of GB instead of half a GB in the beginning. However, since most events only come around a few times a year (e.g. Christmas event only comes once per year), it's frustrating to keep all those garbages on my phone and waiting for them to be read next year.
It's crazy that Fornite on PC took almost 100GB of disk space not long ago. The managed to cut that down to under a third [1].
I suspect a lot of this reduction was probably loading content on-demand. Wouldn't be surprised if all the different items and event data were pre-downloaded before that update. Whatever it was, it was evidently not crucial since it's always used much less space on mobile— they just hadn't gotten around to keeping disk usage under control on PC too.
I once built a prototype app to soft delete near-duplicate photos to save space. i.e. it would look at images that are very similar and identify the one that was sharpest, with the best lighting etc, and soft-delete the rest. The app worked but was very slow due to Python's image processing libraries. But if anyone here thinks this is a good idea happy to share how I did it as I'm sure a competent engineer can make this a reality.
I wish I had something like this for my iPhone that would automatically soft delete duplicate photos, picking out the sharpest one. Maybe an app exists already but I haven’t looked super deep for it.
Not exactly the same but for Burst Mode photos (where they all start grouped together) it will automatically pick what it thinks is the best one, and you can:
- Go to the burst in the photo roll
- Tap "Select..."
- Pick one (or more)
- Tap Done
- Tap "Keep Only 1 Favorite" to get rid of the others you didn't select.
“a five-year longitudinal static analysis of millions of Android apps to study the increase in their sizes over time and identify various sources of app storage consumption. ”
I thought it was going to be about analyzing what’s eating up my phones storage (system storage I’m looking at you) - and note it focuses on Android only. Not sure how much of the analysis extrapolates to iOS apps.
Apple might not make developers have empathy for users, but it makes them pretend that they do.
A software dev colleague of mine bought a ZTE phone early in the iPhone era and the immediate thing we noticed is that it would peg the CPU, get hot, and run out the battery in a few minutes.
In the desktop world any program is entitled to peg the CPU as much as it likes; if it is blocking the render thread it might get some "tough love" from the OS, but otherwise it's not a problem. In mobile, the CPU is a precious resource.
Android has not caught up with the idea that anything is precious.
> Android has not caught up with the idea that anything is precious.
I don't know what your brand or last device with this problem was, but there's a reason https://dontkillmyapp.com/ exists. Most of the battery issues were solved years ago with Android 6 (and then the situation improved with 7 and 8).
An focused application (or applications, in split view) is able to drain the battery, but that's just intended behaviour. You wouldn't be able to use a battery app or play a mobile game like pokemon Go if the OS would limit the current application.
I've only experienced the overheating problem on some midrange to cheap (<€200) Android devices, but that's usually because of the cheap, inefficient SoC that's found in the bottom of the spec sheets.
My phone saves battery to the point of killing background apps that I don't want killed. Luckily, I can turn that shit off, though Xiaomi has three different ways to make sure background apps don't get killed that I need to work through.
It’s barely related, but it makes me smile slightly that Pokémon Go is still the cross-platform standard bearer for excessive battery drain even five years after launch.
> Android has not caught up with the idea that anything is precious.
I do really not want Google making this decision for me.
If they decide to display a warning, or create a new permission for that, fine. But it's really not something for Google to decide in a centralized, "we don't care about individual use cases" procedure.
In newer versions of both iOS and Android, your app can get terminated by the OS without warning for misbehaving. Things like too many context switches, using too much CPU, or exceeding some internal and unspecified memory limit.
Oh apps are huge but at least they are upfront about the size - except when they start downloading and caching crap (Amazon app is particularly egregious). :)
People should look at other perverse incentives not mentioned here
My teams did many optimizations in mobile apps to keep file sizes small, only for more than one future employer (or relevant decision maker there) to question my experience because the executable sizes listed in the App Store are small
I hope you explained to this person(s) why app size doesn't equate to "scale" as they perceive it. Who cares if it's a future employer? If they don't listen and understand, they're not worth working for anyway.
As an app developer (both Android and iOS), I can tell where. When I’m done with the basic app features the app is no more than 3-5 MB but then I can’t ship it without some libraries that make me money - analytics and ads. Then again, if I only integrate one or two ad network SDKs, the revenue from the app can’t even support its development. So I add 12-15 different SDKs from all the ad networks and have them compete for the ad space. Then again, I need things that track crashes, and then offer in-app support, then someone emails you that you can silently earn $xxx per day only by integrating their SDK. Why not? Who doesn’t like an extra $xxx a day?
See what I did there? I turned that 3MB app to a 80MB app.
Disclaimer: Most of my apps are ~15MB and I try to put them under 20MB on Android.
I had an older android phone with 512MB. Which fit what it needed, until the google docs apps all started to get bigger and bigger. But I could fix that to some extent by moving them to the system partition.
My current phone is nicer in many ways but it doesn't really do anything the very old phone couldn't.
You have to ask what is the motivation to keep the storage usage down, I can't see any. If an app runs at a speed acceptable to the end user, nobody cares.
Less code correlates with better performance (responsiveness, battery life, bug rate, etc). Running through multiple layers of indirection prevents us from reaping the full benefits of a pocket supercomputer. Nobody knows what they're missing out on because every platform does it.
After reading the comments here, I think everyone needs to repeat the one true mantra: "machine time is cheaper than developer time". Anyone "optimizing" an app is wasting time and money. Anyone optimizing an app for space usage is doubly foolish: extra gigabytes are free.
<- That's sarcasm, by the way. But if you asked any of the apps' developers, that is the answer you'll receive.
Yes, and the user's frustration (and time spent figuring out how to clean up space on what was a new phone just a week ago) also costs nothing to the developer.
I thought it was just me as a “power user” but then I noticed that my wife and kids were spending hours deleting stuff to make room for app updates. It’s a silent problem that people just seem to monkey around with.
Some apps are huge, I have 256GB because I ran into problems with only 64GB. “enterprise” apps that use up lots of app storage and then require local data storage for caches to edit files.
A big offender is Microsoft where the office apps are each 500MB and different apps are needed: Excel, Word, Office, OneDrive, PowerPoint. Why is Edge 200MB?
It’s common for apps to be 250MB and grow and grow. I used Chase as my credit card and their app is 300MB. I keep the app because their web site is horrible and requires MFA to login, so the app is easier.
It was impossible to use my phone with “only” 64GB without constantly deleting and reinstalling depending on what I needed at the time.
I remember the days of small hard drives when bloat really mattered, but it seems like devs just assume that people only use their app and it’s not reasonable that the Gmail app requires 300MB or PayPal needs 250.