32 ms·
App sizes are out of control
- peapicker 9y agoThis is definitely getting to be a major problem. I've removed several apps for this reason as well. Code bloat = lost users
- sly010 9y agoI think the way it works in the real world unfortunately is: code bloat => "your phone is full" => "oh, my phone is too old" => new iphone => free space => code bloat That said, I also delete bulky apps before I start deleting media.
- digikata 9y agoYup, and also bulky apps that insist on a two week rolling release schedule...
- tomjen3 9y agoI think it is unlikely that most people care and the improved analytics and development speed is probably worth it. My android is connected to wifi almost 24/7, so it doesn't matter how long it takes up update.
- fulafel 9y agoMost people have small flash and can't fit many apps this size in the space that is left over from the OS and photos/media.
- Globz 9y agoYeah it is a problem, and so far the way most companies fixed this issue is by releasing a 'lite' version which of course is probably not feature complete but will be significantly faster to update and load. If you are on a good network you probably won't ever notice such bloat until you run out of disk space or bust your download limit (Canada) If I find an app to be too big for my taste I normally fall back to the web version if it exist at all but even then its hit or miss because sometimes the web app is pure complete garbage or worse than the app itself.
- rootlocus 9y agoSix apps, six embedded web browsers.
- jamix 9y agoFacebook did flirt with HTML5 but ditched it in the end. So that's not really true.
- sidlls 9y agoThey went off the deep end with their "engineering" of the app (see: https://www.reddit.com/r/programming/comments/3m5n2n/facebook_engineer_ios_cant_handle_our_scale/?st=j5tqiuhc&sh=107e730a https://www.reddit.com/r/programming/comments/3m5n2n/faceboo...). It's really amusing to me when "engineers" start talking about the "scale" of the UI. It's a client. Thin vs. Fat aside, if it's that fat it's almost certainly a bloated mess of redundancy and what is called "overengineering" (which is actually underengineering--that is, a deficiency of the application of engineering and architecture principles to the design of the application).
- Sir_Cmpwn 9y agoAre these slides available anywhere? The backup link is down, too.
- sidlls 9y agoI don't know. I just did a search for "facebook ios can't handle our scale" because I remembered reading this some time ago.
- saosebastiao 9y agoI had a friend who quit working for Facebook about a month before that slideshow was published, and it was hilarious to see her mock it so mercilessly. She estimated a good 40% was completely dead code, and another 20% was partially dead code (e.g. code for notifying people of "pokes" without any mechanism to view them). She also had some choice words for the engineer who published the slides, but those can mainly be pieced together from the general mockery on Reddit and hacker news.
- ghostly_s 9y agoThere were a few articles with actual content on this topic covered on Daring Fireball in recent months. Not sure what this blog blurb is adding to the conversation. 1. https://sensortower.com/blog/ios-app-size-growth https://sensortower.com/blog/ios-app-size-growth 2. http://blog.timac.org/?p=1707 http://blog.timac.org/?p=1707 3. https://blog.halide.cam/one-weird-trick-to-lose-size-c0a4013de331 https://blog.halide.cam/one-weird-trick-to-lose-size-c0a4013...
- Xorlev 9y agoIt's a blog, the content doesn't have to be novel. That said, the author would improve the post by replicating your context links.
- trevor-e 9y agoYea, I wasn't trying to think too hard about the subject, I know there are many excellent posts out there already (like those linked above) that go into detail. I only wanted to show some actual download numbers to demonstrate how absurd it has become. Linking those other articles is a great idea, thanks for the feedback!
- deleted 9y ago[deleted]
- sehugg 9y agoThat second link about the FB app is hilarious. As an example, there are 3 copies of a 3.6 MB binary file used as part of an optical flow algorithm (likely for 360-degree videos) So it's not just that there's a bit of sloppy (or pragmatically careless) packaging, but there's just a lot of stuff in these apps.
- noahmbarr 9y agoShort a major customer outcry, Apple is largely incentivized to not fix this— (1) They substantial profits from memory upsells on their product lines (2) Larger apps take more horsepower to run— so older models become less effective sooner!
- cprecioso 9y agoBut it also adds to their bandwidth and storage bills
- amelius 9y agoBut if Android apps are smaller and faster, people will switch over to Android.
- s73ver 9y agoI highly doubt that. Few people actually know how big any given app is. Plus, there are more compelling things keeping people on their platform of choice, like iMessage or the sunken cost of apps that they've already purchased.
- deleted 9y ago[deleted]
- real-hacker 9y ago+1 for this. I think 16G iPhone6 exists to promote sales of models with larger memory. Now I have to uninstall an app to install a new one on my iPhone(16G), EVERY TIME, it's painful. Next time, I will definitely go for 64G.
- foepys 9y agoOnce upon a time I deleted music and videos from my phone to make room for newer music and videos but nowadays I catch myself removing apps. Not because of the space they are using but because of the app size itself. A once removed app is unlikely to be reinstalled.
- cybrjoe 9y agoI was comparison shopping something this week and wanted to check Best Buy, so I went to the app store. 100+ MB and needed to be on wifi to download. What in the Best Buy app could be over 100 MB? On another note, I just went to check some of my apps and iOS 11 got rid of the size from that view. You now need to dive into each app to see the size.
- jbverschoor 9y agocordova, debugging info, unscaled and uncompressed images.
- jhoechtl 9y agoWhy didnt you go staight to their web site? Its well usable on a mobile browser.
- custos 9y agoI have a cheap phone, and due to this I can only have like 6 apps installed at a time. I'm constantly removing Facebook/Messenger for situations like when I had to download Ticketmaster app for a concert ticket. And with all these apps disallowing you from moving them to SD card, I can't even really use my 32GB SD card for them.
- asah 9y agoprotip: switch to browser-based FB. it's perfectly reasonable.
- colanderman 9y agoAnd, you can still access messages by selecting "Request desktop version" from the Chrome menu.
- lbebber 9y agoOr http://mbasic.facebook.com http://mbasic.facebook.com
- mavhc 9y agoThis is faster than the app for me. My main problems with the app are a) it was pre installed so can't be moved to SD card, b) not only does the app include a snapchat clone I don't use, but it stores 100s MBs of user data too, c) it tells me I have messages, but that requires more 100s MBs to read in another app with another 100 features I don't use.
- maccard 9y agoDidn't know about this one, thanks. That's an extra 300MB free on my phone from removing Messenger.
- qntty 9y agoThis no longer works for me, YMMV.
- kutkloon7 9y agoI never understand where this increasing size comes from. For videos or hi-res photographs, I understand. There is however no reason that code, either compiled to a binary format or in a textual format, uses so much data. Heck, the memoirs of Casanova spans 3000 pages, and is 6,5 MB. People don't understand how incredibly large a megabyte is for simple code. Surely the 275 MB isn't all useful data (I wonder what compression ratios you get on 'apps'), and it should be possible to cut it down to a few MB.
- kutkloon7 9y agoWhile I was typing this comment ghostly pointed out some great blog entries: https://news.ycombinator.com/item?id=14901602 https://news.ycombinator.com/item?id=14901602
- rlv-dan 9y agoCould it be that whenever coders today need some fairly trivial functionality, they tend to go out and find a library that contains it. So you end up with lots and lots of libraries where only a tiny bits of them are used. Just a hypothesis though.
- deft 9y agoI'm pretty sure this is part of it. Remember leftpad? For electron based apps they're just bundling all of chrome which explains the size too.
- allover 9y agoLeftpad is not an example of the issue mentioned. Leftpad is an example of a small module that was being used by a lot of projects. GPP is talking about pulling in larger libraries which contain code not actually used by the app. (Also Electron bundles 'just the rendering library from Chromium' [1], not 'all of Chrome'). [1] https://electron.atom.io/docs/tutorial/about/#core-philosophy https://electron.atom.io/docs/tutorial/about/#core-philosoph...
- 9y ago
- miguelrochefort 9y agoThings will only get worse. The application paradigm is unsustainable. https://medium.com/@miguelrochefort/the-application-paradigm-is-unsustainable-4071f392d2af https://medium.com/@miguelrochefort/the-application-paradigm...
- gue5t 9y agoYou're entirely right, but "it is difficult to get a man to understand something, when his salary depends on his not understanding it" certainly applies to the entire "tech" industry, and the app factory in particular. I expect this realization will only become widespread when open-source folks actually fix their software's deep-seated usability problems. The way to do that is not by hiring UX designers or appifying it; it's by thinking deeply about how humans interact with computers and blowing away the conventions that make computers and software unforgiving, hard to explore, and opaque to the uninitiated.
- kec 9y ago...So by hiring / lucking into someone whose job it is to look at UX. Like a designer.
- sidlls 9y agoThe current alternative, treating the Browser like a poorly implemented, feature-scarce OS on which to run "web apps", is worse.
- TeeWEE 9y agoNormal apps are around 10 to 20mb, which is still big. But the reason for this is support for different screen resolutions. Images of different sizes are bundled with the app, even though the phone only needs on of them. Vector graphics will solve this, but is not mainstream yet. The facebook android app is 88MB (zipped), i did check the APK of why its so big: 90mb of code 30mb of assetes (javascript, metadata, librtc, big json files (animations)) 30mb of resources (images)
- eerikkivistik 9y agoYep, agree with the image bundling issues. We have tried to keep our footprint as small as possible in our own product (3D modeling application https://3dc.io https://3dc.io) and are clocking in at 8mb on iOS. Out of that about 3MB are icons/splash images and other media. Regarding vector graphics, we couldn't use them, as they cause bugs and flickering with css animations in iOS Safari. But we do generate everything we can procedurally (primitives, colorpicker etc.) which saves a ton of space.
- whowouldathunk 9y ago> Vector graphics will solve this, but is not mainstream yet. Then you're trading off battery life vs. space. Vector graphics can be far more expensive to render than bitmaps.
- lcnmrn 9y agoWhy vectors can't be pre-rendered and cached?
- whowouldathunk 9y agoThat's what a bitmap asset is.
- marcosdumay 9y agoExcept that a cache is disposable, and disposed often in practice.
- adamnemecek 9y agoI wonder is this is due to lack of generics in objc.
- miguelrochefort 9y agoI know this affects Xamarin apps.
- chc 9y agoObjective-C has fully dynamic dispatch. In a context like that, generics are just a type safety thing to ensure that you aren't sending messages to the wrong type — they don't make the executable any smaller.
- adamnemecek 9y agoThey make code reuse possible. Watch this Sean Parent video https://www.youtube.com/watch?v=4moyKUHApq4 https://www.youtube.com/watch?v=4moyKUHApq4 where he estimates that if Photoshop was rewritten using generics, the code size would go from 3,000,000 LOC to 30,000 LOC. You are right, during compilation, generics are specialized so you end up with code, however going all in on generics removes a lot of accidental complexity.
- chc 9y agoI think you've misunderstood my point. What code reuse is possible with generics that is not not possible in Objective-C without generics? I don't think there is very much, because Objective-C fundamentally doesn't care the types of objects.
- adamnemecek 9y agoThe full answer would be kinda long but this is a rehash of the debate that has been had many times over. You cannot just compare obj-c vs generics, you need to also account for the fact that when you are obj-c development, you might need some fast code and as a result drop to c. And code reuse is hard to impossible in C. The fact that code reuse can be done without a performance hit is enough of a difference difference on it's own as it pushes down the level at which code reuse can be done. E.g. you can use generics for Graphics or Audio or general low level stuff.
- dineshswamy 9y agoI m building a product that would bring the size of the apps way down
- jorgemf 9y agoWith text-only webs over 5MB I wouldn't expect less from mobile apps.
- pmoriarty 9y agoI remember when apps used to take less than 4k of memory, because 4k was all the RAM in your computer. Then I remember downloading a 3 MB mp3 on my 9600 baud modem and being amazed at how much space was taken up by music that sounded realistic and not like just a bunch of beeps out of speakers that could only make beeps. Then came the old joke about EMACS standing for "Eight Megs and Constantly Swapping". Then I remember noticing that commercial software like games filled up a full CD's worth of space (back when software was distributed by physical CD's). After that it was common to ship software as multiple CD's, then multiple DVDs. Now, is software even shipped on DVDs anymore? I just download everything, and, yeah, apps are still bloating, same as ever.
- Krunkel 9y agoRight? I just got a new phone that has 128 Gb of internal storage. 334 Mb app? no problem.
- MBCook 9y agoWhen it only has the functionality of a 20Mb app... it's a problem. When EVERY app does the same thing? It's a problem.
- Krunkel 9y agoFrom that perspective, you have a very valid point.
- MBCook 9y agoIt's really crazy. Overcast (my favorite podcast app) is under 10 MB because Marco cares about things like that. Here's some of what's listed in the update list on my iPhone: Chipotle is 92. The kindle app is 171 (perhaps the fonts?). The Amazon app (which is mostly a web view anyway) is 127. Robocall blocker? 22. Verizon app? 160. An app for tracking streaks of achieving task? 65. Slack is 123. Clips? The Apple app for making little movies that includes a fair bit of art? Only 55. That makes sense. Authy? To show 2-factor codes? 65! Outside of games (which have a lot of assets) app sizes seem to have absolutely no correlation to what they actually do.
- post_break 9y agoPretty soon these will start to hit Apple's limit on downloads over cellular (something I still can't believe exists in 2017).
- istajeer 9y agoYou're typing from a first world country where there are not huge cellular costs or speed limitations. If you go to other countries, even say, Botswana, the option to download over a gig in apps every (other) week isn't cheap. Bandwidth costs.
- SketchySeaBeast 9y agoAs a Canadian, to get 2.5 GB of data from a larger cell phone company costs me over $100 / month (there are smaller companies that will reduce that, but still, it's little data for quite a bit of money). I'm very happy I can force things to download only over WiFi.
- mtl_usr 9y agoDon't worry, you can get to third world carrier really quickly by taking a Greyhound bus to Canada.
- tushar-r 9y ago>(something I still can't believe exists in 2017 Something that I'm very happy about in 2017 :-) Data is expensive in many places, and wifi/broadband is typically cheaper.
- post_break 9y ago"It works for me so you shouldn't need the option" mentality at heart. I have unlimited data so why should I be under a ridiculous limit?
- mikeash 9y agoIt should definitely exist, but Apple's one-size-fits-all approach is pretty dumb. It ought to be configurable. The 100MB limit is way too big for someone on a really limited cellular plan, and way too small for someone on a high-end plan.
- ajross 9y agoFolks: there's a built-in technology on your phone that allows you to load and run an app on-demand over the internet without dedicating any internal storage at all! It allows clean integration with many of the "native" features you expect like camera and notification and timers and stuff. And it's based on completely open standards with multiple, competing open source implementations. No, seriously: uninstall that junk and just run stuff in the browser. It works much better than you think, the biggest annoyance being all the nag screens sites throw at you to get you to install their apps.
- linopolus 9y agothe biggest annoyance being that these are even less integrated and fine tuned to the environment than all those bloaty corporate apps. The best apps still are made by small indy developers, feeling right at home in their OS. Take for example Instapaper, Fantastical, Outbank, Due, Reeder.. You just can't make web apps so polished, so well integrated into the OS..
- mikeash 9y agoI'm afraid it's exactly as bad as I think. I use web sites instead of apps whenever I reasonably can, but most stuff I use frequently is much better as an app.
- s73ver 9y ago"It works much better than you think" It still doesn't work as well as a native app.
- H4CK3RM4N 9y agoFacebook in particular likes to break their web apps to push you to use the native one. If you ever need to use Facebook in the browser try mbasic.facebook.com(it even includes their messenger). Also, relevant xkcd: https://xkcd.com/1367/ https://xkcd.com/1367/
- kalleboo 9y agoWhat is it that keeps online web apps from turning into the bloated monsters that Electron apps are on the desktop?
- gok 9y agoAwesomely, this blog post of less than 200 words and one screenshot loads over 1.41 MB for me. Software expands to fill all available resources.
- vanderZwan 9y agoFor the few among us who haven't read "The Website Obesity Crisis", this is as good an excuse as any to link it again: http://idlewords.com/talks/website_obesity.htm http://idlewords.com/talks/website_obesity.htm
- agentdrtran 9y agoThe only issue I have with that site is that it's awful to look at.
- trevor-e 9y agoSorry for the extra bandwidth, forgot to optimize the images.
- chubot 9y agoWell that's your answer to your question. You forgot to optimize the images, because with your test environment, you don't notice it. If you were testing over a dial-up connection, you would notice it. Same with app writers. They forgot to optimize their app because they're testing it on the latest and greatest phones on their home network (or a corporate network which is blazing fast). If they tested on a low-end phone, and actually performed the update themselves over a slow cell network, they'd probably notice it. Many common tools aren't set up for common-sense optimization. Ideally resizing images would be an automatic step, and you wouldn't have to remember. But that's not the case. I'm sure that there are plenty of iPhone apps with 2 MB images from a camera, when a 256 KB image would do.
- Apocryphon 9y agoSure, but the apps the blog talks about aren't two-man teams. And some of these firms were already touted as dogfooding their apps under resource constraints- https://thenextweb.com/facebook/2015/10/27/facebook-starts-2g-tuesdays-so-employees-can-see-what-speeds-are-like-in-india/ https://thenextweb.com/facebook/2015/10/27/facebook-starts-2... They should be doing better than this.
- msoad 9y agoOne word: Swift It's making app bundle sizes explode in size
- ge0rg 9y agoCould you please elaborate, or provide examples? I can see how high-res pictures embedded in the app can add dozens of megabytes, and maybe a different runtime that you have to bundle for compat reasons, but multiple hundreds of MB?
- mikeash 9y agoThe lack of a stable ABI means that the Swift runtime libraries have to be bundled into the apps, which accounts for around 10MB of bloat. Unfortunately, 10MB is almost unnoticeable on the scale of bloated apps these days. Does Swift do anything else to make apps bigger?
- galad87 9y agoSwift libs are ~ 10 MB, still 265 MB to go.
- svenfaw 9y agoWhat blogging engine is this? Real nice and clean.
- jspash 9y agoThere is a reference to django.css in the source, assuming you meant the style. As the blogging engine wouldn't necessarily dictate the cleanliness of the look.
- Rjevski 9y agoAnalytics and ads/tracking is one of the reasons. They're always writing/including more code to track every single click and pixel.
- r0ze-at-hn 9y agoThe only real solution I can think of would be if apple actually incentivized app creators to reduce their size. They are actively harming the Apple ecosystem by preventing users from having a large number of apps which hurts Apple. * Charge owners a fee for apps over a certain size "a processing fee" or whatnot * Charge owners a fee based on the download costs. Under XMB and it is free. The more you cost apple to transfer your app to their customer the larger the fee. * Penalize large apps in the app store search results or give bonus to smaller apps. Or rather than straight up bonus's / penalize apps based on size go after specific things that cause bloat * Apps that don't use pngcrush on their png's * Shipping wav files and not acc * ... Maybe Apple doesn't even need to actually implement any of these, but just threaten to.
- twsted 9y agoMost of the time it's the same reason why web pages are MBs in size today: lazy developers that uses a new library for every feature they need, without a deeper analysis of costs and benefits.
- jaclaz 9y agoNot only, there is IMHO also a "technological supremacy" bias. Quite obviously most developers will have: 1) VERY powerful hardware 2) VERY fast (and unlimited) internet connection It's not like (they should do it as part of quality assurance or similar) they take a car, drive in some remote countryside, possibly in the middle of nowhere, stay there a couple days and try accessing their website (or running their app) on the lowest/cheaper entry level hardware on a metered connection. It's easy when you have a T1 or faster connection on a recent top-hardware to forget how a lot of other people have slower devices, with less memory and limited bandwith and metered connection.
- thehardsphere 9y agoThis absolutely. I wouldn't be surprised if half of the outrage about file sizes simply comes from the fact that there are people who remember what software was like before all of this "technological supremacy" was a thing. People joining the workforce today didn't grow up with the experience of installing something off of seven floppy disks, which would have been considered an emormous program before the CD-ROM drive was common. They also don't know how much better those programs run, because they had to do so with 8 MB of memory or less and nowhere near 1 GB of hard drive space. It's pure decadence.
- jaclaz 9y agoOT but not much, and JFYI, I started using an alternate unit of measure for web page sizes, the Doom: https://twitter.com/xbs/status/626781529054834688 https://twitter.com/xbs/status/626781529054834688 https://pbs.twimg.com/media/CLLGenwWgAAZAVv.png https://pbs.twimg.com/media/CLLGenwWgAAZAVv.png Like: Hey, nice home page it is only 3 Dooms ...
- saosebastiao 9y agoThe Phillips Sonicare Kids app, which is nothing more than a simple game for kids to track brushing their teeth, is 245MB. I guess the good thing is that it gave me an opportunity to teach my kid about tradeoffs. "Ok, so if you really want this app, we're gonna have to delete 4 of your other games on the iPad." Even a 5 year old could reason his way out of that one.
- deleted 9y ago[deleted]
- laurencei 9y agoThe problem is it's not really in Apples interest to get app sizes smaller. Larger apps means you have more "need" to upgrade your phone to the latest version with more space, power, speed etc.
- nerdponx 9y agoThis is usually my thought when I see issues like this. If Apple wanted to fix the problem, they would fix the problem.
- wooter 9y agothis incentive analysis is so shallow it doesn't pass first muster. does fitting/selling more apps make Apple more money? are storage and bandwidth expenses? do users value performance? most people here seem to agree more bloat = less users.
- s73ver 9y agoExcept they have been working on it, by repackaging apps to strip out unneeded assets. And it is in Apple's interest to have smaller apps, because then people will be able to download more apps. They'll be willing to try more apps, because there will be less of a barrier between seeing the download button and being up and running.
- MBCook 9y ago
- dallamaneni 9y agoI have been replacing traditional apps with PWA's or mobile websites wherever possible (on Android). They hardly take up any space and also seem to behave well (drains less battery) compared to traditional apps. I could replace the following with PWAs: - Twitter - Uber - Lyft - Google news - Instagram - Flipboard - Shopping sites like Walmart, Wish and many more. Facebook and Amazon have no PWA's but have mobile websites. (Facebook mobile web works well with Opera. On other browsers it annoyingly redirects to play store to install messenger)
- Twirrim 9y agoPWAs? Public Welfare Assistance schemes?
- Piccollo 9y agointeresting how Google’s personalized search results gave me the right definition of that
- spcelzrd 9y agoProgressive Web Applications It's the new name for a home screen bookmark.
- jessaustin 9y agohttps://developers.google.com/web/progressive-web-apps/ https://developers.google.com/web/progressive-web-apps/
- hutattedonmyarm 9y agoProgressive Web Apps
- groby_b 9y agoPretty^W Progressive Web Apps (https://developers.google.com/web/progressive-web-apps/ https://developers.google.com/web/progressive-web-apps/) Essentially, apps on the web that feel and behave like a native app.
- 9y ago
- pascalxus 9y agothe solution is, everyone should uninstall these apps. if everyone did that, i bet you they would fix the problem reallly fast. This is why i uninstalled pokemon go -> it used up to much data and to much battery. Uninstall -> problem solved. unfortunetly, the vast majority of people don't care about app sizes, or how much data they use, etc.
- DamnInteresting 9y agoOne of my first jobs was as a technician at a tech support call center. For a while around 1997-1998, a good 1/3 of our calls were customers who ordered a new system with a hard drive over 2.1GB, but Windows/DOS could only make partitions as large as 2.1GB. Customers wondered why they got a smaller hard disk than they ordered, not realizing the extra space was that Drive D under My Computer. Fast forward to today, where my MacBook keeps nagging me that my "hard disk" (actually an SSD) is "full" because I only have 3GB of free space. In 20 years, what was once considered the maximum is now considered negligible. Optimization is important, but regardless, software size is going to keep growing. Wringing hands over it doesn't help much.
- saagarjha 9y ago> my MacBook keeps nagging me that my "hard disk" (actually an SSD) is "full" because I only have 3GB of free space That's because it will use that space for caches and swap, and you're preventing it from doing so and making the system slower.
- DamnInteresting 9y agoYes, I know. My point was that today's "practically none" was 20 years ago's "more than the OS can handle."
- fireflash38 9y agoThis misses a large point of the article: It's not the storage size that is problematic as much as the transfer size. Websites and developers really need to be aware how long it will take for someone to even get your product. If a website doesn't load in X seconds, you're losing Y customers. If your app takes an hour to download, your customer has probably already moved on in frustration.
- cakedoggie 9y agoYes, this guy doesn't seem to care at all about it, beyond writing a blog post. If he did, he would remove those huge apps and find alternatives.
- antfarm 9y agoLEGO's app for their new robotic toy is 1.03 GB. https://itunes.apple.com/de/app/lego-boost/id1217385613 https://itunes.apple.com/de/app/lego-boost/id1217385613
- iamben 9y agoAs someone with 16gb of space on my phone (before the OS), this has become really noticeable. It's a breath of fresh air when you install an app (like the habit tracker I installed the other day) and it's only 2mb... It's worse knowing something like Facebook will cache a whole bunch of images, friend pictures and everything else.
- romulof 9y agoDidn't Apple implement delta updates for apps?
- Apocryphon 9y agoIt's pretty rich how these companies are well known for the rigor they apply to interviewing candidates on technical subjects, yet actually drop the ball in production with poor engineering like this. Where does that rigor go after the interviews are done? Are there any examples of well-known apps from large organizations that aren't excessively large in size?
- jamieomatthews 9y agoI work on Amazon Prime Photos iOS app. It's currently 60mb in size, and a good chunk of that is the Swift runtime. Even the main Amazon shopping app is less than 100mb.
- hengheng 9y agoI'll bite. In what ways can you use up 100MByte with a fancy reimplementation of an online shop? That should be enough for a text to speech engine, or a 3d engine with quite a few assets. I am being deliberately ignorant, having no idea what functionality one might add, but I'm actually genuinely curious. All that I see is a small databse and a lot of assets that are being downloaded on the fly.
- Nightshaxx 9y agoI believe it does have a text to speech engine......the Android app has one.
- acdha 9y agoI don't know the division of work between the app and server but don't forget that the app includes some level of voice recognition, and has not just a bar-code scanner but enough of a computer vision system that I can pretty reliably look up products simply by taking a picture of them.
- swrobel 9y agoThose apps are standouts but generally Amazon iOS apps are appalling. Alexa is 78MB of pure UX hell.
- samdung 9y agoIm just guessing this is to corner of a good amount of disk space so the app does not stop working from lack of space. An analogy is when downloading a torrent; the torrent blocks a chunk of space on your disk equivalent to the size of the file being downloaded. As the file is being downloaded it replaces junk in the blocked chunk. Again all this is my speculation.
- stormcode 9y agoAdvertising APIs.
- jarjoura 9y agoThose numbers are mostly unfair. For some reason in the iOS 10 App Store, Apple started listing the complete fat (both 32-bit and 64-bit archs) submitted .ipa size. If you want to easily test that, clear your cellular data usage, update one of those apps (or install) and then go back to settings and see the actual bytes transferred. Also, most everyone is using Swift in some small part, so that automatically includes the standard library. Then you have some companies who switched to Realm DB away from CoreData. Or then there's a whole subset of companies that have decided they want to go all in on Javascript and have brought in the whole React Native stack with it. These apps in that list are also built by teams of 100s of engineers working at full speed. In reality, each one is its own little OS full of its own UI frameworks, testing frameworks, and nontrivial code. Trust me when I say that everyone is plenty aware of how big their footprint is getting, and no one is happy about it. Apple won't even let you submit to the store if the actual single architecture binary is over 60MB.
- babesh 9y agoIt’s partly unfair and only a partial picture. Many apps post install proceed to download data. Some limit that amount of data they download but a few are indiscriminate about it. I hated the Yelp app because it seemingly did not limit how much space it took up. The more reviews you viewed, the more space it took up. I never found a setting to limit it. If you go to Manage Storage you will discover that many apps take over 100mb in documents and data.
- ehsankia 9y agoI'm curious, does anyone have the equivalent app sizes on Android? I'd love to see a comparison, to see if this is more of a platform issue as mentioned in a few comments, or a developer issue. I guess we also should be looking at the actual data transferred rather than the number shown on the store page.
- MBCook 9y agoI'm 100% willing to believe this is a universal problem and is just as bad as Android. I'd be FLOORED if Android apps were significantly smaller.
- apl002 9y agoThere are more native capabilities now on devices which require more SDKs to leverage this functionality for cool stuff. The size of some of these SDKs are huge and bloat the size of your app.
- apl002 9y agoThere are more native capabilities now on devices which require more SDKs to leverage this functionality for cool stuff. The size of some of these SDKs are huge and bloat the size of your app.
- jimbobjim 9y agoThe reason the LinkedIn app is so big is the number of frameworks they use. 87 frameworks accounting for 248MB of the 277. The swift runtime takes up about 20MB, and something called VoyagerFeed takes up over 190. All the images actually only make up about 12MB. There's also about 0.5MB for each localisation.
- iamatworknow 9y ago>something called VoyagerFeed takes up over 190 "LinkedIn’s new flagship app, nicknamed “Voyager,” is a complete architectural and design overhaul available for iOS and Android, as well as an online mobile experience, in the coming weeks." https://thenextweb.com/apps/2015/10/14/linkedin-voyager/ https://thenextweb.com/apps/2015/10/14/linkedin-voyager/ Sounds like "VoyagerFeed" may be part of their own codebase.
- vladdanilov 9y agoThe situation is messy. Take Facebook.app. The reported size on the App Store is 377MB, the distributed .ipa is 241MB. But it is a universal app which includes fat binaries arm_v7 and arm64 and all the graphics 1x, 2x and 3x. App Thinning halves that size for end users. Yet the App Store reports the full size. There's more. App Store also provides some sort of delta updates [1], which save a lot bandwidth, but failing to report it properly again [2]. App Thinning does not work for standalone image assets. It means you are forced to use Asset Catalogs where all PNG files are stored as LZFSE (previously zip) compressed BGRA bitmaps. It's good. But optimized PNG files can be 30-50% smaller on average. I'm fighting this [3] but not sure if there's a simple solution. [1] https://developer.apple.com/library/content/qa/qa1779/_index.html https://developer.apple.com/library/content/qa/qa1779/_index... [2] https://twitter.com/rjonesy/status/878051126704254976 https://twitter.com/rjonesy/status/878051126704254976 [3] https://twitter.com/vmdanilov/status/892015508203216896 https://twitter.com/vmdanilov/status/892015508203216896
- mfabbri77 9y agoI was wondering why not use SVG (or any other vector file format) files and render all the graphic on the device, instead of including tons of PNG at various resolutions.
- LocalH 9y agoBecause the experience is subpar when that is done. It is impossible to create a vector image that will result in clean, unblurred strokes at arbitrary small pixel sizes. Don't even suggest using TrueType-style hinting, I don't think any designer would want to touch that with a 10 foot pole.
- justinclift 9y agoWouldn't it make sense for the file format to just allow svg in addition to others? eg png is fine, but if a developer wants to include svg then let them. For developers who do care about the clean, unblurred stroked at arbitrary pixel sizes this wouldn't impact them at all. For the developers who care more about the space taken up, this would give them a potential useful option.
- davexunit 9y agoIs anyone else worried about the massive amounts of bundled third-party libraries that come with each app from a security, rather than a size, perspective? What happens when such a library receives a security patch? AFAIK it's up to each developer to keep all bundled libraries up-to-date, which means that, realistically, everyone is shipping lots of vulnerable stuff and they don't even know it. "This shirt is dry clean only, which means it's dirty."
- nrhk 9y agoYes that's exactly what it means, React has 630 dependencies so 630ish separate libraries and components. You might even stop updating a component since the new versions change the interface and end up breaking sections of your codebase. The idea is that because it's all open sourced, all the vulnerabilities will be found and patched. But more often than not you just end up missing the small notification from the maintainers telling you to update.
- gregoriol 9y agoI tweeted some frustation about this a few days ago (https://twitter.com/GregoryOriol/status/889859849353383937 https://twitter.com/GregoryOriol/status/889859849353383937). What is surprising me, is that in the Facebook iOS app, there is a "FBSharedFramework.framework" that has a binary file of 215MB. What the fuck is this? How a single binary can get that big?
- LeoNatan25 9y agoFacebook is THE mother lode of terrible engineering. They have turned it into an "art". You can see it across their end user offerings, as well as their open source ones. What is perplexing is that they have some of the most talented engineers out there. I'm guessing those people are using the resources of the company to research and do what is interesting to them, while clowns run the actual projects.
- kalleboo 9y agoAnd here's a source to prove it: http://quellish.tumblr.com/post/126712999812/how-on-earth-the-facebook-ios-application-is-so http://quellish.tumblr.com/post/126712999812/how-on-earth-th... > "In the case of the Facebook application, there are more than 18,000 classses in the application" 18,000 classes. Absolutely ridiculous.
- slaymaker1907 9y agoAnd supposedly we don't need PWAs according to Apple...
- nrhk 9y agoJobs wanted PWAs before they were around. The devs for the first version of the iPhone were told to write web apps until we realized the dev environment just wasn't up to snuff. We're finally getting back to that original vision.
- fledder 9y ago275MB for LinkedIn is the complaint, to one-up that...I recently got an update for Hearthstone on iOS of 2.3GB. It adds one pack of cards.
- ringaroundthetx 9y agoIn several interviews I've been questioned about the importance of my contributions throughout my entire career because the apps sizes were so small (typically 8 - 12 mb) When asked it was clear they'd already made up their mind, and discussions about optimizations, how the app actually did anything, MVC, MVP or SVGs didn't change that. And thats how you have large apps!
- flukus 9y agoTo paraphrase Bill Gates, that's like measuring an aircraft designers skill based on the final weight of the aircraft. Any idiot can create something bloated and complex, creating something small and simple requires much more effort.
- rimliu 9y agoBut when you think about it, final weight of the aircraft does say something? I guess an amateur could design something like Cesna and have it flying, but designing An-225 is a different matter.
- flukus 9y agoThis is more like people building a Vesna but having it turn out the weight of a 747.
- randyrand 9y agoIt would be cool if users could specify a max size for an app, and then the app tries to meet that size or be deleted.
- jmduke 9y agoWorth pointing out: The author of this article works at Kayak, which has an iOS app of 176MB. https://itunes.apple.com/us/app/kayak-flights-hotels-cars/id305204535?mt=8 https://itunes.apple.com/us/app/kayak-flights-hotels-cars/id... (As far as I can tell, the answer to "why is LinkedIn.app so large?" is not "because LinkedIn's iOS team sucks", but "because LinkedIn's iOS team works under a number of constraints, including app size, and app size is not a particularly powerful constraint to optimize for.")
- akulbe 9y agoI have a limited understanding of how this works, but could it be that app devs are leaving debug stuff in the builds, and not removing that when it gets pushed to production? Please, educate me. I'm all ears. :)
- tjl 9y agoOften, it's really bad design. For instance, Facebook's app has 18k classes. In other cases, it's a lot of big 3rd party libraries.
- crazygringo 9y agoIt's not just the install size, but apps which accumulate and seemingly never delete data. For a while I tried to get by with a 16GB iPhone SE thinking I keep everything in the cloud, so why would I ever need 64GB? Well every couple of months I'd have to delete and re-install NYTimes and reddit and some magazine apps because they just grew and grew and grew in storage until I had 0 space left. Like they simply cache everything you've ever looked at. It's dumb, because other apps are intelligent -- they'll automatically purge cache data when storage gets too low. But not NYTimes. Not reddit. It seems pretty inexcusable, really.
- bathtub 9y agoThere was a time when people used more and more websites because they were fed up with desktop apps. Hopefully we see the same soon again.
- coldcode 9y agoOur app downloaded is just under 100MB. Biggest part? Google Maps For Business at 30MB. Why do we use this monstrosity? We signed some marketing deal with Google. We have a replacement using Apple Maps thats about 2MB. But the beancounters won't let us use it because of the $. Not every size problem is some programmers fault.
- necessity 9y agoDon't download them? Out of those apps the only one you actually need is Uber, everything else can be replaced with a web browser. I don't download anything larger than 5MB unless I absolutely need it.
- mahyarm 9y agoSwift induces large binary sizes through the language itself. You'd be surprised what a simple optional if let creates in assembly, or how it uses template specialization with pretty much every typed collection interaction or some other standard library interaction. That plus the 10-20+MB that the swift standard lib adds contributes a good chunk. Once ABI stability comes in and a bunch of in progress size optimizations come in, binary sizes will decrease quite a bit for swift using apps. Apple also encrypts then compresses, which means the binaries you download in the app store are incompressible. If apple wants to decrease IPA download size worldwide, they would let developers not encrypt their app and just sign them. That would be very relevant for developers of popular free apps. I'm guessing they encrypt then compress so they wont have to re-encrypt the binaries on the users phones once they uncompress an app. Also all the SV big-co have A/B testing practices with weekly release cycles that induces large line counts in their apps. I think everyone copied the facebook mobile dev style, which simulates what you can do in webdev. In webdev there is no cost to adding another team for another feature that lives in some section of the greater app, since it's just another webpage. You can create many a/b tests and rollback things nearly instantly. With the weekly cycle everything is under a feature flag and you'll see a bunch of half developed features sitting in the delivered binary turned off via feature flag. This induces code size and creates these kinds of issues you see today. Also large apps start requiring management structures that I call hallways and elevators. A single indie app can make a equivalent of a 1 room hut of an app, which doesn't require any hallways, elevators, floors, boiler rooms, parking structures or stairs. If you look at the layout plan of a highrise, you'll start to realize a lot of the floor space is taken up by the elevator and hallways. Once apps become as large as a highrise, then they start requiring code structures that help manage the chaos, such as reporting systems, rollback systems, well defined tree structures and so on. That and the shear amount of rooms they have create apps larger than they look.
- Raynak 9y agoMy phone currently only manages 2 non-default apps. If it could actually install to SD like it promises I'd be happy.
- cakedoggie 9y agoPeople don't care about app sizes, otherwise it would be an issue. Look at this poster, he doesn't care. He isn't going to remove any of those apps. There are runner apps that are a lot smaller, but he doesn't care about the size of the app enough to guide what he downloads. Empty blog posts are empty. "Why is there so much traffic, someone should do something, I hate driving these days."
- mikulas_florek 9y agoHow do you know people do not care? There are billions of people with phones without enough space and slow or almost nonexistent internet access. They are just not vocal about it.
- wingworks 9y agoInterestingly LinkedIn reports on the Play Store as only 20MB. Though once installed it uses 111MB.
- aussieguy123 9y agoWhy isn't rsync used to update apps, instead of passing archives around?
- anon4728 9y agoApps need idempotent incremental recompilation that doesn't rewrite the whole executable or bundle. This may mean major changes to Apple LLVM, in terms of bitcode and binary object generation. Furthermore, app developers need to: - use thinning and slicing correctly - remove extraneous files - optimize assets: resolution, compression, minification
- isseu 9y agoWhy swift runtime is not included as part of ios ecosystem?
- habosa 9y agoI am surprised at all of the app developer shaming in this thread. Is it really likely that every developer working on a popular BigCorp app is an idiot who imports 10MB libraries every time he/she faces the slightest challenge? It's much more likely that app developers are optimizing for many things, including app size, but reducing app size has a bad cost/benefit ratio. Here are some decisions that may bloat your app: * Want your network calls to be fast and reliable? Better use that cool new HTTP library rather than writing your own. * Want to keep everything secure? Rule #1 of hacker news is never roll your own crypto so better import the best lib out there. * Want to delight your users and their fancy QHD screens? Time to include some high res images and animations. Oh and you can't use vectors, they kill performance. * Want to access new markets? Time to translate your strings into 80 common languages. Oh and some of these may require custom fonts to look right in your app. * Want your Android game to have blazing fast graphics? Import that native library, and don't forget multiple architectures. The biggest app I ever worked on was Google Santa Tracker. It was about 60MB. We spent a lot of time optimizing the app size in this year's version. We managed to drop 10MB while adding a few new games to the app. I'm proud of it, but if I didn't have the freedom to pursue app size I certainly would have taken the extra bloat to ship the new content. https://android-developers.googleblog.com/2017/03/getting-santa-tracker-into-shape.html?m=1 https://android-developers.googleblog.com/2017/03/getting-sa...
- kijin 9y agoEvery popular mobile OS has standard libraries for making HTTP requests and doing crypto. I can forgive games for sacrificing size in favor of high-res animations and a blazing fast graphics stack, but I don't think LinkedIn, for example, is in need of particularly fast graphics.
- toast0 9y agoIf you've had to look at a pcap from what the android standard libraries do for https chunked upload, you would cry. One tls packet for the per chunk header, one for the chunk of data, and one for the carriage return newline. I've thankfully forgotten if these managed to also be separate tcp packets. Given that, I don't think it's unreasonable to consider using a library to do it better, although you have to weigh the increase in apk size. The standard crypto libraries on the phone are great if the features you need were released 5 years ago, but if you want consistent behavior across Android versions and manufacturers, you need to include that yourself too.
- FraKtus 9y agoWe released 2 apps on iOS and Android. One is 0.8 MB and the second just at 1.8 MB. Obviously we have not a lot of graphics embedded. We use mostly C and 2 cross platform projects SFML and Nuklear for the GUI. The GUI is more in the gaming style but for us it fits the bill and we render at 60 FPS on most devices including the iPad mini original of my daughter.
- hamandcheese 9y agoPeople here seem to be blaming over eager use of third party libraries for a lot of bloat. Is there no such thing as dead code elimination for apps that would eliminate the unused portions of your dependencies?
- tehlike 9y agoI'm pretty surprised nobody mentioned proguard. Almost noone enables that, unless they have to, and that's part of the problem.
- cipriancaba 9y agoNot sure that Apple has any interest into reporting smaller sizes.. They have interested in having lower download sizes (less strain on their servers) and users buying the bigger and better memory storage.. Along with the iCloud subscription of course..
- tjl 9y agoThey're working at making smaller apps on people's iPhones. They strip out all the graphics that don't apply to the given phone that's downloading on, plus bitcode is compiled for the specific architecture, so you don't have multiple architectures installed that you don't need.
- real-hacker 9y agoA major culprit of the bloat is the monolithic 3rd-party libraries/frameworks. You have to import the whole thing, even if what you need is just one simple function. Of course, you have the option of carefully studying the code, and hand-pick the part of code you need, but most developers will not do this, due to poor ROI. One way to solve this problem, is to promote modular library structures, and package management tools (pod, npm) should support importing fine-grained submodules, even single features of a library/framework, whenever possible.
- katastic 9y agoEveryone keeps saying this, and it's probably true. What I don't get is... why the hell these libraries everyone is using don't support MODULAR compilation. Why are they including stuff people aren't using? I'm not an app developer. But I've known about libraries that section off lesser used code as "addons" since... well... since I started programming. This seems so fundamental I don't understand why everyone isn't doing it. Especially considering the gains are far greater in the mobile and web world than desktop.
- real-hacker 9y agoAnother question has to be asked: do they have the motivation to reduce the size of apps? Earlier this year, Wechat released a revolutionary (kinda) feature called 'Miniapp', it supports releasing apps within Wechat itself (a bunch of xml/js files). All major Internet companies published their own miniapp in Wechat, which include s the most-used feature of their full app, and only takes less than 1MB of space. Guess what? the miniapps are not adopted by most users, it became just a fad. This means most users are not sensitive to the disk space used by an app. Apps know this, and thus don't have motivation to reduce the size.
- yorwba 9y agoI'm not sure how your anecdote is supposed to show that users don't care about disk space used by an app, as opposed to not liking one particular attempt to reduce it. WeChat also includes a feature to manage storage space on a per-chat basis, and I have used it before when I ran out of space. Thing is, some Android users (like me) are at the limit of their internal storage and some apps can't be moved to an external SD card for some reason. Before installing a new app (or indeed just an update), I have to decide which of the hellishly bloated apps on my phone I can delete to free up space.
- oblio 9y agoThey don't. It's the same race we had at the start of the PC race. Most of the "optimizers" optimized themselves out of existence while twiddling bits in assembler.
- userbinator 9y agoNo discussion of bloat is complete with a mention of the demoscene, where sub-MB applications generate immensely complex graphics: https://news.ycombinator.com/item?id=11848097 https://news.ycombinator.com/item?id=11848097 https://news.ycombinator.com/item?id=3843427 https://news.ycombinator.com/item?id=3843427 https://en.wikipedia.org/wiki/.kkrieger https://en.wikipedia.org/wiki/.kkrieger (I'm aware that these sizes do not include the OS and its libraries, but apps on a mobile device also have a similarly rich environment of libraries they can use.)
- ourcat 9y agoJust wait until they start adding 100Mb+ (Core)ML data models after iOS 11 (with A9+ chips).
- kmfrk 9y agoI hope someone might take it upon themselves to make a Wall of Shame to let me know which apps I should just uninstall if I rarely use them. Although the updates aren't always huge, Slack has been an atrocious app on Windows and iOS for performance and indexing. Absurd that the biggest companies have, well, the biggest apps.
- draegtun 9y agoWhen i see articles like this it always reminds me of Carl Sassenrath's Fight Software Complexity Pollution - http://www.rebol.com/article/0497.html http://www.rebol.com/article/0497.html
- Zigurd 9y agoPile on the frameworks to speed development and to make mobile development more familiar-feeling for non-mobile coders. Instrument every user interaction. Use a cross-platform SDK. Squeeze every penny out of every ad network. Whoops! Bloated.
- titanas 9y agoMany apps are loaded with lots of A/B test, increasing the binary size .. because A/B testing