[HN Gopher] I shaved 187MB off United Airlines' 439MB iOS app ___________________________________________________________________ I shaved 187MB off United Airlines' 439MB iOS app Author : trevor-e Score : 488 points Date : 2022-02-23 16:04 UTC (6 hours ago) (HTM) web link (telkins.dev) (TXT) w3m dump (telkins.dev) | azinman2 wrote: | What is the Android size? Google play store tells me it varies | with device, and I don't have any android devices. | haxiel wrote: | 76 MiB for my Android device. | mwcampbell wrote: | I think the most effective way to fix this systemic problem would | be for app stores to start charging developers for app size, both | for storage and outbound transfer. And for desktop apps | downloaded from websites, all hosting providers and CDNs should | start charging for egress like the big cloud providers do, in | acknowledgement of the fact that bandwidth isn't free. Yes, I | recently migrated some of my company's infrastructure off of AWS, | in part so we wouldn't have to pay for egress. I now believe the | world would be better off if we didn't have that option. | tantalor wrote: | If app sizes trend down, it might serve the users well, but it | would depress iPhone sales as fewer users would need to upgrade | storage. | | Which one do you think Apple cares more about? | srvmshr wrote: | If App sizes go down, its a win for Apple as well: | | 1. Faster update downloaded to devices compared to before & | to Google/Android. That's a big PR win. | | 2. Most badly behaving apps have tons of unnecessary process | & their binaries. Also storage is taken up by UI assets. If | these are streamlined & reusable, the footprint goes down. | That means less RAM can still do fine. | tantalor wrote: | > big PR win | | But it wouldn't move the sales needle. Nobody is going to | switch from Android because they were waiting for smaller | download sizes. | | > less RAM can still do fine | | That's bad for Apple because it discourages upgrading. | srvmshr wrote: | Regarding PR, it adds ammo to their oft repeated claim of | "best mobile OS" (Not that I fully agree) | | Size and RAM (and indirectly a modest battery life gain) | will be a win for whoever uses, regardless of our | personal views on this matter. When developers throw in | big frameworks mindlessly, they assume best case use. | Minimalist and efficient coding will actually win across | the board whichever way you look. | | As far as Apple devices go, they are getting support way | longer than Android flagships. Apple is devious possibly | in many ways, but they don't get to win by 'planned | obsolescence'. Much rather the opposite: as new | generations of devices come in with newer hardware, they | don't have to crazily support a lot of firmware and | instruction sets. Only the ones which satisfies the newer | frameworks. If they did, they will turn out as another | Intel (which famously supported a lot of opcodes all the | way back to 386). Their fanbase has some (valid) strength | based on a lot of older generation devices still getting | OS upgrades which they might normally wouldn't have. | swalls wrote: | MS did this with the Xbox 360. Developers just stopped updating | their games. | blah_humbug wrote: | We _need_ bloat, and more than that, we need _necessary_ things | to be bloated. Otherwise, how will we keep the tech sales | treadmill moving? | | Conversely, it may be that only bloated tech will survive, as | bloat drives sales, and sales means survival. | jmbwell wrote: | United Airlines has been posting jobs for internal application | development for a while... --including at upper management | levels.-- Just saying. | kazinator wrote: | Only 250 more to go. | kloch wrote: | so _that_ is why they say before every single flight "Make sure | you download the United app before takeoff as you will not be | able to download it in the air". | nhoughto wrote: | 187MB of symbols seems like alot! Kind of funny that this bloat | could be reduced by X% just by having a shorter path in the CI | pipeline and not even stripping, also surprising that xcode | doesn't strip swift symbols by default for a release build? Some | low hanging fruit right there | alberth wrote: | You know what also have huge app sizes, it's various iOS email | app. Fastmail is the only email/calendar app with a reasonable | size (just 20MB) [0]. | | - Gmail (397MB) [1] | | - Outlook (328MB) [2] | | - Hey (69MB) [3] | | - Protonmail (128MB) [4] | | [0] https://apps.apple.com/us/app/fastmail-email- | calendar/id9313... | | [1] https://apps.apple.com/us/app/gmail-email-by- | google/id422689... | | [2] https://apps.apple.com/us/app/microsoft-outlook/id951937596 | | [3] https://apps.apple.com/us/app/hey-email/id1506603805 | | [4] https://apps.apple.com/us/app/protonmail-encrypted- | email/id9... | petters wrote: | It's ridiculous. The complete size of Mario 64 with all assets | is 6MB. | anthk wrote: | And the whole 9front weights less than those apps. | | When I was a Windows user, a video player install of more | than 80MB would be slightly bloated. | | Today my OpenBSD install uses less than 3GB and it has far | more stuff than a phone install. | | Golang binaries are like 5-15x the size of a dinamically | linked C binary, yes, but at least they provide everything | and run everywhere. | dj_mc_merlin wrote: | C and Go are at a very similar level of portability. | Statically link your C binary with musl and it will run | everywhere the Go binary (built on the same system) would. | Neither Go nor C will run outside their architecture or OS, | but both can cross compile. | | Go makes both processes more user friendly. Statically | linking with musl is simple in C (musl-gcc), but cross | compiling is a bit of a pain the ass to set up (building | your toolchain from the ground up). Not too bad, and if | you're messing with building portable executable this kind | of knowledge is assumed. | kuschku wrote: | I've built a full android IRC client in 4.1MiB. Most UI | elements are custom, no web view for anything, lots of | custom libraries etc. That's > 200kLOC. I can't fathom what | you'd have to do to get to 100x that. | antihero wrote: | Can't imagine an IRC client has many high resolution | assets. | kuschku wrote: | Why should it? Android supports vector assets, I ship | everything as vector drawables. 98 vector assets, full | text of 11 licenses and translations for 9 languages are | > 90% of the 4.1MiB | | That said, what assets does an email client need beyond | what I use as well? | NikolaNovak wrote: | Do they have comparable functionality; in particular, are they | all actual genuine native apps with offline capability; vs a | glorified hyperlink to their web interface? | kelnos wrote: | They don't; the Fastmail app is just a web view. It's | completely non-functional when there's no internet | connection. Really glad to find this out now, and not when | I'm in an airport or something somewhere with no internet | connection and really need to look at an email related to my | travel arrangements. | wodenokoto wrote: | > Fastmail is the only email/calendar app with a reasonable | size (just 20MB) | | It's because it doesn't contain anything. You can't even see | any UI, let alone emails without being connected to the | internet. | jacobr wrote: | I just went into airplane mode to try, and the app works fine | on iOS. It shows a message about not being able to fetch new | emails. | pletnes wrote: | I just did the same, and it says that I need to be | connected to see my emails. <<Are you in airplane mode?>> | wodenokoto wrote: | Did you remember to turn off wifi and close the app (not | just go back to the main screen and back into the app) | | https://support.apple.com/en-us/HT201330 | winrid wrote: | Adding offline access would indeed be nice, but that wouldn't | even add 2mb of code. I have entire native mobile games with | multiplayer under 3mb. | | EDIT: just realized the app is a web view. Sigh | nindalf wrote: | That was literally what the previous comment was trying to | tell you. | squeaky-clean wrote: | Web view apps can still work offline if they're designed | for it. | kroltan wrote: | Yes, but the 3mb is just the wrapper, I bet if you delete | the hundred-ish megabytes of cache, it won't work offline | anymore :) | [deleted] | samhw wrote: | But that's entirely fair: of course caching data uses up | storage. But it's my choice - I can pay for what I use. | The crucial part is that I don't need to download an app | which is hundreds of megabytes large _just in order to | hypothetically support_ caching. | | No one can tell me that our species can write 1K ZX Chess | (https://en.wikipedia.org/wiki/1K_ZX_Chess) - an entire | chess game with intelligent opponents which only takes up | 672 _bytes_ - and yet we can 't write an email client | which isn't a million times that size. | ComradePhil wrote: | It's often the high-res assets (images, videos, sounds, | animations etc.) which take up most of the space, not the | code itself. | | When it comes to the code, the reason that they are | bigger is how apps are distributed and have isolated | runtimes. There are several commonly used sdks and | libraries but because of how mobile app distribution | works, these common libraries have to be bundled with | each app and are not installed as a reusable library | (like you can do with Linux, for example). | lupire wrote: | That game was famous for how bad it was, except that it | miraculously fit in a tiny package. | kroltan wrote: | I agree if cached data was actually proportional to | usage. | | But a lot of these webview kind of apps just download the | whole thing anyways, so it's literally just a matter of | if the bytes are classified under "application size" or | "cache" by the OS. | | (Precisely so they have the whole thing available for | when you need to use it offline) | vmception wrote: | I've been judged by prospective employers based on reported | app size being seen as correlated to complexity. VC backed | startup I worked at for 18 months with a 12 megabyte app | size due to efficient design choices? Must be a joke | | So now I just add a 150 megabyte dummy file at everyone | else's expense | | I'm sure there is a lot of that going on given how long | some job roles were open, I have to imagine that every | mobile developer on the market may have passed through and | made the same conclusion! | uoaei wrote: | Well it may not be correlated to complexity but it | certainly is correlated to end user satisfaction. If | their device prompts a "device cleanup" operation and | your app is near the top of the list that doesn't do much | good for retention. | | Not to mention the billions of devices in the world which | are running old OS versions with scant memory capacity. | lupire wrote: | > billions of devices in the world which are running old | OS versions with scant memory capacity. | | are not the rich or loose-walleted people that app | sellers and advertisers care about. | vbezhenar wrote: | Release lite version without that file. | rixed wrote: | > I've been judged by prospective employers based on | reported app size being seen as correlated to complexity. | | This judges the prospective employer more than it judges | the candidate, doesn't it? | | This is actually nothing new. Back when I was at uni some | students claimed to do the same, adding code that served | no purpose to inflate the resulting program executable | size. | | And if my memory serves me well, at this time when | windows was still young and software was swapped around | on floppies, software sizes started to skyrocket and I've | heard then that the secret reason for this lack of care | was that size was the easiest way to impress users and | the tech press (all while making piracy more | inconvenient). | vmception wrote: | > This judges the prospective employer more than it | judges the candidate, doesn't it? | | Easy to say, rhetorically suggesting that its revealing a | toxic mangement environment, but no, not really. My | experience has been overwhelmingly positive with great | teammates and great managers, and a hiring decision maker | that was otherwise completely hands off of what I was | doing for the rest of the project. A hiring decision | maker that probably left within 3 - 6 months of me | joining, or who was randomly called to do an interview | last minute and had arbitrary evaluation metrics. Maybe | _that_ is what you mean, but it had nothing to do with | the day to day experience, once on board I found every | place to be very similar with the mobile team pretty much | on autopilot, which is the desired experience. Even | quicker paths to leadership roles and higher | compensation. | | They all have interesting-enough projects at the time, or | fulfilled some other interest of mine, or money without | being a bad environment. Interview gaffs really don't | carry as much weight as people think, it requires a | special kind of privilege to think it matters that not | all of us have or had. | klodolph wrote: | On the other hand, when your app is actually functional | at 12 MB, you'll find users from more parts of the world | using it. | emteycz wrote: | You can geofence a Lite version | vmception wrote: | Yes when I ever make an app for my own project | | But for most employers they just need presence, almost | nobody was breaking even on apps they just needed the | presence on the app stores. Big waste of money for most, | and for most projects I was pitched | meibo wrote: | To add some context, Gmail also includes a lot of the core | workspace apps(chat, meetings, etc) if you do have a workspace | account, which most users will likely never see. | | All of that isn't needed on regular accounts, I guess, but it's | probably easier for them to ship it as one app because people | might get confused/are able to switch between their workspace | and regular accounts in the app. Gmail is also supposed to be | the "hub" to workspace on their new Desktop UI. | alberth wrote: | Isn't chat, meeting, etc all separate apps from Google (and | not included in the core Gmail app). | | https://apps.apple.com/us/app/google-chat/id1163852619 | | https://apps.apple.com/us/app/google-meet/id1013231476 | meibo wrote: | These are "standalone" versions, but they are also all | built into Gmail if you have an account that has access to | them. | | They do exactly the same thing on Android - Gmail has it | all by default, if you want them separate, you can get them | from the play store. | munk-a wrote: | Drive, at least, is both a separate app and integrated - if | you try and open a docx file in GMail it will invoke some | of the drive code to render it. | squeaky-clean wrote: | They've shoved all that functionality into the Gmail app. I | actually uninstalled Gmail because it became the default | app to open Google Meet video calls, even with Google Meet | installed. I don't need my email app asking me for video | and microphone permissions... | acchow wrote: | What happens if you uninstall all the Google apps and | then reinstall them in a different order? (Google Meet | first) | lxgr wrote: | This specific case is more of an artifact of iOS's | inability to handle multiple apps declaring the same URI | launch scheme cleanly than a problem with Gmail on iOS, | in my opinion. | | Picking a default handler for a given scheme seems like a | problem best solved at the OS level, and I don't even | know how an app developer would be able to fix that. | lupire wrote: | > I don't need my email app asking me for video and | microphone permissions... | | You do if it is also your video chat app. If not, decline | permissions. | tempnow987 wrote: | They also have an authentication option they are building in | (ie, sign in with the app to web properties). I've noticed a | bunch of stuff seems to be migrating into gmail. | | My own view is they burnt people out install allo, hangouts | etc, and people DO install gmail / have gmail accounts -> so | they are going to try to leverage that for distribution a bit | more. | jamra wrote: | That sounds like a reasonable point of view. But it could | be that they are just trying to up sale their other | services and can more easily do so if it's bundled in an | already used app. | lupire wrote: | That's what parent said. | lxgr wrote: | Gmail being a "hub app" makes some sense, actually (unless | you're not using Chat or Meet, of course). | | What annoys me much more than that is that Docs, Sheets and | Presentations all are multi-hundred megabyte standalone apps, | of which I'm guessing 80%-90% of the code is identical/pulled | in from some non-shared library. | acchow wrote: | I wonder when iOS will allow for dynamically linked shared | libraries from the same Developer account. | fredoralive wrote: | I suspect it's a hard issue for the App Store model. | | You don't want a situation where someone updates App A, | it updates a lib, then App B breaks because it hasn't | been checked against the new library. I know _you_ are a | good developer who would check that, use major / minor | library versions correctly etc. but there are lots of | developers on the App Store. Or the fun case of updating | App A, it updates a lib and then magical new features | appear in App B that Apple doesn't like. | | You'd probably have to use some sort of strict library | versioning system where every app version is tied to a | very specific library version. Are developers in general | going to be disciplined enough to actually keep their | apps all in sync on a specific version so older versions | of the libraries can be removed? Or does this just mean | every app from a developer will end up having its own | slightly different revision of the lib tied to them? If | it's the latter its probably not worth Apple's time | adding all the complexity to manage the libraries to the | App Store system. | hirako2000 wrote: | And introduce a well known problem, not so well solved by | OS makers and their developers outside Linux (somewhat). | Windows and its developer community kept failing, it has | improved in the recent years though, Apple decided long | ago they would rather sacrifice space to guarantee a | package will execute as intended. (even so, sometimes | still fails as native libraries do change and aren't | packaged). And upsell larger storage as highly profitable | addons. | stefan_ wrote: | Does it make sense? Every time I click a link in GMail it | opens some weirdly broken browser imitation instead of | opening it in my chosen browser. This is supremely weird. | lxgr wrote: | That's also a common iOS app annoyance, but a different | one than either of these I'd argue. | lupire wrote: | Android is worse -- it opens in a real Chrome webview, | but in a broken frame that displaces the original app. | Melatonic wrote: | Yea I am definitely one of those people who hates all that | crap in my email app - I have workspace at work and normal | gmail for home use and even on desktop it just annoys me. I | like having a big fat separate chat window for all the | people I'm annoying | jshchnz wrote: | Used Emerge Tools size analysis to analyze the binaries, here's | some quick findings to answer some questions: | | [0] Fastmail: smallest of the apps but still could have room | for improvement, could save almost 20% of the app size by | optimizing their audio files. 71% of the app is the binary. | Check out the X-ray here: https://emergeassets.s3.us- | west-1.amazonaws.com/Screen+Shot+... | | [1] Gmail: looks like most of their bloat is coming from | localizations. Only 60% of the app is binary, while 24% is | localization files. Check out the X-ray here: | https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... | | [2] Outlook: could be stripping binary symbols to save | significant space. 65% of the app is binary, while 14% is | localizations. Check out the X-ray here: | https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... | | [3] Hey: could save about 15% of the size of the app just by | removing duplicates and optimizing their images. 45% of the app | is binary, 27% of the app is assets, this is definitely higher | than it should be. Check out the X-ray here: | https://emergeassets.s3.us-west-1.amazonaws.com/Screen+Shot+... | | [4] Protonmail: could save almost 30% just from image | optimization and duplicate removal. 58% of the app is binary, | 14% is assets, and 7% is localizations. Check out the X-ray | here: https://emergeassets.s3.us- | west-1.amazonaws.com/Screen+Shot+... | | Unfortunately this is a very common problem as many teams don't | have any monitoring in place. Here's another example of a | popular email app Spark, automated insights show over 100 MB of | easy savings: | https://www.emergetools.com/app/example/spark?buildContent=i... | | For pretty much every app here, Emerge's insights found at | least 20% in easy size reduction. FYI, in the X-ray | visualizations, red indicates duplicates and we can breakdown | apps even further using builds with dSYMS! | newman314 wrote: | Thanks! This is very interesting to see all the low hanging | fruit. Out of curiosity, could you run Emerge on a few other | common apps: the United app as well as Yelp, Twitter and | TikTok? | | Those seem to be the biggest consumer of storage for me. | sond813 wrote: | I tried it out with Yelp and Twitter, both had a lot of | bloat due to not stripping binaries. You can see this in | the large "String Table" in both screenshots. | | Yelp also has a large exports section for the main app | binary, that's usually a sign of a problem because the main | binary doesn't need to export any symbols, only frameworks | do that. | | Twitter has a handful of 4MB images, much bigger than | images you'd expect in an app. I took a look at a few of | these and they are just gradient background images that | could have been drawn with something like core graphics to | completely eliminate the need for an image. | | Twitter: https://emergeassets.s3.us- | west-1.amazonaws.com/Screen+Shot+... | | Yelp: https://emergeassets.s3.us- | west-1.amazonaws.com/Screen+Shot+... | PascLeRasc wrote: | For some reason it's really funny to see how much room | Fastmail's notification sound takes up. Your analysis for | Spark also has a send sound bundled but it's one of the stock | Apple ones (Blow). Is there a reason why they have to include | their own copy instead of relying on a system sound file? | sond813 wrote: | We've seen this happen with system fonts as well, apps | sometimes bundle the San Francisco font with an app instead | of relying on a system font. There may be some reasons to | include the font or sound file, such as if it changes in | different versions of the OS. Of course that would make the | app inconsistent with the rest of the OS, which may not be | the best behavior. We discuss some other tradeoffs with | bundling these system resources on our blog post which | covers the Spark app: https://www.emergetools.com/blog/post | s/7AppsThatCouldSaveYou... | alberth wrote: | Thanks for sharing. TIL about Emerge. Super interesting. | PascLeRasc wrote: | The new Shortwave is only 22Mb! It's also just a web view like | Fastmail though. | brnt wrote: | So... how does a webview, which is a call to a system api, | take 22MB? | marcellus23 wrote: | Fastmail is also mostly a wrapper around web views (but then | again, so is Hey) | a13n wrote: | You should check out Missive, it's even less at only 19.3MB. | Also an incredible product | https://apps.apple.com/us/app/missive-email-chat-tasks/id123... | Bilal_io wrote: | I checked on Android. Gmail's app size is 113mb, while Tutanota | is 4.58mb | | I wonder why the Gmail app is almost 4x the size on iOS. | mojuba wrote: | Probably because on Android it already has most of the | frameworks (including tracking ones) it needs pre-installed | with the OS. | alberth wrote: | Interesting, I just found this (dated) article. | | https://mobilityarena.com/ios-apps-are-larger-than- | android-a... | | It supports your claim that iOS app sizes are 3-10x bigger | than Android. | | I wonder why. The article makes some guesses but still, the | magnitude difference is significant. | | Even Fastmail, which has the smallest iOS email app, is still | 2x bigger on iOS (20MB) vs Android (10MB). | | https://play.google.com/store/apps/details?id=com.fastmail.a. | .. | ComradePhil wrote: | The sizes mean different things in different platforms. | Google reports the download size, Apple reports the size | that the app will consume on your device. Both have their | uses but you shouldn't compare the two. | [deleted] | nicksaroha wrote: | Outlook makes sense because they use React Native in their app. | If you look at their License sections they are using a ton of | libraries which is common. | pianoben wrote: | React Native is one cause. Another is that they ship a | tremendous amount of cross-platform c++ Office code, which is | not small. | kitsunesoba wrote: | I haven't analyzed their binaries or anything like that, but | I'd wager that a significant chunk of the heft of the Gmail and | Outlook iOS apps are Google/Microsoft's custom UI frameworks. | throwawaylinux wrote: | That's terrible. | [deleted] | achandlerwhite wrote: | I've heard that some of them include their own network stack so | that only they can track your data. I think that was in | reference to Facebook's app originally but I wouldn't be | surprised. | junon wrote: | That would require raw socket access which would surprise me | if it was allowed, as it's usually a superuser privilege on | UNIX for good reason. | cout wrote: | I'm not sure whether to find it amusing or concerning that 20MB | now qualifies as a reasonable size for an email client. My | first PC that ran Linux had only 8MB of RAM and an 850MB disk, | and it felt like a lot at the time. | godshatter wrote: | I was thinking the same thing. What happened? I started | programming on machines with 16K of memory or less. It was a | point of pride for developers to make programs that did the | most with less, like the whole demoscene movement. It's like | the contest changed from who can make the leanest code to who | can get away with packaging the most bloat in one app without | causing the device to break. We went from shaving off | individual machine instructions to packaging entire browsers | with super-simple apps. | ricardobayes wrote: | I had a financial app bloat up to 800MB+ due to some botched | incremental updates. I firmly believe in 2022 those who care | about bundle sizes are in minority. I personally come from an | embedded dev world so I got accustomed to fighting for bytes as | I learned to program. Nowadays if I suggest something to save | space, I usually get a blank stare. | jeffbee wrote: | _This_ is the kind of thing the App Store review process should | be flagging. | bluedino wrote: | They'll introduce it as a feature at the next WWDC. The best | App Store yet! | bitwize wrote: | You joke, but really, if anyone can change the economics of | development to dissuade app cruft, _only_ Apple can. Apple | routinely achieves with a wave of the hand things that years | or decades of concerted effort from industry professionals | couldn 't do. Things like remove and deprecate DRM from | music. | | This is Apple's industry, we're just allowed to play in it. | Scoundreller wrote: | Why? Bloat drives sales and upgrades. | memco wrote: | So does optimization and efficiency. Apple can add this in at | some point and say they reduced App sizes by X% across the | entire App Store at WWDC and get lots of oohs and aahs. | ChrisMarshallNY wrote: | Agreed, but I'm wondering if they will. | | I'm a real "dependency skeptic." Doesn't make me too many | friends, hereabouts. | | I'm also not a fan of running Web code on the phone, like a lot | of PWAs and hybrid systems. Again, doesn't make me popular, in | this crowd. | | If the main app runs afoul of stripping symbols, then the App | Store inspection can flag it. If, however, it's a dependency, | then I could see them tossing out boatloads of apps, simply | because they include piggy frameworks. There's really no | automated way for Apple to realize the framework is really just | the developer's aggregated code, or from another source, over | which the developer has no control. | | What _really_ needs to happen, is that the developer has their | own inspection regimen, before submitting something that could | cause brand damage, to the App Store. | | Again, suggesting stuff like this, is tantamount to heresy, in | today's "Move fast and break things" tech world. | boredumb wrote: | I recently bought a 100$ android waiting for my phone to be | repaired and the size of modern apps on older hardware render | them completely unusable. It's a shame that the amount of bloat | creeping into everything in the name of "developer productivity". | Do we have to wait until we hit some limitation in storage size | before we decide that it's simply dog shit software? Samsungs | "notes" application is almost 100mb in order for me to keep track | of a few kb of grocery lists and restaurant suggestions. | hparadiz wrote: | Here I am agonizing over adding an extra 20 MB of assets to an | app that is only 22 MB to support a new design. | jb1991 wrote: | I don't understand why this actually happened, why were the names | not stripped? That seems like a terrible thing not just for size | but also for insights into the developer's process (in this | case). Shouldn't Xcode be doing this automatically? The author | even points out that Swift doesn't need them, so why are they | there? | mech4bg wrote: | >It's becoming somewhat of a popular trend in the airline | industry to cut costs by having the passenger bring the hardware, | and as an added bonus they get to force their way into your | coveted list of installed apps. | | TBH I see this as a positive - less weight on the plane, less | fuel consumed, less waste when these screens are junked, etc. I | personally always take a ton of videos with me and just watch my | own stuff, I would never trust that the in-flight stuff is | working (although I admit I overprepare and it's still important | to provide this). And when you're flying - having the app | installed is a net positive, it has maps of the airports (with | great directions, which is super helpful when you're making a | connection), can manage your ticket, etc - the videos are a | bonus. | lentil_soup wrote: | > less weight on the plane, less fuel consumed | | For a plane that's negligible. | | Tbh, I don't want to sit on a 12hr flight watching a phone | screen. I have to hold it on my hand, have nowhere to put it | while eating, I have to plug it in to a charger as well (and | it's never guaranteed there'll be a plug) + what the OP said | about having to download more stuff to my phone I don't want or | I might not have space for. | mech4bg wrote: | FWIW I've noticed on a lot of airlines removing the screens | have phone holders in their place and always have a USB | charger. | | It's a moderate weight saving, there are some details in this | article: https://www.fastcompany.com/3034196/airlines-are- | tossing-sea... | Spivakov wrote: | "most bloated apps are within the 100-200MB range, not 400MB." | | WeChat enters the chat... | markstos wrote: | At a job interview, I pointed out the company could cut their | bandwidth in half if they enabled gzip compression on their web | server. | | I got the job. | rob74 wrote: | "App review failed: your app contains >30% cruft. Please remove | cruft and re-submit" | dzhiurgis wrote: | How is that not done by Apple's servers automatically? | hnburnsy wrote: | Apple\Google should charge for over-sized apps, just like some | airlines charge for over-weight bags. | azalemeth wrote: | I once flew United and, like the author, didn't realise this | until I was on the plane for a ten hour flight. Downloaded the | app for Android. I opened it. I was immediately ip-blocked for | having a rooted phone, which was then kicked off the network and | couldn't get an IP address. United cabin crew then started trying | to sell me an iPad loan for the duration. I read a book and vowed | never to fly with them again. | agar wrote: | This was probably a response to a hack that occurred in 2014. | It wouldn't surprise me if it was mandated by the FAA or | similar regulatory body. | | https://www.cnn.com/2015/05/17/us/fbi-hacker-flight-computer... | | > During FBI interviews in February and March, the document | says, Roberts told investigators he hacked into in-flight | entertainment systems aboard aircraft. He claimed to have done | so 15 to 20 times from 2011 to 2014. | | > He also said, according to the document, that once he had | hacked into the systems and then overwrote code, enabling him | to issue a "CLB," or climb, command. | | > "He stated that he thereby caused one of the airplane engines | to climb resulting in a lateral or sideways movement of the | plane during one of these flights," the document says. | tyingq wrote: | I doubt it. You can bring a "rooted" linux laptop onto the | plane and it works, so banning rooted phones from inflight | WiFi would be a little silly. | | I am interested in the linked story, but it's very odd that a | passenger wifi network would be cross-connected with flight | controls. | | That the network on a non-wifi seatback entertainment system | could be is a little more believable, but I'm still curious | how it wouldn't have resulted in an extended grounding of all | aircraft of that type if it were true. There was no | grounding, or order to modify that system following his | twitter posts and subsequent arrest. | | Edit: If you search around for what happened after the | incident described above, it seems pretty clear he did not | send any commands to flight systems. He seems knowledgeable | about them, but seems to perhaps have been caught out talking | about a theoretical scenario as if it happened. He wasn't | charged, and as mentioned, no actions were taken to change | anything. I suspect the networks are properly isolated. | xmprt wrote: | I hate when apps lock out rooted Android phones for "security | purposes" when it's so simple to get around it by just | directly accessing the API or spoofing. It's even dumber when | the app/website can be accessed through a laptop which is | much more permissive than a rooted phone. I've never heard a | reason for why companies do this. | mdoms wrote: | Not defending the blocking of rooted devices, but I think it's | excellent that airlines are relying on people bringing their | own hardware. I think you'd struggle to find a single person in | an airport who isn't carrying a screen with them today, so | seat-back screens feel very redundant to me. | rekoil wrote: | As a person who carries a 5.4" iPhone 12 mini, please keep | seat-back screens. I wouldn't mind if they were just HDMI- | devices I can extend my devices screen to though, that would | be amazing! | tonywastaken wrote: | They had a similar check for jailbroken iPhones. The last time | I flew with them they seem to have fixed it. | digisign wrote: | Fixed to block or not block? | tyingq wrote: | I'm surprised there would be that kind of integration between | the United app and their on-board WiFi, which appears to be run | by Panasonic. | | It sounds like you're saying the United app noticed your phone | was rooted, and somehow it notified the on-board WiFi to block | your ip/mac? Or am I not reading this right? | varenc wrote: | That's also how I read it, which astounds me. Would be | technically impressive if it worked like that. And extra | vindictive since even if they don't allow rooted devices to | play DRM'd video, there's no good reason why they should also | be prevented from buying in-flight internet. | | (one solution if that's really how it works: rotate your mac | address, reconnect, and then never open up the United app | again so it can't squeal on you.) | tyingq wrote: | You could also wreak some havoc by banning the macs of | other devices on the plane that want to use the WiFi...so | I'm pretty skeptical this cross-service integration is | really there. | iamcreasy wrote: | > I was immediately ip-blocked for having a rooted phone | | What is wrong with using their app on a rooted phone? | stevep98 wrote: | Likely a DRM requirement so you can't pirate their movies | tyingq wrote: | Not saying it's the right decision, but probably because they | don't want the liability if a rooted device allows some 3rd | party app to hack theirs. Airlines can be somewhat like a | small bank in this respect, as being logged in gives you | access to things like accumulated loyalty points, not-flown- | tickets that can be exchanged/refunded, past flight credit | from earlier refunds that were eligible for credit but not a | cash refund, etc. | | Also, they typically store more personal info than, say, an | e-commerce application because some of it is needed for | travel. Things like date of birth, known traveler numbers, | names/dob/etc of family members, passport numbers, etc. | _fat_santa wrote: | Unrelated to their inflight entertainment, United pulled this | stunt on me the other day. | | - Flight at 11AM, boarding at 10:20. | | - Show up at 10:25, boarding doors are closed. | | - "Didn't boarding start 5 minutes ago" | | - "Yeah we close the doors once 95% of people show up, sorry, | you should show up when boarding starts" | | - "Yeah but didn't boarding start 5 minutes ago, how was I to | know" | | - "You should have known, sorry" | sb057 wrote: | >Yeah we close the doors once 95% of people show up | | So they are essentially scamming 5% of passengers out of | their tickets? | vel0city wrote: | I mean, you're _supposed_ to be at the gate when boarding | starts. For all practical purposes if you miss boarding you | 've missed your flight even if the plane hasn't left the | ground due to safety rules about letting passengers go | after the door is considered closed. | | There's a bit of a checklist of things that need to be | completed after the door gets closed and the gate pulls | away. They're often incentivized to try and speed things | up, so if there's nobody at the gate anymore to board they | might assume those passengers decided not to go on the | flight. Especially with people now checking into flights | the day before, the airline may not even know if the | passenger is even at the airport and would realistically | show up to the gate anytime soon as checking in means | pretty much nothing these days. | | They're not scamming anyone. Your ticket said you were | supposed to be at the gate to board at a certain time. You | weren't there, so you missed the flight. | xmprt wrote: | I get that rule. But why does the door close at boarding | time and not at the flight time or some predetermined | time like 10 minutes before flight time or when boarding | completes, whichever is later. | vel0city wrote: | The door closes when it seems like there's no more | passengers so they can hurry up and start working on the | checklist. They do this so they can potentially get going | sooner in case there are delays elsewhere in the many | steps that goes from passenger boarding to plane in the | air. Theoretically they could be more rigid about having | a time for the door closing, but that could potentially | mean there are more actual delays as now they no longer | have a chance to gain some time in their schedule to make | up for potential delays elsewhere. | | If the door closed at flight time then the plane wouldn't | be leaving at flight time, it would be leaving at flight | time + the time it takes to go from boarding to getting | in the air. Flight time is the time the plane is | scheduled to take off, which means the flight time would | diverge from the boarding time, and then you'd once again | be asking why the boarding time is different from the | flight time and why they don't let you board until the | flight time, rinse and repeat. | IshKebab wrote: | Sounds like you're describing some impossible system but | that _is_ how it works in the rest of the world. There 's | a time at which the gates close, and if you're at the | gate before then then you can go on the flight. If not | then they _might_ wait for you for a bit if you 've | already checked in but nothing is guaranteed. | | They can still go early if all of the passengers have | boarded. | | I got to Dublin airport once at the time that the gates | were supposed to close and they said they would wait for | us if we were fast... Got to the concourse and it was the | furthest gate possible - the sign said to allow a 15 | minute walk! Had to run all the way but we made it. | digisign wrote: | United is famous for its customer service. I have a few good | ones myself, but won't bore you. | quacked wrote: | If you think that airline customer service stories are | boring, then I request that you do your best to bore me. | assbuttbuttass wrote: | They managed to board all the other passengers in less than 5 | minutes? In my experience boarding takes at least half an | hour just for everybody to sit down. Was the flight | exceptionally empty? | trelliscoded wrote: | They may be queued up in the jet bridge. I've been stuck | inside one after the doors closed while we waited for | everyone to get into the plane. | kitsunesoba wrote: | And here I am feeling unsatisfied about the ~20MB size of the app | I'm responsible for. I haven't seriously tried to cut its size | down yet, but aspirationally I'd like to cut that in half. | | Probably doesn't make that much of a difference in the long run, | but I have a theory that smaller binary sizes increase chances of | any given user being up-to-date, thus increasing the percentage | of the userbase that's running the latest version at any point in | time. iOS tends to pull updates while charging, and so an app | that's 10MB is more likely to get updated during a brief charging | period than an app 50x as large, especially if the user in | question has a slower connection. | | It also makes for smoother troubleshooting when the user can pop | into the App Store page for your app and have the app updated | almost instantly. | pinephoneguy wrote: | Meanwhile the KaiOS store doesn't even allow apps larger than | ~50mb for larger devices. | mzs wrote: | tldr; strip | jshchnz wrote: | This is awesome to hear! I'm actually one of the founders of | Emerge Tools (mentioned in the blog post), we work on helping | teams just like United fix problems like this. I had actually | tweeted at United in April of last year letting them know about | these issues: | https://twitter.com/jshchnz/status/1379154466872549377 | | If anyone at United wants help, happy to chat! | josh@emergetools.com | TrianguloY wrote: | On android, the default Hello World example when you load Android | studio takes more that 1MB, and it's a single screen with two | words displayed. | | The same ninja-optimized app can be less than 1kb. All the | useless space is taken by libraries, features "just in case" like | login and assets, and more runtime generic things. | | Supposedly all that generic stuff should help for more complex | apps, so for a very simple app the ratio used/unused is very | high, but for more advanced apps it is low which means that the | size of apps should not be linear with complexity | | ...yet they are, because the more complex an app is the more | useless libraries are included. | bnycum wrote: | I really thought that app size would be a hinderance because of | the cellular download limits (at least because I only remember to | download these apps while at the airport). So I had to look it up | and it appears there isn't a size limit anymore from Apple as of | 2019, just a popup asking you to allow a download over 200MB. | | https://9to5mac.com/2019/06/03/ios-13-removes-200-mb-file-si... | lkxijlewlf wrote: | Mediocre developers being mediocre developers. What else is there | to say? | StillBored wrote: | Apple should have never allowed these "non-compiled" | applications. An LTO like pass/etc would rip out tons of size too | simply by removing all the unused code. | | BTW: The last couple times I've run into this, they say use the | app, but there has been a plex/etc like http video server on the | onboard Wifi network which can just stream to random | browsers/PCs/etc. I've yet to have any DRM/etc issues, although I | suspect that might be part of why they want to push people to | dedicated apps. A large number of people though just use their | locked down work laptops/etc so they will have a problem when | they cut off that path. | ksec wrote: | There is a whole Node.js runtime for iOS included? | | I would imagine this is basically an Electron for iOS and | Android? If that is case I am not surprised at the file size. | ziggus wrote: | Is it an Electron app? | toomuchtodo wrote: | While not a security bug, this should still be some sort of | bounty amount worthy. | mojuba wrote: | But even the stripped version is way way too much for an app like | this. I can imagine it's layers upon layers of poor, bad and | terrible architectural and organizational decisions. | bastardoperator wrote: | Couple bad development practices with archaic technology for | ticketing and we get the worst of both worlds. I've worked with | two airlines and it was fairly frightening to see what type of | BS they're working with and against. | stingraycharles wrote: | I'd like to approach this differently, and think about what it | would have cost United Airlines to do it "the right way", | versus what value it brings them. | | I'm the first to say that this utter bloat is terrible, but | most people aren't really bothered by it. And I can only | imagine that they outsourced their app development completely | and like to keep costs low. | | From that perspective, it's probably much more pragmatic to fix | the problem at the root(s): Apple may want to mandate stripped | binaries (I think this is also what RPM does by default, just | strip everything), and/or god forbid these Electron-type | frameworks should make things more efficient. | cush wrote: | Who are most people? Most people in the world are data- | restrained in one way or another. Depending on the market, | this can have serious user impact. | colechristensen wrote: | There's an opposite direction to look at it. | | Taking the shortest path to achieve a goal often seems like | the good idea, but it leads to bloat and inefficiency. It'd | take longer to "do it right" so you never do it right. | | But you ignore the fact that all that bloat actually costs | you to maintain it. "Not fixing it" is always faster and will | always be the shortest path to the next feature... but that | next feature gets harder and harder to achieve as the bloat | grows. The bloat makes the fastest thing slower and slower | while the fastest thing is always ignoring the bloat. | | When you _appropriately_ choose when to fix, when to focus on | efficiency, everything becomes faster. | | The concept is slowing down to move faster. | | There's avoiding premature optimization and then there's | ignoring optimization forever except for extreme emergencies. | engmgrmgr wrote: | The "right way" also needs to be maintained and refactored | over time. That gets increasingly expensive the more in- | house or low-level things are. | sneak wrote: | If Apple would allow web notifications, most apps wouldn't | need to be apps at all, but could simply be webpages that get | bookmarked to the launcher. The UX for the user would be, for | most non-game apps, identical. | | The problem is that purchases would no longer be subject to | Apple's 10x industry standard (30% instead of 3%) captive | credit card payment processing service (for apps), so no web | notifications in MobileSafari that might undermine platform | control and payment processing monopoly. Apple, of course, | will say this is about protecting users from notification | spam, and sidestep the inconvenient facts that it protects an | Apple cash cow and locks developers and users into a closed | and proprietary platform. | nouveaux wrote: | "The UX for the user would be, for most non-game apps, | identical." | | In theory, this is true. In practice, it's just hit or | miss. I think it's just hard to maintain web across all the | different platform and screen sizes. It's probably due to | the fact that an iOS developer specializes in one platform | and most web development shops will have to support all | platforms. | | "If Apple would allow web notifications" | | I do not use apps because of notifications. I use apps | because in general, the performance and experience is much | better. | sneak wrote: | It's also hard to maintain two entirely separate apps in | two entirely different languages for two entirely | different platforms/APIs, all while giving up nearly a | third of your CLV to a rentseeking middleman. | nouveaux wrote: | I completely agree. I'm just sharing my experience. I | wish web apps were better so we don't have to download so | many apps. | jacobr1 wrote: | What we need is better support "native hybrid" apps. | | For example, you can create "app" that is just a link to | browser. There are plenty of action you don't want random | web-apps to perform due to security/sandboxing issues, | but if you can grant explicit permissions that issue goes | away. It is one of the reasons think like election exist. | But could apple/goog provide a better electron that was | built into the OS? | arcticbull wrote: | I strongly suspect the bulk of this 500MB is DRM frameworks | for their in-flight video playback that they can't or don't | want to support in-browser. Safari kicks video playback | over to the United app each time you select something to | watch and it does what appears to be a multi-stage hand-off | dance. | RussianCow wrote: | Ahh, that explains why I can never get it working in | Firefox on my Android tablet. | ajsnigrutin wrote: | I doubt it... | | Even apps without notifications are still apps, because | they can take additional data from users, sometimes even | location and the whole address book. | | Look at sites like reddit for exmaple, which purpusefully | cripple the mobile web experience to get the user to | install the app. | sneak wrote: | The web supports location and photo picker and camera | APIs and most apps don't access your address book. | arcticbull wrote: | > I'd like to approach this differently, and think about what | it would have cost United Airlines to do it "the right way", | versus what value it brings them. | | For a 5-screen 50MB app, sure. For a 5-screen 500MB app that | falls pretty flat. | | [edit] You could fit all of Tony Hawk's Pro Skater 2 or Final | Fantasy VII for PS2 in the same amount of space. | andai wrote: | Windows 95 required 4MB of RAM and 50-55MB of disk space. | Krustopolis wrote: | And sucked. | anthk wrote: | Windows 2000 was much more stable and yet the install was | far less than a GB. On RAM, with 128 MB was pretty | snappy. | barbecue_sauce wrote: | Ahem, FFVII and THPS2 are Playstation One (PSX) games. | anthk wrote: | You could fit a good chunk of N64 zipped ROMs under a | 700MB (a CD). | | An emulator and Mario 64, Zelda OOT, ISS and 40 games | more could be placed under a CD and yet you could fit a | good bunch of MP3's in between. | arcticbull wrote: | The shame, lol. Your feedback is well deserved. | throw10920 wrote: | Exactly - _badness of waste is non-linear_. An application | that 's 4x as large as necessary is more than twice as bad | as one that's 2x as large as necessary. | | A candy bar which is 5% packaging and 95% candy by mass is | alright. A candy bar which is 50% packaging and 50% candy | is horrifying. | fennecfoxen wrote: | It's not _that_ scary. | | https://www.sugarfina.com/valentines-day-mini-candy-trunk | jandrese wrote: | "The Right Way" involves running the strip command before | sending the app off to Apple for publishing. It's 5 seconds | of effort and saves almost 200MB for literally thousands of | users. | tinus_hn wrote: | You'd think the right way would involve Apple refusing your | app if it is wasting users storage because you couldn't be | bothered to strip your binaries. | bspammer wrote: | I'm willing to bet that the devs who made this app have | never worked with a decompiler and have no idea what | "symbols" are. Source: I am one of those people (well I | have a vague idea, but certainly wouldn't think to check if | that was causing bloat in my iOS app). | rvnx wrote: | Contrarian opinion here; I understand their logic. It looks | like a rational trade-off that the engineers have done. | | Increase developer productivity at the expense of hardware. | | In this case, engineering is more expensive than hardware | (because hardware is at the cost of the user). | | The smallest iPhone starts at 128 GB. This means the | application takes 500/128000 blocks: 0.4% of the total device | storage. | | Over time, the iPhones are going to have more and more | storage. So, if app size is a problem, and over time, the | problem is fixed by itself, why would you invest engineering | resources into that ? | | You have X engineers with Y amount of working hours, and tons | of important things to do. Yes, probably fixing a problem | that brings a low amount of complains from end users at the | cost of productivity isn't high on the list for them. | | EDIT: Possibly interesting source: | https://www.androidauthority.com/average-smartphone- | storage-... | dogleash wrote: | >Contrarian opinion here; I understand their logic. It | looks like a rational trade-off that the engineers have | done. | | This is not a contrarian opinion. This is the default | attitude in web, cloud hosted, and mobile app development. | | >looks like a rational trade-off that the engineers have | done | | What are your back-of-the-envelope numbers? Or are you just | shrugging and assuming that performance has zero impact on | the development loop, so therefore no development effort | should be expended on it? | mquander wrote: | When someone starts looking into why it's so big and they | immediately discover a huge dumb mistake (the example in | the post), why do you assume that the rest of the app size | is because of rational tradeoffs, instead of being more | dumb mistakes? | gpderetta wrote: | Perfect example of Wirth's Law in action, sadly. | athorax wrote: | This kind of bloat doesn't just affect storage usage, for | people with capped data plans these kind of apps are a | nightmare | ratww wrote: | It's especially worse for people who are traveling. | notahacker wrote: | Yep. Airlines are one of the few brand apps where there | probably _is_ a significant business case for spending | developer time optimising an app for download size, since | customers who make the decision to try to download United | 's app on slow or metered connections at the airport or | overseas are probably customers ready to be upsold stuff | via the app. | xorcist wrote: | > Increase developer productivity at the expense of | hardware | | Only this is almost never true. | | If it's possible to do something unnecessarily complicated, | someone will inevitably do it. Maintenance costs are often | greater as complexity and bloat goes up. | | Longer compile times and generally greater development | cycle latency also tends to decrease developer productivity | more than the small time differences might suggest. | throw10920 wrote: | > The smallest iPhone starts at 128 GB. | | The smallest iPhone _sold now_ is 128 GB. The iPhone 5C, | sold in 2015, had 8 GB internal storage with no expansion | options. 439 MiB is a full 5% of the _total storage | capacity_ of the iPhone 5C, completely ignoring the amount | reserved for the OS that 's completely unusable to the | user. | | The logic used here hurts lower-income people and | contributes to climate change by encouraging poor use of | device resources -> shorter device lifetimes -> more | e-waste and wasted energy. | bouke wrote: | And even 2 of those 8 GiB were taken up by the OS. So | that leaves just 6 GiB. Now we're already at 7%. That's | valuable storage that you cannot use to fill with holiday | pictures. | Nition wrote: | I had the 8GB iPhone 5C. The OS (iOS 10) actually took up | nearly 4GB of that 8GB. | tut-urut-utut wrote: | People with 7-year-old phones are not really a target | group a company selling luxury stuff is going to bother | optimizing for. | jnovek wrote: | The iPhone is _not_ a luxury product; not in America, | anyway. | | More than half of American smartphones in 2021 were | iPhones. The iPhone is price-comparable to its Android | contemporaries. The Android downmarket in the U.S. is a | minority by a wide margin. | yuliyp wrote: | United Airlines is not a luxury product. | dymk wrote: | Flying anywhere, period, is a luxury | TillE wrote: | I don't know if you're trying to make a point about | global living standards (irrelevant) or the non-necessity | of air travel (true, but also irrelevant), but the fact | is that budget airlines have existed for decades, and are | often comparable in price to a bus trip. | morcheeba wrote: | Flying is far cheaper than Amtrak. | gbear605 wrote: | For a lot of trips, Amtrak is about the same as flying. | Looking at a round trip from NYC to Chicago, on the | arbitrary dates of March 26 to April 9, Amtrak costs $180 | while Kayak shows the cheapest flights at $159. Of | course, Amtrak takes much longer (20 hours) but is less | hassle, and at that price the flight only lets you take | one carry-on while Amtrak lets you bring two checked bags | and two carry-ons. Adding checked bags will add $60 for | the first and $80 for the second. Amtrak is also better | for the environment if that matters to you, and the price | difference is about the same as the cost of the carbon | offset for the flight. | | Overall, choosing Amtrak or flying is perfectly | reasonable in different situations. Amtrak could | definitely be improved a lot though! | aledalgrande wrote: | Flying in NA, with covid, is a luxury. Europe is a | different story. | | Edit: why the downvotes? You can get flights for 50 bucks | to go to different countries in Europe. | Symbiote wrote: | Maybe people don't believe it. | | The cheapest flight I can see on SouthWest.com is $60, | for a 1 hour journey from Atlanta to South Carolina. | | The cheapest flight with Ryanair from Copenhagen is $9, | though it doesn't include checked luggage. It's also an | hour. | | An even cheaper one is Krakow to Eindhoven, 2 hours, $6. | There are fewer dates for this price though. | addaon wrote: | Southwest is not really the equivalent of Ryan. Spirit | airlines has plenty of $22.22 flights (for two's-day, I | guess), glancing at their page today. This includes e.g. | Chicago to Tampa, Texas to NJ, and other flights longer | than most European flights. | ben_w wrote: | I've been on a flight between Berlin and London that cost | less than an Amtrak return ticket from Davis to | Sacramento, and I've also been on a multi-day road trip | from Davis to Salt Lake City that, while fun, was only a | good financial choice due to four people squeezing into a | Prius. | | While I enjoyed camping and seeing bits of the US that | foreigners like me don't normally see, it's not entirely | clear that the difference between that and flying makes | flying the luxury. | aledalgrande wrote: | In general flying is more expensive in NA because of less | competition and bigger distances. That's what I noticed | when I moved from Europe to here. Now you have to take | expensive tests to fly international both ways. That's | why I consider it a luxury. | bmicraft wrote: | Flying often enough to justify even installing the | app/getting any benefits from it surely does count as | luxury flying though? | ben_w wrote: | Ideally an app is sufficient low friction that even a | really minor quality of life improvement justifies it. | | Not being an American I have no reason to even be a UA | customer let alone install the app, and therefore I don't | know if they've achieved this or not. | dylan604 wrote: | Flying that much in anything less than first class is no | where near luxury. | JohnJamesRambo wrote: | Why would you ever want to discourage someone from buying | what you are selling? | pgwhalen wrote: | When the cost of selling to such a niche group outweighs | the revenue, that's the premise of this thread. | thorncorona wrote: | Perhaps not but everyone saying this is what kills | accessibility for those who need it. This is the same | argument made by companies to not support deaf/blind | people. | | Requirements are often above average in some dimensions | and below average in others. | | If we optimize for people who are wealthy, always in high | bandwidth areas with new phones, etc etc soon we will | have left most people behind. | WJW wrote: | > a company selling luxury stuff | | Leaving people behind is the entire concept of selling | luxury stuff though, so I still don't think that the | companies will care much. | selfhoster11 wrote: | The assumption here is that a luxury-oriented audience | would always want the latest phone. I disagree with that. | If I'm rich, I might just not care about upgrading | because I have better things to do. Or I like this | particular 7 year old phone, so I keep it. | anamax wrote: | I use a 32GB Android. | | A significant fraction of that 32GB is taken by system | crap, so a GB makes a difference. | sitzkrieg wrote: | you didnt factor in the mobilw bandwidth to download this | oversized crap constantly. with 1gb plans in mind how many | downloads a month do you get to instagib a plan like that? | and for what, no actual patch notes ever?! at least most | apps dont hard lock you out when they detect being behind | Banana699 wrote: | This bizarre reasoning puzzles and infuriates me so much. | The linked post shaves more than 40% of an app's size in 5 | minutes, by doing nothing but being curious about the half- | gigabyte app and knowing how to use a couple of tools. | | This is not a case of "I have plenty of water so let the | kids splash some in the playground to have fun", this is a | case of "I have plenty of water so I will load 10000 liters | in a truck and drive 1000 kilometers and back just to dump | them in the desert for no fucking reason". | | Seriously, 5 minutes? I spend more than that in the | bathroom. How many 5-minutes is a "Scrum standup"? a | "progress meeting" ? a <insert bullshit corporate activity | here>? Do all of those things not waste the engineers' | time? | | I'm trying to imagine the world if every profession and | craft tried to justify this disgustingly irresponsible | mindset : | | " - This combustion engine uses an inferior injection | mechanism that wastes 40% more fuel compared to latest... | | = Don't waste my time!!! I have more important things to | worry about. | | -.... It would take 5 minutes to fix | | = Customers don't notice the fuel consumption anyway, so | that means robbing them out of money with inferior | engineering is okay. Now hurry up, we'll miss the daily | 3-hours progress meeting. " | | If only Donald Knuth knew what " Forget about the small | efficiencies" would be used to justify. | ironmagma wrote: | There's probably an observability bias here. It could be | that the app sizes would be 3x worse, if no one ever | tried. You would never know, because you only see the app | sizes after people have done the work. | rixed wrote: | I share your feeling. Day by day I feel more guilty of | belonging to that industry because of the laziness, | sloppiness, negligence, acceptance of spying, of dark | patterns, etc, and I do not disclose what I'm doing for a | living more readily than I would if I worked for some | mafia. | IggleSniggle wrote: | Yeah no, clearly false, because my iPhone has 8 GB and that | ought to be plenty. Hope your web app works on my phone, | 'cause I'm not installing a bullshit app with that much | bloat. | tschwimmer wrote: | This is not the most relevant tradeoff. The United App is | the only way to watch in-flight entertainment on many | United Flights (esp. on newer planes without seatback | screens). Every time I fly United, they make an | announcement that says "Make sure to download the app | before we take off because you can't do it once we're in | the air!" and then I see everyone whip out their phones and | tablets. Usually that's 10m or so before we lose cell | reception and it's often not enough time to fully download | the app. | | I've often thought that they either need to cache the app | locally on the plane itself or provide a special free | passthrough on the in-flight wifi, but so far they haven't | provided either. In any case, app size is crucially | important for the key use case that many (most?) people use | the United App. | bluedino wrote: | > I've often thought that they either need to cache the | app locally | | It's not that simple, but it makes total sense to cache a | 500MB app when they have a couple TB (?) of videos on the | plan. | eppsilon wrote: | Maybe Apple could provide some way to cache apps on a | local network without needing a Mac. (macOS has a content | caching option in the Sharing prefpane.) They could add | the same thing to iOS/tvOS to make it cheaper and more | widely available. Ideally there would be a containerized | version of the service that could run on any Linux-ish | device...can't imagine Apple doing that though. | ratww wrote: | But this company can't even be bothered to even strip | symbols. Having Apple allow caching + putting this in | every airplane is a way more difficult. | | Maybe we as an industry should start doing the boring | parts instead of jumping into shiny tasks that take 10x, | 100x the time it would take to solve the original | issue... | hadlock wrote: | Also the only way to order adult beverages | aserafini wrote: | But the problem is not only storage but also bandwidth (on | a runway). | acchow wrote: | > The smallest iPhone starts at 128 GB | | You can buy a brand new, unlocked iPhone 12 from Apple. It | starts at 64GB for $729 | | https://www.apple.com/shop/buy-iphone/iphone-12 | addaon wrote: | The iPhone 11 and iPhone SE are also both available, new, | with 64GB. | PascLeRasc wrote: | There's no app as valuable to me as 2-3 albums or 400 | photos. | retrac wrote: | > So, if app size is a problem, and over time, the problem | is fixed by itself, why would you invest engineering | resources into that ? | | You are assuming apps won't scale larger over time. The old | addage about software expanding to consume all available | resources comes to mind. I remember thinking I'd never be | able to fill my first 1 GB hard drive with software. And | now it takes half that for the simplest things. As the | bytes get cheaper we ration them less. | astrobe_ wrote: | Here is today's car analogy : well sure, they pollute, but | if nobody complains why would car makers invest in cleaner, | more efficient motors? Oil is cheap anyway and will be | cheaper in the future (that's probably what they thought in | the '60). Oh, wait... | | A friend of mine told me their company is trying to | downsize their flash storage in order to come back to the | unit prices of before the shortages. | jakub_g wrote: | > what it would have cost United Airlines to do it "the | right way", versus what value it brings them | | It may depend on the app, but Uber noticed that the bigger | the app, the fewer people install it, unsurprisingly. | | I also had friends who wouldn't install Signal because they | don't have any space left on the device, and they stick to | Whatsapp/Messenger which they already have. | | https://eng.uber.com/how-uber-deals-with-large-ios-app- | size/ | | > App-download-size restriction means first-time users | cannot download the app ... when they are not on Wi-Fi. | | > We established a correlation between the Uber Rider app | size and customer engagement -- when the app size crosses | the download size limit, and it leads to a 10% reduction in | app installations, 12% reduction in sign-ups, and 20% | reduction in first-time bookings, resulting in revenue | loss. | | > Over the past three years, the Uber Rider app's size has | often approached the App store's over-the-air download | limit, and staying below it is a clear priority. | eithed wrote: | I'm no mobile developer, but why wouldn't stripping out | symbols be default behaviour that publishing process | performs? | stingraycharles wrote: | I can imagine that in case of app crashes, having debug | symbols makes debugging them much easier. | | Other than that, there's unlikely to be a reason. | dceddia wrote: | This is maybe part of it, but having shipped a macOS app | that's stripped of symbols, crashes can still be debugged | as long as I've got the dSYM file that was made at build | time, so I don't think it's a super strong argument. | Tools like Sentry will catch the crashes and symbolicate | them for you, if you've provided them with the dSYM. It | can be done on the local machine too. | [deleted] | chrisseaton wrote: | > I can imagine it's layers upon layers of poor, bad and | terrible architectural and organizational decisions. | | Or are they trade-offs? | | Do these 'bad decisions' actually impact their business or are | they manageable, allowing them to achieve their mission, | focusing on other things that are more important? | MetaWhirledPeas wrote: | Without diving into specifics we'll never know of course. But | consider the opposite: would _good_ decisions positively or | negatively impact their business? Would they prevent them | from achieving their mission or focusing on other things? | | I can think of how bad decisions could negatively impact | their mission and focus: | | - App is slow and buggy, pressuring users to choose a | different service altogether | | - A much larger support staff is required to handle customer | issues | | - Bugs are painful to address and require weeks or months to | resolve | | - Developers spend more time fixing bugs and less time | working on features, resulting in delayed features and an | increased team size to allow more parallel development | _fat_santa wrote: | I've worked on one of these apps (healthcare space, just | checked and the size sits at 350MB). Here's the problem as I | saw it firsthand: | | * Far too many hands in the pot: My rough calculation is at | any given time, there are around 1000 contributors to this | app, across various teams. This itself is not a problem, but | leads to issues. | | * Tech Debt Racks up Quick: Again because there are so many | hands in the pot, tech debt racks up unbelievably quickly. | And furthermore it's almost impossible to address because it | cuts accross so many teams and orgs. | | * The Solution? More Hands in the Pot!: With tech debt | racking up quick and not being resolved, productivity grinds | to a halt. App has constant errors, crashes, and things like | hot reloading are just totally broken because of all the | underlying issues. So what do you do when faced with this | problem? More engineers! Rather than addressing the problems | that face developers, they just throw more labor at the | problem, compounding the previous issues. | | * Code Duplication: With so many folks working on the project | but not talking to one another, code duplication becomes a | MAJOR issue. Say you have a "Button" component that needs to | be modified. Well, modifying that component means going | through 5+ teams to get approval. So to sidestep you create | "Button2", and the next guys creates "Button3". The result is | you pull up the fuzzy finder and search "Button", only to get | 15 results with subtle differences. | | This is just my experience. Currently this app is top 20 in | healthcare on the Apple Appstore. The company also has a | number of other apps and when I was leaving the company, | there were talks to merge all the apps into the "main" app | (good fucking luck). | Friday_ wrote: | Maybe they bundle movie inside app. | [deleted] | kingcharles wrote: | This seems like a huge market opportunity for a service where | you upload your "final" binary and some app goes through the | thing and shows you all the stupid you are doing and how to fix | it. | | This would have really pissed me off if I had to download it | over my cell plan. I have one phone with minimum apps on it | which I use for day-to-day, and then another with all the | scummy bloated apps on it, but the data plan on that phone is | small and 500MB would be a huge chunk out of my monthly quota. | hammock wrote: | As a frequent and mostly non-loyal flier, I can say despite all | its faults the United app is far and away the best airline app | in the US: fast, easy to navigate, powerful, useful and often | pleasantly surprising. American is the only other app that | compares, I can't stand to use any other airlines' apps. | thaway2839 wrote: | One could argue that maybe the developers of the app were | optimizing for the right things. Usability, performance, | etc., as opposed to disk space. | jacobr1 wrote: | As a long time united frequent flyer, while I have many | gripes, they have consistently made the app better and | better without useless "redesigns for the sake for | redesigns" | PragmaticPulp wrote: | In this case, shipping symbols with the app is almost | certainly an oversight. Stripping symbols of shipped | binaries is standard good practice. | | That said, I don't think the difference between a 40MB app | and a 400MB app is all that critical these days. Optimizing | for development speed and user experience over an | absolutely minimal download size is a reasonable choice. | nyanpasu64 wrote: | Shipping a 40MB app instead of <10 MB is questionable | except for large apps; Dolphin on Android emulates an | entire GameCube/Wii, yet the APK is only 16 MB (34.7 MB | extracted). Shipping a 400MB app is _shameful_. | potatolicious wrote: | Not to mention the surface area of the app is often | larger than it appears to a single user, especially for | companies this large whose customer bases are this wide. | | It's tempting to think about the United app as something | very simple: | | - Search for flights | | - Run through the booking flow for flights | | - Look up existing bookings | | - Change existing bookings | | But this ignores a lot of scope that's actually critical | for a company whose products are very complicated: | | - ID verification for international travel | | - Custom functionality for large institutional cu stomers | (government, corporate) | | - Functionality for ancillary services: in-air streaming | entertainment, in-airport services like lounges and | baggage checks, loyalty program, loyalty-tier-specific | functionality like priority connections. | | - ... etc. | | In this case the lack of stripping symbols seems like a | very easy win and definitely is an example of sloppiness, | but the idea that the binary should definitively be < | 100MB seems to ignore a lot of scope. | gopher_space wrote: | The tl;dr was halfway through the article. | | > pushing code into frameworks has been a best practice for a | while | MikeCapone wrote: | I think the Stripe app is like 20 megs, Overcast even smaller | than that. | dont__panic wrote: | Just checked the other day: one of my favorite apps this | year, Hyperweb, is just 18.2 MB. Granted, it's only a browser | extension for adblocking, styling, etc (sort of a replacement | for all of the various Firefox addons I wish I could use on | iOS), but the competition, AdGuard, clocks in at nearly 500 | MB. | | I really wonder what some of these apps are doing with this | space. My banking app clocks in at 400 MB as well. | andai wrote: | My favorite iOS app, Decoupled, is 2.4MB. My favorite | Android apps were 5-10x smaller. | ryandrake wrote: | Just for some perspective, the entire installer package for | the Shareware version Doom took up about 2.39MB of space. | This included the EXE and all art assets. The installer for | WordPerfect 5.1 (DOS) was about 3.6MB. The full on-disk | footprint of Microsoft Office 95 was less than 100MB, | including all documentation, Word, Excel, and PowerPoint. | | I'm not entirely convinced value-per-byte is a measure of | software quality that a lot of users care about, but it | undeniably trends down every year. | bombcar wrote: | The one I like is that the Finder icon on macOS is larger | than the entire _system_ on the original Mac. | testplzignore wrote: | DOOM2.WAD has always been my measuring stick for software | size, as I remember how frustrating it was to download | such a huge file (15MB!) in the dial-up days. I never did | get it to complete - I couldn't justify to my parents | that the phone line would be busy for a whole day :) | PascLeRasc wrote: | Thanks for recommending Hyperweb, you've just saved me a | ton of space. | dont__panic wrote: | Keep in mind that even on the free version, you can add | (unlimited?) adlists. I've added some of the most popular | uBlock Origin default lists to mine to make the ad | blocking even better. It is absolutely insane how many | apps Hyperweb replaced for me, too! | pgalvin wrote: | I have AdGuard on my phone at ~60MB, you might want to | check that. | dont__panic wrote: | Strange, the download from the app store | (https://apps.apple.com/us/app/adguard-adblock- | privacy/id1047...) is 100 MB, but my install somehow | crept up to ~400 (logs, maybe?) over a couple of years of | use. I don't have it installed any more, but it's wild | how much this varies across devices. What phone do you | use? I use a 2016 SE, I wonder if there's a bug that's | consume extra space on a device as old (and likely | untested by AdGuard) as mine? | tyingq wrote: | I don't think the Stripe app is a good comparison. Airline | apps have to cover shopping, booking, cancellations, seat | selection, loyalty programs, check-in, bar code generation | and scanning, and so on. Typically with broad support for | different currencies, languages, etc, etc. 439mb is obviously | not right, but I would expect the app to be fairly large. | arcticbull wrote: | > Airline apps have to cover shopping, booking, | cancellations, seat selection, loyalty programs, check-in, | bar code generation and scanning, and so on. | | All of that happens online. | tyingq wrote: | That may be true for some airlines (webviews vs native), | but it is not true for many. Boarding passes are probably | a good example. It's very typical for that functionality | to use something like Apple Wallet integration, and also | native widgets to upsell cross-sell boarding/seat | upgrades, etc. | arcticbull wrote: | While broadly fair, one minor quip, I believe all Wallet | passes have to come down from the server. Apps can't make | their own, can they? | tyingq wrote: | Passes already in the wallet don't require you to be | online. But, what I meant was that there was additional | code, thus additional size for all the functionality and | ui related to boarding passes, whether or not parts of it | don't work offline. | | At least the airlines I've worked with prefer native code | and UIs for any flow that's either revenue-producing, or | likely to create issues on day-of-travel. They tend to | use webviews only for things that don't have to be | working to sell a ticket or board the aircraft. | markus_zhang wrote: | I think one needs to understand the mentalities of the project | managers and programmers/contractors who actually work for | those behemoth corporations to understand the quality of their | work. | andai wrote: | Similar article by same author (2017): | https://news.ycombinator.com/item?id=14901051 | willis936 wrote: | With all of these complaints about app size I have to wonder: why | has everyone heralded the era of static linking? | account-5 wrote: | Out of interest having never been on an airline that forced you | to install an app to get what is now a basic customer service, | what happens if you don't have a phone that supports their app? | Do you get a discount? | Arrath wrote: | You know the answer. | | In fact it's quite the opposite, as another poster mentioned: | they will offer to rent you an airline ipad for the flight so | you can enjoy their content at a little extra fee. | dorianmariefr wrote: | Maybe they pushed a debug build instead of a release build? | melony wrote: | Does iOS not have code splitting? I thought most of iOS app bloat | comes from the multiscreen assets. I surprised compiled code | takes up so much space. | grishka wrote: | Do iOS apps still use bitmap graphics? | O-stevns wrote: | In many cases yes, but svg support has been available in | xcode since ver. 12 and before that pdf had been available. | As a consultant I haven't worked on a project yet where | vector assets has been chosen over bitmap | perardi wrote: | But does Xcode convert PDF and SVG to various PNG assets? | | https://bjango.com/articles/svgassetcatalogs/ | | It's my understanding, as a designer, that it was auto- | generating 2x and 3x PNGs as from your vector assets, and | that's what actually got bundled in the final app--and that | PNG compression was _not good_ compared to what I could get | by going through ImageOptim. | | I would be quite happy to be wrong about that. It would | save me a lot of time. | mrweasel wrote: | Ignoring the economy of the development process, vs. just being | able to push out an app quickly, I cannot help wonder how small, | and fast apps like this could be, without losing features. | | Sure stripping out symbols is a quick thing you can do, but how | about eliminating the ad tech stuff (people already bought the | ticket, leave them alone). Remove the dependency of 3rd. party | libraries and frameworks, utilizing only the built in frameworks | (or does that not make difference in iOS applications?). | hnburnsy wrote: | Check the article there is code for Soduku. | Scoundreller wrote: | App, OS and other file sizes are big deals in bandwidth- | constrained environments. Canada has a number of remote | communities with satellite uplinks, so every update means the | whole town needs to download them independently. | | While some cos have "appliances" that ISPs can install that'll | dramatically reduce back haul bandwidth usage, I'm unaware of any | that make any that work for a small community or aircraft. SSL | really impacted the use of general-purpose proxies to save | bandwidth. Maybe more torrent-based schemes for app stores and | others could fill this gap. | | > Apple also supports incremental downloads, meaning you can | download a "diff" of app binaries in some cases (also amazing!), | but this is even harder to measure on an actual device. In my | case I was trying to download the United app for the first time | on a runway before my flight took off. | | What would be interesting is if Apple did this diff between apps, | since I'm sure a lot share frameworks and other bits. | silverfrost wrote: | mb and MB - beings out the pedant in me... | [deleted] | commandlinefan wrote: | > it is fair to say this area of app development is complicated | to understand. | | Not really, but it's also actively suppressed. If they can make | as much money with a 439MB app as they can with a 10MB app, why | would they waste any time or effort trying to save you a few | minutes of download time? If anything, I expect this to get | worse, as management is constantly pushing for adoption of | frameworks that (in their imagination) speed up time-to-market. | digikata wrote: | They spend a lot of money trying to offer competitive features | on their flights - like maybe watching streaming videos on the | plane enabled by the app. To the extent that passengers can't | finish a 439MB download of the app just before they board, the | app size wastes investments in services of the airline. | spookthesunset wrote: | Don't these airplane steaming services have a local copy of | all the movies on some storage device inside the plane? | | I wonder how crazy it would be to cache the iOS app... like | maybe they run a caching transparent proxy on the plane... or | some crazy relationship with a CDN that treats each plane as | an edge node. | | I dunno, it would probably be pretty be way to expensive to | set up something like that to be worthwhile. | Kon-Peki wrote: | Apple content caching is built into MacOS. A Mac mini | connected to the in-plane wifi would likely do the trick. | | https://support.apple.com/guide/mac-help/what-is-content- | cac... | | https://support.apple.com/en-us/HT204675 | commandlinefan wrote: | You're thinking like an engineer, not a manager. How does | this factor into this year's bonus? | digikata wrote: | Increase of passenger engagement metrics on app delivered | video services? | snovv_crash wrote: | If more people download and run the app, then surely you | can justify further investment in the product? | bitwize wrote: | Southwest has a webapp, lol. | psanford wrote: | The size of the app is hurting their on-boarding funnel, they | just can't see it. The most likely place you are going to | download the United App is in the airport just before your | flight, on mediocre free wifi. | | United really wants that download to be fast, so customers can | get the app before getting on the plane. Otherwise you end up | with a bunch of grumpy people your that your flight attendants | have to deal with. | engmgrmgr wrote: | I've been able to download the app over plane WiFi for free. | It used to be a little-known hack for free internet once upon | a time. | hrrsn wrote: | That'd probably work a whole lot better if the app wasn't | 439MB. | | I've been on a few budget carrier flights that have skipped | the headrest display for an airline app. They haven't had | external Internet access, as it's just served over a local | WiFi connection from an onboard server, so you must install | the app before you take off. | PascLeRasc wrote: | Flight attendants don't report to software engineering | managers though. | psanford wrote: | Yes, its an organizational problem, but one that a healthy | company should be able to figure out. | gingericha wrote: | It's likely to also be one of the first apps I decide to | uninstall when my phone's storage becomes somewhat limited. | Symbiote wrote: | Looking through the old texts I have from my phone provider, it | would cost me EUR4 to download even 10MB over roaming data if I | was in the USA ("Welcome to USA ... data is EUR0.40/MB"). That | might be worthwhile in some cases. | | If I'd perhaps been connecting from a different country with | United flights, there's no way I'd download it over roaming | data "Welcome to Jamaica ... data is EUR3.05/MB". | 10000truths wrote: | Actively suppressed by whom? Is there some shadowy cabal of | executive saboteurs gleefully cackling at the idea of getting | away with a bloated app? Because it's plainly obvious that a | bloated app benefits neither the consumer nor the business. | | It costs consumer time waiting for a large app to download, and | it wastes consumer money by burning up quota on metered | connections. It costs the business because apps have a size | limit, and hitting those limits means no more features until | you can reduce that size. | morpheuskafka wrote: | > It's becoming somewhat of a popular trend in the airline | industry to cut costs by having the passenger bring the hardware, | | I mean, there's virtually no one taking a flight without at least | a phone if not a laptop/tablet with them, and most of them | probably have a much better screen and headphone support then | whatever outdated stuff would be built in to the plane. | | The only thing I really miss on flights that don't have the seat | backs is the thing that shows the altitude and progress on the | map. | chrisseaton wrote: | > The only thing I really miss on flights that don't have the | seat backs is the thing that shows the altitude and progress on | the map. | | But you can get that on their app as well. | | I think flights should do-away with in-seat entertainment. I | very rarely see anyone using them, and if you are unfortunate | enough to be in economy, they actually take up quite a lot of | your personal space. | | All the screens must weigh a ton as well - bad for the | environment. | coldcode wrote: | I spent the last ten years of my career building iOS apps, all | but one you would likely known at the time, and whoever in charge | of this app is an idiot. Shipping an app to the general public | with symbols intact? Really? If they didn't know/didn't care, it | tells me no one there likely cared about any other quality issue | either. It's highly likely that any relevant lead person probably | screamed about this daily, but higher ups don't give a shit. | | At my last job our legal team would have had a cow shipping | labels. Our apps are gleaned by blogs looking for scoops on | upcoming features. | | I once interviewed at a major airline (not United) and at the | time they had outsourced their entire app and web to some foreign | companies, including any and all oversight. Their app was a POS | and they had hired someone to write a new one -- the same | company. Now they had no idea why it was so delayed so they | wanted to hire someone to embed in the other company to spy on | what was going on. Of course I wanted nothing to do with this | travesty. This was years ago, no idea what happened. | | You'd be amazed at how pathetic mobile development can be even at | big companies. Mobile doesn't have to be hard, but if management | tries hard enough, can make crap at scale. | pinot wrote: | I travel on United probably 6 flights a month on average. | Overall I think it's a pretty good app but like anything I use | routinely, I could easily come up with a list of 10 complaints, | from a UX perspective. | | My biggest is the UI only considers one half of a RT "trip" a | trip. | squeaky-clean wrote: | > I once interviewed at a major airline (not United) and at the | time they had outsourced their entire app and web to some | foreign companies, including any and all oversight | | Oh it goes deeper than that. Almost every airline (Southwest is | the only exception coming to mins at the moment) also | outsources their web design, their pricing structure, and their | availability tracking. I've worked with several airlines that | legitimately could not give us a list of all their current | routes. Some of them actually paid us to scrape their website | and tell them where they're currently flying and how much it | cost on average. | kylehotchkiss wrote: | I like what Duffel is doing as far as creating a nice, | consistent airline booking API goes: https://duffel.com/ | | Maybe some carriers should integrate with Duffel and build | their apps on top of the Duffel API instead of shipping all | the logic off to accenture or whatever | coldcode wrote: | Duffel is interesting, I wonder what they use on their back | end. I've written airline booking API when I was at an OTA | (now sadly gone like so many) on top of our parent | company's res system. It can be complex, made more in my | case so by the pathetic res system itself and its | limitations. In fact at the time we had no way to do test | bookings without real money (and mostly un-refundable | except for a single route). | hogrider wrote: | It's an airline. Of course they dgaf. | varenc wrote: | Speaking of United shipping apps with symbols intact... | | Last week I came across some unminified JS on United's | website[0]. I love the warning it starts with: | /* Minification failed. Returning unminified contents. | (5218,49-69): run-time error JS1300: Strict-mode does not allow | assignment to undefined variables: nearbySearchErrorMsg | */ | | Never seen a minifier fail by not minifying before. Also | interesting seeing all the commented out code and TODOs. | | [0] https://www.united.com/ual/bundles/js/flightsearchresults | JTon wrote: | TL;DR: | | > Wow! I honestly wasn't expecting that much of an improvement. | We shaved 187MB off the app size in five minutes by stripping | framework symbols. | anthk wrote: | C++ and Go binaries such as mednafen can be about 50% smaller | once stripped. | 0xbadcafebee wrote: | > While the United dev team should have noticed this much earlier | | I suspect it's more that their devs are either junior and don't | know any better, or more likely that they just don't care. I've | also met some devs who believe whatever comments they read on HN, | like "file/memory size don't matter" | bluedino wrote: | They don't teach this at iOS boot camp | paxys wrote: | They will care if they are paid to care. It's as simple as | that. | NelsonMinar wrote: | It's 78MB on Android (Pixel 6 Pro). That's one of the hidden | advantages of Android: much smaller apps. Makes for faster | downloads, less storage consumption, and maybe even better | caching / performance. It's common for iOS apps to be 4-5x bigger | than Android apps. | hnburnsy wrote: | For me the download from Play store is 78 MB, but it expands to | 237MB once installed (One Plus 6T Android 11). | hnburnsy wrote: | Southwest app is 41MB installed. I know it does have a video | player installed as Southwest let you stream from the | browser. | sagivo wrote: | This is why I always prefer simple mobile web version over | installing apps. There's no added value for the app that I cannot | get from a simple browser. | ngoel36 wrote: | File size aside, I can confidently say - United hands down has | the best app of any major airline in the world. It's better than | their website and often-times even better than calling customer | service on their 1K (top loyalty status) line. Many ways to make | it better, but if we're comparing it to airlines & hotels, it's | extremely well done. | 121789 wrote: | I agree. And it used to be the worst out of any of them, so | props to their dev team. | | The video player does give me problems sometimes though | pinot wrote: | It absolutely should _know_ that I'm a X-elite member | blahblah stop giving me ads for their credit card which I've | had for 15 years. | notyourwork wrote: | Interesting, I've found Delta's app to be usable (above | average?). Sort of funny that a usable app is my above average | rating but I've found Delta's app just doesn't get in the way. | I'm looking forward to trying United. | bluedino wrote: | The Spirit app installs a bitcoin miner. | MH15 wrote: | I usually fly Spirit right now (college student) so I'd | love to see a source for this. | blah_humbug wrote: | I've found that true of other everyday things (eg, booking a | session my local gym), and find it incredibly depressing. Not | only have we devised a world where impersonal, digital | communication is the way things get done, but we must also buy | a smartphone to even start accessing it. | brianwawok wrote: | I find it a great step forward in society, for every Gym in | the world to not need to staff someone to sit there and | answer phone call questions around (what are your hours? can | I book X for Y?). Those are done much faster with robots and | lower our costs. | ciphol wrote: | Those are done much better with a web site (for many | purposes, a static website with no Javascript is | sufficient!) than by downloading a gigantic possibly- | insecure app. | trevorLane wrote: | have you seen Breeze's app? | jaywalk wrote: | "Sorry, your device's memory is too low. Start your search | again." -Delta app | sidlls wrote: | Reminds me of Facebook's (in?)famous "Apple can't handle our | scale" thing: | https://www.reddit.com/r/programming/comments/3m5n2n/faceboo... | | There was an HN thread about it, too, but I can't find it. | ChrisMarshallNY wrote: | I've talked with folks that have worked on their code. | | I think that it's unreasonable to expect a Lambo (or even a | Yugo) to accommodate a 300Kg man. | ChrisMarshallNY wrote: | I found this: https://news.ycombinator.com/item?id=10275396 | | But no comments, and no votes, so it must have been another | thread, thereabouts. It was quite some years ago. | scandinavian wrote: | I found the PDF if anyone is curious. | | https://drive.google.com/file/d/16lDaCfEjT7Z72EEDFBo5r3lTDCV... | | I'm not sure what I just read though. | password4321 wrote: | 2014 (Android) - https://news.ycombinator.com/item?id=8162342 | | 2015 (scale) - https://news.ycombinator.com/item?id=10271586 | https://news.ycombinator.com/item?id=10066338 | | 2018 (491MB) - https://news.ycombinator.com/item?id=17995954 | | 2020 (Messenger) - | https://news.ycombinator.com/item?id=22466462 | | 2020 (SDK) - https://news.ycombinator.com/item?id=23790207 | indrora wrote: | When Windows 10 Mobile was a thing, Microsoft had written a | very competent Facebook application to go along with it. | | The original version was 18MB. The official Facebook-written | version was nearly 300MB, with the bonus that it disabled the | old app. | | I wrote about it then: https://medium.com/hackernoon/how-not- | to-transition-an-app-b... | barrkel wrote: | The real problem is that people no longer understand the | abstractions they're using to build apps. | sayrer wrote: | You can't paste your password on United's inflight WiFi portal. I | eventually got it to work by making Safari share it from my | laptop to my phone. | throw10920 wrote: | Every time I see an article like this, it's another point of | evidence that, no, large application sizes are _not_ actually | needed for performance /functionality/ease of development - | they're just due to sloppy programming. | | Electron and web developers, take note. | allisdust wrote: | Even after optimization its massive. What does this app contain? | An Embedded game? Shouldn't an airline app be simple. | polpo wrote: | Especially since a large number of people are probably | downloading the app in a panic at the airport on crappy | overloaded WiFi or cell signal. | wnoise wrote: | Yes, actually. You can see "sudoku" in one of the listings. | jrc2022 wrote: | Nicely done! Someone should send this to UA... | lulzury wrote: | What is the purpose of having those framework symbols there in | the first place? What was the original intent/use? | joezydeco wrote: | Upstream telemetry on a crash? | Siecje wrote: | Debugging | galad87 wrote: | No purpose. Even without those, you can resymbolicate a crash | log later. | _3u10 wrote: | You are very incorrect sir. I encourage you to strip the | frameworks in your /System folder and then reboot your | system. | | You can strip the main executable but stripping frameworks is | a VERY VERY bad idea. | galad87 wrote: | There is no framework to strip in the /System folder, | everything is in the shared dylib cache since Big Sur. | [deleted] | [deleted] | anon_9867864 wrote: | Apple. Hire this man! | VBprogrammer wrote: | It's times like these that I'm reminded our first computer had a | 1GB hard-drive. | Narishma wrote: | Mine was 40MB and I couldn't imagine what to fill it up with. | DrBazza wrote: | Hello world by size - | https://drewdevault.com/2020/01/04/Slow.html | | 439Mb? That's horrific. | | If I was cynical, I'd say it's in Apple's interests to have | bloaty apps, so they can sell more expensive phones with more | storage and memory. | | But that would be cynical. | | It feels like a failure at every step in the tool chain if a | binary comes out at that size. | squeaky-clean wrote: | Not that it excuses it, but having worked at a place that did | contractual web design for airlines, I'd bet money that the app | wasn't developed by any employees at United and instead was | developed by the lowest bidding external company they could find. | | Based on some of the names of packages I don't recognize | (CYFDCTEncoder) and some googling I'm going to guess the company | was CYFuture. | abotsis wrote: | I wonder what effect stripping has on crash dump reports though. | I don't know enough about how the App Store manages those, like | (if a user opts in to "share information with the developer"), | does the developer get less nice dumps as a result of stripping? | Surely this can be worked around so long as someone has a symbol | table (which they likely do), but the infrastructure might not be | in place to do that automatically. | ajconway wrote: | Debug symbols are stored separately on the developer's computer | (and may be uploaded to Apple, but that's optional). Including | symbols in the App Store binary is practically useless. | hoten wrote: | Is there any reason Apple couldn't just strip the code | binaries themselves? | mlindner wrote: | A good crash dump doesn't need symbols at all. The symbols come | from the stored symbols from when the author originally | compiled it. As long as the builds are reproducible you can | even produce the symbols at a later date for an old version if | you still have the source code. | snovv_crash wrote: | Even if the builds aren't reproducible, rebuilding on the | same machine with the same settings usually gives you | something a crash dump will work with. | | But, make your builds reproducible and/or save your debug | symbols as part of your release process, it will be something | you wish you did otherwise when you're not quite sure if the | stack trace you have is correct. ___________________________________________________________________ (page generated 2022-02-23 23:01 UTC)