I feel like gaming is the easiest thing to do cross-platform since you don't rely on any native UI and OpenGL is pretty similar on different platforms. Unity, Unreal Engine, and many others are designed to target many platforms.
Also, in regards to cross-platform frameworks and games: it's the additional latency, as well as the overhead (but almost certainly the latency) of any cross-platform compiler/library/framework that kills things. Games are right on the edge of a 12 millisecond per frame boundary (or less!) and every cycle usually counts for games these days (especially on limited mobile processors).
You say that, but plenty of games, including twitch shooters, have been successful using Unity and Unreal, both of which support a pretty large number of platforms.
But what I have seen are very confident web frontend devs (and product managers too) who only consider web solutions, and dismiss native apps as being duplicated work.
In my experience the backend of most non-tech and some tech businesses is a database and some trivial validation rules. Everything important is in the design of how the data is displayed on the front end.
It's worse than duplicated work, it's duplicated different work.
Too many articles like this on HN lately - short, useless, lead to an ad. This looks like SEO crap, outsourced to Mechanical Turk or Upwork.
I think this partly explains the popularity of Javascript, Electron and Web apps among developers.
It seems too fragile to be worth investing too much time in; what are the chances I'll still be able to use it in a decade or two?
Web apps are a blessing in that regard, but OSS is still better and some companies do actually build their products for architectures other than x86.
While I'm on the subject, Eclipse versions later than 4.0 aren't built for ARM cores. What's up with that?
- Cross platform does not mean you can share the UI/design. Different mobile platforms require different accordances that users are accomstomed to. So your design and code might have to be different, just as it would be for native.
- Just because you are using a cross platform framework does not mean you sidestep the nuances of the framework itself or that of the host platform. In fact, it just makes things worse because you have to code around these nuances. Due to the underlying way iOS/Android work (e.g. permissions or the differences between Android’s activities or UIViewController on iOS), you will still need a fair amount of platform specific code.
- Many cross platform frameworks have limited support for other libraries and if not you need to go native to support them. At this point you may as well be developing natively.
- The performance can matter quite a bit. However, unlike native your ability to do anything to resolve these issues is extremely limited. Maybe it doesn’t matter a ton depending on the use case, but people do notice. Only being able to solve it by dropping into native sort of defeats the purpose of cross platform.
When you add all these up, the benefits of cross platform get very muddled.
It is far better to prove out your app on one platform, get users, solve problems, and when you have more resources and a good process, go to other platforms. If you don’t succeed on one platform, not being cross-platform would be an unlikely reason.
In the case of React Native, it is possible to have a hybrid, which may let you get around some trade offs.
My experience is the opposite. Every application that's more complex than a guitar tuner starts to lag after it's been open for too long or when I'm viewing too many resources at once: Web browsers, website-specific browsers (e.g. reddit clients), mail clients, IM apps like telegram, etc.
Responsiveness is one of the most important aspects in a mobile app. It makes the difference between getting the job done and wanting to smash my phone with a hammer.
If you take your toes out of app programming for even a year, you're almost completely lost when you come back.
Cross platform means that you don't have to climb two learning curves simultaneously.
What? Ever heard of Unity, powering the majority of games out there?
The author's "business people" is transparently a euphemism for "clueless technologist" but what they actually care about is finance. Specifically, the time value of money and why they don't want to hire another two people to do Android and iOS in addition to the Web.
The marketing message from the cross-platform framework folks was aimed well and hit the mark. "Spend your time and money with us (or our consultants), not your expensive and peculiar developers. Together we'll achieve 3x the results for 1x the cost!"