
The top iPhone apps are taking up a lot more space - prostoalex
https://www.axios.com/ios-app-size-increase-apple-apps-iphone-2445288877.html?utm_source=newsletter&utm_medium=email&utm_campaign=newsletter_axioslogin&stream=top-stories
======
xienze
> Why? There are two big factors at play, and both are tied to moves by Apple
> itself. First, the iPhone maker has been raising the cap on the size of
> apps, most recently lifting the maximum to 4GB in early 2015. Secondly, the
> phones themselves are also coming with more memory, increasing consumer's
> willingness to put up with bigger apps.

Saying "there's more space and apps can be bigger" is not an explanation for
_why_ the apps are bigger.

~~~
coldtea
> _Saying "there's more space and apps can be bigger" is not an explanation
> for _why_ the apps are bigger._

Sounds like a great explanation. Apps tend to fill up to take all available
disk space, and we've known that since 1981 or so. Every time computers got
more disk/memory, apps grew in size. Back in the day you could fit most apps
in a single 360K floppy disk or two.

~~~
oblio
To be honest once I got 1TB HDDs I kind of stopped caring about app sizes. Not
even the biggest games will fill that. Media files will, though.

~~~
coldtea
Games no, but something like NI Komplete will easily fill 20% of that or more.

------
0x0
Somebody posted a breakdown of Facebook.app earlier this year. Looks like a
lot of duplicated assets in there (too many developers / teams working on
different parts of the app?)

[http://blog.timac.org/?p=1707](http://blog.timac.org/?p=1707)

HN discussion:
[https://news.ycombinator.com/item?id=14082491](https://news.ycombinator.com/item?id=14082491)

~~~
CrazyCatDog
Facebook used to throttle devices once a week to make devs dogfood bandwidth
in developing nations--I think it's much more top of mind there than we give
them credit for.

~~~
kuschku
As a developer, I only use my app on 64kbps speeds.

At those speeds, the only webpages still working are a few blogs and HN, and
the only apps still working are whatsapp, some special irc apps optimized for
that such as quasseldroid or irccloud, some reddit readers, and, if you have a
lot of time, imgur.

Most of these also have app sizes in the kilobytes to single digit megabytes,
making downloading possible within of a few minutes on 64kbps (essentially
dialup).

Those speeds are basically guaranteed anywhere in the solar system, and if
your app works with that, it basically works everywhere.

------
mahyarm
Swift is a big part of the app binary size bloat. It creates about 3-4x the
amount of binary for about the same lines of code count as objective-c.
Generic specialization happens everywhere in swift and using optionals takes a
lot more ASM instructions than you would think it does. Swift also adds about
5-20MB of standard libraries for each app that uses it. Extensions like maps
or watch apps also take a few MB each.

Also apple makes decisions like encrypting binaries and then compressing,
removing a lot of over the air space savings. They don't give free apps the
option to just sign their apps and not encrypt them for smaller IPA sizes.

I wouldn't be surprised if a similar decision was made in the xcode toolchain
that caused a similar issue.

~~~
valuearb
It's not Swift. App sizes are mostly increased by graphic assets, and
libraries. Here is a 15,000 line swift app that compiles to 11 megs.

[https://blog.halide.cam/one-weird-trick-to-lose-
size-c0a4013...](https://blog.halide.cam/one-weird-trick-to-lose-
size-c0a4013de331)

I'm skeptical Swift creates significantly larger binaries, let alone 3x-4x,
but I'd still use it if so. Using optionals and stronger typing is makes it
easier to write correct code, and anyway we can save users from wild pointer
crashes is super valuable. Far more valuable than the cost of a couple
megabytes of code in an ocean of PNGs and Cocoapods.

~~~
adamwk
Yeah, Swift should only contribute a small, constant amount to account for the
runtime and standard library. 3-4x doesn't make sense.

~~~
mahyarm
Go decompile using an optional or an array, or interfacing with an Obj-C lib,
you'll be surprised how much ASM is generated.

You'll also be surprised how much stuff is reduced in swift 4. Swift is still
in beta, lots of low hanging fruit to improve still.

------
osteele
2GB is 1.5% of the storage for a mid-range (128GB) late-2016 iPhone; or 6% of
the storage for the lowest-end (32GB) iPhone SE.

Any decent product team – which I assume these apps have – is tracking this,
and is continuously setting direction for the tradeoffs among space
optimization, speed optimization, bandwidth optimization, battery life,
usability, stability, server costs, feature velocity, and probably a half
dozen other factors.

The implication of some of the comments here is that they've been making these
tradeoffs incorrectly. I'd be interested to hear more about the reasoning
behind this conclusion.

~~~
cbhl
Individual rank-and-file employees don't get promoted for not building
features. So there's an inherent incentive for the app size to grow, whether
or not that code is useful to 99% of its install base.

Between writing a single line that includes a 100 MB library and writing a
hundred lines that include just the code needed; many people will pick the
former. Just look at usage of GPUImage or other libraries.

~~~
deegles
I call it Promotion Driven Development.

------
cjhanks
As an outsider looking in - it appears app developers have decided that
operating system integration is not desirable. I have heard various reasons
for this ranging from; "We can do it better" to "Allowing users to escape your
app significantly reduces interaction time".

As a consequence, major app developers seem to be shipping a lot of things
which used to be integration points. Half of Android apps seem to ship their
own browsers now.

These are the functionalities which used to be operating system integration
points which I have seen largely replaced by applications (even if they are
designed to look identical):

\- Web browsing

\- Camera interfacing / image processing

\- Type/Swipe/text input

\- Dictionaries / spellcheck

On top of that, most large app developers seem to be shipping their own run-
time environments that appear to be designed to bridge cross-compatibility
gaps across operating systems and operating system versions. Until some of
those targets are truly end-of-life'd the number of graceful feature fall-
backs and work-arounds will likely keep growing.

~~~
valuearb
I don't see this on iOS, for example web browsing is required to be done with
a UIWebview from iOS.

~~~
kitsunesoba
Or better, SFSarfariViewController, which ensures user privacy by being
sandboxed off from the app, supports content blockers, and provides all the
standard system sharing options instead of trying to pigeonhole users into a
subset of highly tracked "desirable" sharing options.

I personally make a point to avoid apps that opt to use a UIWebView over an
SFSafariViewController. The reasons for doing so are rarely in my best
interest as a user.

~~~
valuearb
Right. My point was you have to use a iOS class for web browsing to pass store
review.

------
eridius
It looks like all of these apps had a notable bump in size at about the same
time. I'm wondering what happened at that point to cause this.

~~~
izacus
Probably Apple lifting size restriction.

~~~
mahyarm
It not approaching the 4GB limits, its an addition of 100MB.

------
ianai
Sounds like a 80/20 rule. They initially got 80% of the features with 20% of
the code/digital assets.

Also feels a lot like adware bloat...

------
atonse
I can only imagine that developers are adding assets for all the variations of
Apple devices now, with retina everything. But that still shouldn't add up to
hundreds of megabytes, should it?

~~~
gnicholas
iOS 9 was supposed to fix this asset bloat, with "app thinning".

[https://arstechnica.com/apple/2015/06/app-thinning-will-
be-a...](https://arstechnica.com/apple/2015/06/app-thinning-will-be-a-major-
boon-for-8gb-and-16gb-iphones-and-ipads/)

~~~
valuearb
App thinning works and works well if you use it.

~~~
gnicholas
Is there any way to tell if these apps are using it? On the one hand, big tech
companies should definitely be taking advantage of this capability.

On the other hand, it's possible that their procedures for releasing new
versions — which they do very frequently - don't work as well with whatever
the app thinning procedures are.

Also, if their apps are super popular, these companies have somewhat less
incentive to keep their apps small. If you need the uber app, you'll delete
something else to make room.

~~~
valuearb
The problem is the download size doesn't match the store size, but customers
can't see that. They also have differential updates, but again customer can't
see that.

~~~
gnicholas
Huh, interesting. I got a banner message in the uber app yesterday saying I'll
need to update soon. I declined to do so over cellular because of the apparent
size of the app. Glad to know that's just the worst-case scenario, not the
likely download size.

I wonder how Apple could efficiently display the relevant download size to
users based on device type and previously-downloaded version. I would imagine
this would not be easy to do quickly and accurately, but most users would
probably be happy just have a rough estimate of what the actual download size
would be.

------
htormey
I’m pretty confident that a lot of this is basically because of AB tests.

Even in a top app like Facebook it can take many months to hit statistical
significance on a new feature test. If the numbers on that test are down (I.e
it’s not moving in the right direction) they don’t just give up on it, they
iterate and try again.

Add to this NUXs, not being diligent about deleting unused code and you have a
receipe for a phat app.

------
tmilburn
I broke my 64GB iPhone 6 that and recently switched to a friend's old 16GB 6
Plus and it has been super eye-opening to do the "what do I really need on
here?" dance.

I've switched to a web apps for what I can, which has helped, but it's a
little bonkers for some apps. Pages, Numbers, and Keynote need 1.3GB - almost
12% of the 10.93GB of available free space on the phone.

~~~
randyrand
pay $1 per month for icloud photo/video storage if you havent already.

~~~
mmcnl
Still does not make you able to store apps with a combined size of 1.3GB in
the cloud.

~~~
randyrand
Yup. That's why I said for photo/video storage and not app storage.

------
sofaofthedamned
I don't know much about Apple stuff, but do they allow you to upload different
versions for each type of device DPI etc?

~~~
JimDabell
You can't upload different application bundles for different devices, but you
can put your assets into an asset catalogue with different versions for each
screen density / device type. Then when it's deployed to the end-user, Apple
only includes the assets for that specific device.

------
andrethegiant
Article doesn't mention the bitcode bloat caused by Xcode 8.3.
[https://news.ycombinator.com/item?id=13991851](https://news.ycombinator.com/item?id=13991851)

~~~
colejohnson66
Because that was fixed in 8.3.1

------
joeblau
Can anyone provide some insight as to what happened to gmail? It seemed to be
around the 15MB range then had a huge spike.

~~~
nacs
It was probably all "pure" Objective-C development then someone decided to cut
dev costs by bringing in some huge monolithic library that does everything
from which they use 5% of the APIs.

------
hkarthik
Based on things that I've heard at work from our mobile engineers, iOS apps
written in Swift compile to larger binary sizes than what they saw with Obj-C.
Anyone have any numbers they can share for comparison?

~~~
htormey
Swift adds a few megs but you can minimize that impact by doing things like
this guy did:

[https://blog.halide.cam/one-weird-trick-to-lose-
size-c0a4013...](https://blog.halide.cam/one-weird-trick-to-lose-
size-c0a4013de331)

------
caffinatedmonk
I'd wager a guess that the weight is coming from machine learning models.

~~~
prostoalex
Do any major vendors run ML models on mobile devices vs just shipping the
datasets to their GPU-stuffed data centers?

------
Animats
It's scary seeing 10x bloat in all those apps in just four years.

~~~
ianai
It may be a clue that netflix "only" ramped up by 5x while the others are in
the 10x-20x range. I'm guessing (as I don't use FB) that netflix's app
requires much less user interface design.

------
vermontdevil
That's why I've stopped updating my apps. I just wait for the next major
release. It's utterly pointless to me right now.

------
CalChris
More bandwidth too. Bandwidth was why I removed FB and that's not update
bandwidth which I do over WIFI.

------
josteink
Wtf happened to Gmail?

It used to be small and lean, and suddenly -bam- 10x bigger over night.

Anyone have any insights?

~~~
mahyarm
It's probably the rewrite. It had a big interface change and they probably
imported a bunch of standard iOS dev libs. Like the menu for example.

------
georgeecollins
The resolution of the devices have been going up. 2D assets get bigger in
memory.

------
faragon
Why Apple don't ban bloated/underperforming software?

~~~
valuearb
Why would Apple ban Facebook?

------
douche
I miss phones that had micro SD card slots. Space doesn't matter so much when
you can just plug more in.

------
circlingthesun
Planned obsolescence?

~~~
Analemma_
That doesn't make sense. Apple is telling app developers to make their apps
bigger? Even after introducing things like app thinning and differential
downloads to great fanfare?

No, the fault here is purely with the developers.

~~~
jlgaddis
I agree; seems to me that Apple would want developers to keep apps smaller so
that users can install more of them in the same amount of space / on the same
(e.g. 64 GB) device.

