Hacker News new | ask | show | jobs
by jedberg 1940 days ago
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?

10 comments

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.
Exactly same experience, from San Fran to Singapore and in between. Never really realised how good we have it, such a good point
That’s no longer possible now because Uber withdrew from South-East Asia. You can use Grab and Gojek in Singapore, but they don’t operate in the USA.
You should have come pre covid then. Ubers ecosystem in India has kinda collapsed, driver quality and availability has gone way down as more and more realize how bad a deal it is. Almost every driver I've spoken to here confirms that they are in terrible debt and have not made any money at all driving uber.
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 waiting before actually getting a ride. That being said, it was still a hugely valuable service to have in India as a foreigner.
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.
Have you seen those things in an accident? I can easily afford the Uber with seatbelts and I am not going to trust my life to a three wheeler.
Reliable as IT offshoring commercial services?

You said any.

Yeah my experience was that it could be a bit of a pain with cancellations but there were enough cars on the road that I would always eventually get a ride.
Same here when I went from Bangalore to Houston. Amazing seamless experience.
> every car I got in India had a seatbelt

That sounds so weird to me... What do you mean cars don't have seat belts?!

> That sounds so weird to me... What do you mean cars don't have seat belts?!

I can confirm the OP's experience albeit in a different country (Mexico). In some regions, I haven't been in a single street taxi with working seat belts. Indeed, I've been in some private cars without them as well, or with more physical space for passengers than there were seat belts available.

Uber vehicles, though, have always provided those safety features. Some drivers work as both street taxi and Uber drivers (as they frequently cross into or live in regions without Uber but drive people to places that have it), so that quality assurance can trickle down in some cases. It honestly goes beyond seat belts though; a Uber car is more likely to have AC, electric windows, etc. than your average taxi, even in ridiculously hot parts of the country.

75% of Ubers in Egypt didn't have seat belts. It's just tucked away and not culturally the norm
People have even chuckled when I reached to put a seatbelt on in India. :)
Not sure what to make of this. I’m Indian and the last time I was in India, there was strict execution of the seatbelt law and offenders were made to wait and fined heavily. Most drivers were wearing seatbelts.

Maybe because it was in Chennai, a southern state and not in Mumbai or Delhi.

Sounds plausible. I was in Delhi a couple of years ago, using mostly Ola (Uber didn't seem to like my non-Indian card, strangely enough) and most of them did not have seat belts at all.
Used Uber in Delhi and the driver told me to relax as there was no need to wear the seatbelt because it's only mandatory for the driver.
Personally, I would download whatever the dominating hailing app is in the country. Most of the time its cheaper than Uber like Grab in parts of Asia
If you're landing in Asia from the US you're probably not going to care about the price (there are exceptions), and Uber has been reliable for me travelling, if that costs a few % more than the local version I'd be happy to pay for convenience.
> Uber has been reliable for me travelling

Unless India? [1]

[1] https://www.theguardian.com/technology/2017/jun/08/uber-exec...

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.

It's much more complicated than just countries. If you read the linked comment then you'll learn that it's includes many regional customizations, even down to specific cities and airports.

An app for travel should absolutely prioritize UX and ease of use as you travel, however far away your destination is.

Interesting assumption/perspective - The only people in my circle of friends and co-workers who use Uber, are travelers. And nobody I know has a clue of their phone storage or has hit it due to apps (as opposed to videos/photos).

For some, Taxi works well enough and is (perceived as) licensed/trusted/reliable so they don't have a need to use Uber. Others are bit of Luddites, or mistrustful. But I guess friction of Taxi / benefits of Uber just aren't high enough :-/

(Personally, I've only ever used Uber on specific travels; for 99% of my transactions, Taxi has been easier/more reliable. Don't get me wrong, I think Taxi licensing/medalion model is outdated, the drivers have worked incentives, and cars aren't as maintained as well as they could be. But I still normally don't find a benefit in Ubering).

Finally, FWIW, even traveling within country, I've noticed significantly different screens/features/options in, say, Ottawa or Toronto airports and vicinity. So I think overall a lot more people benefit from this monolithic model than may be immediately apparent.

I'm in the same boat. To a first approximation, I never use Uber in my local metro area. To a second approximation, I don't use it much traveling either. I'll often grab a cab if it's convenient rather than waiting for an Uber/Lyft to show up. Or if there's a good public transit option to my hotel I'll use that. In spite of (normally) 100+ days of travel per year I maybe use Uber a dozen times a year. (I do use a private car service to take me to the airport, but again Uber wouldn't be very good for that purpose.)
> This is such a non-feature for 99% of users.

I would imagine that travellers are an outsized percentage of high spenders, even if they are a small portion of users.

Totally this. It isn't uncommon for a whales (usually 1 to 2 percent of an apps users) to account for 30 to 50 percent of their profit. So it is very worth thinking of those customers first.

Not all customers are equal. And if you build your app or site without knowing that you may well chase the wrong features.

I would agree with this. At home I walk, ride my bike, get on transit, rent a carshare etc. When I'm travelling, I'm walking or calling an Uber/Lyft. I'll take a train or bus only if it's super easy to navigate.
Same here. In my local area I understand the transit. I have a transit card. But when I am in a foreign city that speaks a different language these are not realistic options unless I spend effort on figuring that out and deal with local municipal transit authorities, which is not the vacation experience I am looking for.
I spent a lot of 2018/2019 travelling around North America. It was wonderful to never have to consider a taxi.
As a frequent traveller, I would be much more inclined to either pick the airports that are going to be relevant to me ever or pick the destination airport when I am at the source airport which Uber can easily detect. I am visiting ~10-15 airports most of the time. I would be happy to spend some time to set this up on my phone so i not need to waste a huge amount of space and bandwidth every time that I update Uber. For Uber it would be a win too, reducing the size of the app significantly. Maybe it is only me.
A willingness to put in some time up front to tailor a technology experience to yourself is one thing that separates the average HN user from the population at large.

For a significant majority of users, if it doesn't work well out of the gate, it's broken.

Even as an avid Hacker News user, I wouldn't tailor an app download to save bandwidth/space. Both of those are abundant.
Don’t app updates only push deltas anyway? It’s only the initial install that’s large.
It's not even just per country. If you fly to certain airports in certain states they have different rules that affect what the Uber app can do. Do they maintain a separate app for Washington and for New York? It gets pretty messy pretty quickly. Not only do you have to maintain these different edge cases, but you also need to maintain separate applications and all of the problems associated with that like keeping libraries and API's in sync between them.
I'm probably missing something obvious as I'm tired, but why does the Uber app need stuff like specific airport rules stored in it rather than pulled from their servers when needed?

Map apps let you look at any city in the world without needing all of that data inside the core app, and if you have enough data to use the Uber app wouldn't you almost certainly also be fine to have it download in the background the required info (coordinates of where pickup is or isn't allowed, specific instructions message to display, etc.) the same as it receives information about local pricing, location of available cars nearby and so on?

The iOS app store prohibits downloading code at runtime, excluding some very specific circumstances.

As long as the airport rules can be stored as data, not code, then iOS would be fine with pulling them.. but at that point you have a data blob saying effectively "in country X, you can use payment Y", and you still need code that knows "payment Y means enable this section of the app and use this library"... and you can't download that library at runtime on iOS.

So my guess is that the code implementing regional rules have to be bundled with the app due to apple's restrictions, and the associated data that could be dynamically downloaded is to small to not just bundle it too.

Connectivity at airports is not the best - if you’re on an expensive data plan those extra MBs cost a pretty penny which might put off the customer.

You need to think about the larger picture.

Wouldn't it be significantly less than a MB for all the info about "how does Uber work at this airport" info to come in json or whatever? It could surely survive without downloading special airport-specific media like logos, do the airport rules require complicated heavy code on the phone?

Thinking of my experience with Uber at airports, it's generally stuff like "pickups from this terminal are only available at the west exit" (show on map - so needs coordinates and message text), or "There is a £10 airport pickup fee for all private hire vehicles here which will be added to your bill", or whatever along those lines.

But perhaps your point still stands even if it's KBs rather than MBs.

Give the streaming of location data for cars in the area, I don't think they care much about those extra MBs. If they did, you'd get a "N cars within X km of you", not a live-ish map.

A quick summary like "extra fee for airport pickup: X, pickup location restricted to: Y, etc." should be pretty comparable.

I don't have any numbers, but I would guess that a good part of Uber's user base consists of people that travel often. Not having to download a new app or update every time you go to a different country is a huge advantage.
There’s me, a frequent traveller who uses UberLUX 4+ times a day, spending more than 5000GBP/mo.

Then there are 100 guys with outdated devices who use UberX once or twice a month to get back home from the pub, probably splitting the ride with their friends.

I bring in more money than the latter group of people.

I’m a bit surprised you have the time for UberLUX. When I find myself with an expense account for Uber I always go for the lowest ETA, which is rarely Uber Premium. You must be hanging out in richer places than me.
In central London it’s never much further away than the cheaper options, the cars are actually nice (S-class 90% of the time) unlike in the US.
Why are you assuming that splitting it into multiple apps would require less engineering resources than keeping just one?
That 1% of users represents a lot more than 1% of profit, and engineering an application that is that robust across scenarios has benefits to the stationary users transiting through multiple scenarios as well (surge pricing to normal, credit card to Apple Pay, car ride to scooter ride, etc).
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.

Personally? A single fat app. Less fumbling around when I land somewhere to get their localized app, which will presumably only be available from that country’s App Store that’s inaccessible before I land there.

If I have to deal with the airport’s wifi... I don’t want to depend on downloading a 100mb binary over it.

Maybe they could have a local and global version available, but that’s already making it more complicated.

> If I have to deal with the airport’s wifi... I don’t want to depend on downloading a 100mb binary over it.

That pretty much doomed all these "local Uber competitors". Nobody would start looking for a local competitor, set up an account, get 2FA, register their payment method and then have the privilege of getting a "starting up" screen telling them how and where they can get a ride. Instead they just open Uber and get where they want.

>That pretty much doomed all these "local Uber competitors"

Did it? How much of Uber's usage in a random big city is from travelers based elsewhere vs locals? And it seems like others have succeeded in some narrower regions (Grab, Didi, etc.).

A whole lot of Ubers big spenders. On a individual basis, but I know many consultants/sales people traveling all over the world that spend hundreds or thousands on ubers a month and want the ease of use. Those are Ubers profitable customers buying lux/black cars etc. in addition to many wealth families that use Uber all over the world in vacation. They should be solving for those customers over a customer worried about an extra 50 or 100mb even on their phone
> doomed

Uber lost in pretty much every market where they had local competition. Are there any counterexamples?

Not that it affects your overall point, but countries’ app stores are gated based on region you’ve configured your phone to, not where the phone’s physical location is.
The downside is trying to download Uber for the first time when arriving at an airport. However, I think Uber is so ubiquitous now that it's the likely to already be installed.
The Google Play Store solved this problem with dynamic feature modules. Either at install time or later on, you can let users download only certain parts of the app. All with a single app store entry and app bundle.

We use this for devices which don't have NFC. If the device doesn't support it, then there is no reason to download the module for identification via passport NFC scans.

Interesting. I have had bad cell connectivity in unfamiliar airports, though, where I could barely keep a connection to e.g. the Lyft servers. What if I can’t download the module when I need it? I don’t think requiring the user to download it in advance of their flight is viable, either. If we lived in a world of universal, homogeneous, inexpensive connectivity, I’d be satisfied with the solution you mention. I guess if they had location/policy micro-modules small enough to fit in a single MTU, then anybody who could connect to Uber at all could be served.

It still boggles my mind that there could be ~100M meaningful instructions in a program.

Which sucks. I arrive in a new country, and need to find internet access???
Mate.. how are you going to get your uber anyway without internet?
If you want to use Uber afterwards... yes, you already established you'll rely on internet access.
How are you ordering an Uber without internet access?
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
It's not exactly a case of downloading an India version when you arrive there. In order to do so first you have to register an India App Store account. And in order to do that, you might need an India cell phone number and credit card.
Not necessarily. They could have all the Uber apps in all the app stores. It would be a huge pain for their engineers and their users which is probably why they don’t do it.
No, it's also substantially different between certain cities and regions in the CONUS. Otherwise that might be viable.
Easy. One app.

When I traveled to India (pre-COVID), it was great that I could just open the app & get where I needed -- even if I wanted to travel via tuk tuk.

It was more annoying when I got to Ireland, had to figure out the app to use was MyTaxi and get it all working (including payments), particularly as a foreigner.

That's a false trade off. You can load partial content. That's the big advance of html. UI as markup and you can stream the small required portions of a large app.
> This is why some global apps have different apps for different countries

Do you have some examples? Genuinely curious. To my knowledge, most of the major FAANG apps are single-binary.

Dedicated apps for fast food chains are one example. A quick search gave me "Burger King India", "PizzaHut Egypt" and "KFC UAE".

Why? I have no idea.

Totally different requirements. Some countries' fast food apps are for mobile ordering and delivery, some are a giant collection of coupons, and some are only for nutritional information. And some are just for promotional activities (only used for various promotional calendars.) After seeing all the different APKs I tried out a few for different countries out of curiosity and at least for Burger King they were entirely different applications with completely different use cases. To cram them all into one global app would be an enormous mess.
I think fast food chains are generally not actually owned by the same parent company. A company in India is licensing the Burger King branding and presumably some of the recipes from Burger King USA, rather than being a subsidiary thereof.
This is the real reason. For instance, McDonald's in India is itself run by two companies, one for North and West India, and another for South and East India.
Probably payment APIs, just like Uber. Or they are developed by different local app shops.
Starbucks has a separate China app. I suspect a part of this is due to app size because there are regions specific SDKs. Another is likely security. Regulations in some countries require data to be shared with the government and they don't want SDKs that collect this data to be included in more privacy focused regions.
eBay is one that comes to mind right away (unless they changed it recently).

Google Pay is another one. They have a dedicate app in Singapore.

It seems like a lot of them went to single apps when they realized they could download data packs within the app. Stuff like Rick Steves guided tour apps used to be separate per city, but now it's a single app where you download the data for a certain city.

But I think you're right that all the major FAANG apps are single-binary.

>Do you have some examples? Genuinely curious. To my knowledge, most of the major FAANG apps are single-binary.

Worked on iOS app size at a FAANG for a couple of years -- this is untrue. At the very least there are different binaries for watch vs iPhone architectures.

As a user? The first option.

As an engineer? The first option too.