Hacker News new | ask | show | jobs
by hn_throwaway_69 1606 days ago
A company that makes an awful lot of money can afford to not make an awful app on major platforms.

A native app on Windows, macOS, iOS and Android (TV), and some other solution for other platforms, isn't an unreasonable ask in this context.

3 comments

If you're already very successful, why would you spend a lot more money to produce a buggier product that will generate a lot more customer support requests and cost a lot more money in engineering effort to maintain forever going forward? It just makes no business sense. This reasoning is even less justifiable in the context of WASM which is quite performant.
Because Apple has proven that people will actually pay for reinventing something but better and more polished. And you call it a buggier product, but if you have a dedicated team working on a native app for platform X, that team can become the expert on platform X, work around and fix all its caveats, and beat the competition on everything forever.

I mean granted, for a lot of companies, having a substandard or suboptimal app simply does not matter to their bottom line, because the product trumps the implementation details in the end; people are willing to put up with e.g. a bloated web app because it gives them access to a good chat service (think slack, discord). People were willing to put up with Twitter's fail whale outages whenever Justin Bieber tweeted because they had something good (network effect?).

> Because Apple has proven that people will actually pay for reinventing something but better and more polished

The massive popularity of React Native on the iOS platform suggests there's more to the story. Discord, Slack, Spotify etc might also beg to differ; all electron apps, all the most dominant players in their respective markets. Consider all the massive gaming successes on the Unity platform?

The deference to native purity is an engineering conceit not something that users actually care about except in rare cases.

I'm not following.

This assumes that, generally, native apps are more buggy. Why? This is contestable at best, or getting it the wrong way around at the worst. Perhaps at the hands of inexperienced developers it's right. But experienced developers coding in native APIs will probably produce an app with fewer bugs.

And we are talking about a billion dollar company. It can afford a handful of really good native developers for each platform. It can attract talented developers who can write cross-platform native code.

Cross-platform toolkits introduce their own class of bugs, which might require patches upstream to resolve, or annoying local forks.

As for the economics of it all, I'll leave that to the other sub-comment which deals with that with an excellent analogy to Apple. People will pay for quality.

> This assumes that, generally, native apps are more buggy.

They are, not because "native" code is inherently buggier but because the amount of code that needs to be written is multiplied by every platform you have to support to replicate the same experience per platform; more code = more bugs, and you have to handle all the nasty edge cases that are specific to each platform: a major increase in bugs is assured.

> And we are talking about a billion dollar company.

The size of the company doesn't matter, it makes no sense to massively increase the cost, complexity and staff size needed to support an existing product that's already massively successful.

> Cross-platform toolkits introduce their own class of bugs, which might require patches upstream to resolve, or annoying local forks.

This is true of literally any external source code you import into your project. However, if you re-invent the wheel you have to pay to fix it rather than having it fixed upstream for free.

And when comes the payoff for writing all those native apps?
It takes an awful lot more money to ask engineers to do boring things like, “reciprocate this behaviour from iOS to Android “
Once I broached this subject with a developer at a start-up that developed totally separate native apps for iOS and Android. I queried him about the use of native apps, and he made the point that you do whatever it takes to keep your users happy.

This was a startup. Not a billion dollar company. When your app is used by millions, it's a worthwhile investment.

It's also hardly boring to achieve the same end result on multiple platforms by using appropriate native code for each. Particularly when it produces satisfyingly fluid and responsive end results. Perhaps an engineer that considers it boring is in the wrong field. A UI developer should get satisfaction from developing UIs, not as it being a stepping stone to get into systems development. I can't think of anything more boring in app development than developing an app which operates in a mediocre way.

A carefully planned native app for each platform can still share parts of the same codebase, you're not necessarily reinventing the wheel each time.

“This was a startup.” And? They have the latitude to make big risks. Larger companies can’t eat that risk as easily.

“it's a worthwhile investment.” Obviously not, or you’d see it more.