Ask HN: Why are banking/finance apps so heavy?
I have an iPhone. Of the 10 largest apps on my phone, 4 are bank/finance apps … Robinhood clocks in at 480MB, Chase at 350.
What about these apps demands such a large footprint? (Larger than say Notion, Amazon, messaging, navigation/maps, etc etc)
53 comments
[ 3.3 ms ] story [ 125 ms ] threadMy first thought was "I wonder if lockmakers are really protective of their methods / manufacturing process," but realized this information would matter little: the point is that it doesn't matter if people know exactly how the lock is made, because it doesn't make it any faster to open it, and I've only got 2 hands and 24 hours in a day and the time just isn't worth the risk.
that mentality of totally buffing your RPG character before attempting the final boss
viscosity of decision making
I hope that's too vague and metaphysical
The sad part is that making the lock big and heavy usually only makes the intended uses of the lock inconvenient; the unintended bypasses don't care about those.
What I've observed is that in both cases the devs will use npm/nuget/yarn/favorite-package-manager with a bias for pulling in lots of packages, which all have lots of dependencies themselves. There ends up being a lot of bloat. Lots of libraries that are either not in use or really aren't needed.
Both scenarios happen frequently to companies that are no tech companies first.
The Chase customer service though, had been excellent. Just thought I'd mention that.
Almost all of them are outsourced as well, so you get the cheapest solution done by cheapest developers combined with box ticking compliance.
- Used React Native
- More features than you'd expect from a typical bank (card issuing/ management, sending payments, invoicing, CRM of contacts to pay/invoice, push debit to fund your Creator Cash account from your brick and mortar without having to send from the brick and mortar, data viz for earnings by platform, earned wage access aka cash advances, and more)
- Uses Stripe Treasury for BaaS
I could speculate, but I'm not really sure what causes that much bloat in other banking apps.
1. Additional security frameworks to help with anti-tampering, often from 3rd parties who have little desire to decrease their frameworks size. Surprising amount require frameworks for mapping/location, photos, camera, bluetooth etc due to anti-fraud and fingerprinting checks
2. Many bank apps obfuscate their binaries/code which increases size
3. Many have huge backwards compatibility requirements so end up always having older frameworks or multiple versions in some cases
4. Often large number of devices need to be supported as such they may have interface files and image assets for say iPhone and iPad, these can and should be stripped out but often aren’t
5. Many banks also have single codebases supporting multiple brands of their banks and subsidiaries, or for their business vs personal vs premier/VIP/platinum customers, they use asset catalogs etc to reskin each but theres often bloat from the overlap
6. Lots and lots of legacy code which often never gets removed. Many still have Objective-C code/dependencies for example
7. There’s often a surprising amount of functionality in banking apps that goes amiss by most users who only really use it to check their balances, eg Cheque scanning/OCR, biometrics (beyond Face ID / Touch ID), receipt management, business or premier customers may have chat or video facilities with their relationship manager etc
This is distinct from any “feature-enabling” type bloat IMO, because it’s more “development style enabler” type bloat instead.
I don't remember how much we shelled out for our 3PAR SAN, which hosted Exchange data in a CCR cluster, but it wasn't a pocket change AND we had 14000 mailboxes at that time.
"Don't attribute to malice..."
Also, CCR and RAID5^W, with a cluster/page inefficiencies:
A base 7200 FC head in 2014 cost ~$40k for 8x1.2Tb SAS 10k (PROMO, retail was $78k), so So the cost of just storing a completely unneeded ONE E-MAIL which wasn't even read by 99% of personnel: NOT including tape backup costs, satellite transfer links, storage on the local machines, costs of receiving the message on handsets in roaming.Edit: I don't remember the specs (we had 1 head with 3 JBODs?), but back when I counted I got around $2k for this. I repeat: for storing ONE e-mail.
Insurance is a great example of the same thing: horrible apps that only do 3 things but are 400MB.
Not "React Native with redux rerendering" slow, but "like a slow webpage disguised as app with lagging frames after tapping simple buttons for basic actions" slow.
Just checked, the app is 34 MB on my Galaxy S10.
These apps reflect the complexities of the organization. Each sub feature can have an entirely different stakeholder and not being a tech-first company means outsourcing to a an army of devs that will pile on code for more profit or internal devs who will pile on code upon code back and forth because the stakeholder's vision is rarely is communicated accurately or efficiently to whoever writes the code. And then that work has to go through security, qa,marketing,etc.... back and forth. Essentially, it will probably feel like a miracle that they managed to make a functioning app if you're used to tech-first companies.
Very few banks I've worked with have much in the development department.
Assets, and the ability to update them. banking apps are typically pretty simple, where you're essentially wrapping all of the 'core' behavior in another API, and that API is doing all the heavy lifting, and sending JSON like they all do.
I think the real reason is around asset templates, and transpiling
Home Banking 1: - App Size 129MB - Docs & Data 19MB
Home Banking 2: - App Size 98MB - Docs & Data 8MB
Insurance: - App Size 102MB - Docs & Data 12MB
< 150MB seems somewhat reasonable to me
And since you mentioned other apps: Telegram is 98MB, Airbnb 218MB, Spotify 143MB, 1Password 128MB just to name a few I have on my phone right now. So Around 150 seems about normal.
All three the apps I mentioned are for Italian based companies, not sure if the situation is different in other countries.
Home banking 1: App 382MB | Docs 10MB
Home banking 2: App 346MB | Docs 5MB
Home banking 3: App 302MB | Docs 38MB
Finance 1: App 265MB | Docs 212MB
Finance 2: App 301MB | Docs 16MB
Insurance: App 204MB | 3MB
That brings the average size to 350, or 300 for app only. I know it's not apples to apples, but kind of surprising to see such a wide gap.
Maybe it's all the advanced ML code that banks are running on our devices … </s>
[edit for formatting of list items]
Why do you think that’s the case?
Bigger and more complex apps perhaps?
Maybe US banks need more functionalities in their apps?
Incidentally I was maintaining a cross platform mobile app for a major UK company. Between Android versions of the fairly ancient framework the app size grew 2 or 3 fold. There were a couple of issues, one was js minification was failing before it was wrapped into a native app by the framework, I think I fixed that in the build file. Also both the ARM and x86 libraries were being included in the APK even though we were only targeting one particular device series. Removing one of these almost halved the file size. It was only really the guy managing the devices and device builds that cared about this, the business wouldn't have noticed.