Live data from Hacker News

How Uber Deals with Large iOS App Size

eng.uber.com

191–200 of 215 posts

Re: How Uber Deals with Large iOS App Size

#191
post #160

Earlier quoted context omitted.

Uber India isn’t like Uber New York but it’s a million times more reliable and predictable than almost any other commercial service you can get in India.

Really? Seems like it’d be more reliable and a lot faster to just hop in one of the hundred rickshaws on every street. Besides the fact that they’ll overcharge you if you’re a tourist.

It's cheaper and faster but not at all more reliable. That's the tradeoff.

Like the other poster said, autos do not handle accidents well and in major metro areas of India accidents are common. I've ridden in them, will keep riding in them, but it's a risk you can pay to avoid.

Re: How Uber Deals with Large iOS App Size

#192

Earlier quoted context omitted.

My biggest complaint with iOS development is how confusing Xcode's build system is. Extracting code out to shared frameworks is a confusing process and I can understand how so many of the top apps get it wrong. Also, it's clearly not a priority for Apple because they don't provide easy inspection tools. Best case for them is the user buys a new phone with more storage.

I’m curious - does React Native/Expo do any better job at this, with tree-shaking and package building?

Expo apps are notoriously enormous.

But, I tend to bend the other way and I think programmer velocity is more important in 99% of scenarios than 30MB vs 100MB app size

Re: How Uber Deals with Large iOS App Size

#193
post #17
post #7

An old (but fantastic) comment from the previous discussion about Uber's app size that addresses why the Uber app is so big: https://news.ycombinator.com/item?id=25376346

The summary of that comment is "we have to include a ton of stuff that will never be relevant to most users like payments APIs that only work in India." This is why some global apps have different apps for different countries. It's a trade off. Would you rather have a single fat Uber app, or have to download Uber India when you arrive there?

Consider that many travelers are using global roaming data rates on their sim card when arriving at their destination. They should be able to just open the app and it 'just works'. Your proposal isn't something a good product manager would even consider as an option for more than a few seconds

Re: How Uber Deals with Large iOS App Size

#194
post #115

Earlier quoted context omitted.

While I had a positive experience with the Uber app software-wise (app functioned seamlessly landing in Mumbai from U.S.A.), Uber as a service was not really comparable to what it is like in the U.S. and developed W. European countries. I got the sense that it was more of a strictly ride hailing / request service, not much accountability required from the driver. Often had > 3 drivers cancel after 10-15 minutes waiti…

Uber India isn’t like Uber New York but it’s a million times more reliable and predictable than almost any other commercial service you can get in India.

Reliable as IT offshoring commercial services?

You said any.

Re: How Uber Deals with Large iOS App Size

#195
post #105

Earlier quoted context omitted.

If you open up the IPA, you'll see that basically they've recreated some anroid-xml compatible rendering engine. The localization files (50MB) -> All the strings files are double the size (unpacked), because of useless comments. There's 25MB already. In the assets catalog -> half an MB for an upscaled (!) visa card. Other images where jpgs of heif are a better choice. probably in total 10-20 mb. Strip all ICC/Gamma f…

I would like Apple to be doing some of these against all the apps. Few app developers have the time/bandwidth to do these things and it would be a very inefficient use of resources to have everyone do it over and over again.

I hope they have enough resources “They already spent millions in engineering time to cut the app size”

The image optimizations, precalculation should be done be apple. But the dev could use a lossy format for certain files. That’s up to the dev, not Apple.

Maybe it’s because I used to write some j2me games. Or some games when Apple only allowed 15mb I think. I had to optimize the hell out of my assets. Still I think I’d Lucy’s that certain apps are almost half a gb in size

Re: How Uber Deals with Large iOS App Size

#196
post #96

Earlier quoted context omitted.

If you open up the IPA, you'll see that basically they've recreated some anroid-xml compatible rendering engine. The localization files (50MB) -> All the strings files are double the size (unpacked), because of useless comments. There's 25MB already. In the assets catalog -> half an MB for an upscaled (!) visa card. Other images where jpgs of heif are a better choice. probably in total 10-20 mb. Strip all ICC/Gamma f…

Nice check. I guess they relaxed a bit since Apple raised the app size limits :) (sorry for the snark in the previous post)

Well it’s easy to assume that big companies do the work you’d expect. But I think the bigger the team, the less they care about all aspects.

Especially with A/B tests, because they are just temporarily

Re: How Uber Deals with Large iOS App Size

#197
post #17

Earlier quoted context omitted.

The summary of that comment is "we have to include a ton of stuff that will never be relevant to most users like payments APIs that only work in India." This is why some global apps have different apps for different countries. It's a trade off. Would you rather have a single fat Uber app, or have to download Uber India when you arrive there?

I love that it’s one app. I remember landing in Delhi from San Francisco and the Uber app worked perfectly and I was so astonished. Effectively nothing else translates seamlessly like that. Combined with the incredible quality control on the vehicles side (every car I got in India had a seatbelt, where close to 0 taxis you’d get on the street would), I knew it was a very high functioning company to execute like this.

Same here when I went from Bangalore to Houston. Amazing seamless experience.

Re: How Uber Deals with Large iOS App Size

#198
post #103

> The app has a couple of millions of lines of code I wonder if Uber is planning to do anything about that? The technique described in the article (whole program instructions outlining optimisation) is a band aid style solution, merely delaying the inevitable: the code produced by numerous teams independent of each other will inevitably cross first the download size limit threshold, and later maintainability threshol…

I also find it unbelievable to have so much code for a single app, this is approaching the level of magnitude of OS code bases: if you think that the entire Linux kernel is around 28M lines so roughly 15x the Uber app. The binary size is also from the same ballpark as the entire Windows 98 needed for installation. I'm glad Uber is doing something about this, but in my opinion Apple should tackle this across their ent…

> I also find it unbelievable to have so much code for a single app

This point comes up in a lot of discussions about non-trivial software. My theory is that it's of the same nature as underestimating development complexity when planning your own work as an engineer. Project after project, everyone (me included) keeps forgetting that they _will_ spend 80% of their time (and code) dealing with small issues and edge cases in their product.

Who hasn't thought at some point that they can write a Twitter clone in a weekend, or hasn't been fascinated by the amount of simple bugs in someone's else product, thinking that they are obviously just bad engineers.

Re: How Uber Deals with Large iOS App Size

#199
post #48

I’m the founder of a YC company in the current batch focused on solving this exact problem! https://www.emergetools.com We parse Obj-C and Swift runtime metadata to determine size contributions of individual types and functions in your app. We use this analysis to post PR comments with granular size diffs to help devs write smaller, better code. I tried it out on the Uber app and immediately noticed a disproportionat…

My first thought reading the headline was “wasn’t there recently a show HN about this exact problem?”

Glad to see it near the top - saved me a search.

Re: How Uber Deals with Large iOS App Size

#200

Earlier quoted context omitted.

This is such a non-feature for 99% of users. The fact that Uber devotes engineering resources to serving the tiny 1% slice of users who care about having an app that works seamlessly across dozens of countries, at the expense of the much larger number of users with limited space on their outdated devices, is really emblematic of the Valley's out-of-whack priorities.

Au contraire, people with outdated phones are less likely to be able to afford to Ubers. Much of Uber's profit comes from people booking Ubers from airports, I've used Uber all over the world and it's absolutely amazing.

All sorts of people use UberX and Uber Pool, actually.

Uber Pool is no longer available due to covid; but hopefully it will come back as vaccination rates go up.

Post reply on HN