Hacker News new | past | comments | ask | show | jobs | submit login

I was the developer responsible for the bluetooth integration of a "smart lock" in an android app and it was an absolute nightmare.

I don't know if manufacturers have got their shit together in more recent smartphone generations, but at the time every manufacturer had their own Bluetooth stack with undocumented, and sometimes conflicting, quirks. Manufacturer A requires that you pair to a device before connecting? Great, Manufacturer B won't pair unless you connect first.

The only way we could guarantee compatibility with the app was that we tested at least one phone from every manufacturer so could flag which workarounds had to be used for each device. Some manufacturers were at least consistent with themselves, but others had totally different stacks between devices and even android versions.

This was definitely a huge point in Apple's favour; iOS' Bluetooth was snappy and consistent, and I was forever jealous of our iOS dev doing the integration over a few days when it took me at least a month to work all the links out.

And then a manufacturer releases a new hot android phone and we get a complaint from our client that their app is suddenly awful because it didn't work out of the box.

No, I'm not salty at all. :/




I had exactly the same experience. Android's Bluetooth stack is shockingly bad. They even changed implementation once (from the standard Linux Bluez stack to some other one). Just as bad, if not worse.

One example: Until very recently the default connection timeout was 20 seconds. There was no way to change it. 20 seconds! Such a shockingly bad user experience. The default on iOS is something like 0.7 seconds.

Several years after reporting this issue they "fixed" it - by changing the hard-coded timeout to 5 seconds. Like, yeah that's better I guess, but I think you're missing the point.

Just in general Android's bluetooth stack was way buggier and less reliable than iOS's. There were entire classes of products (mostly proximity-based stuff) that we tried to make that worked perfectly on iOS but were effectively impossible on Android because it was so janky.




Join us for AI Startup School this June 16-17 in San Francisco!

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: