I appreciate where you're coming from, that you are honestly and truly just trying to help a fella out. I
really do appreciate that!
…but you didn't pay any attention to a thing I wrote about my position on the use of non-native frameworks, did you…
Naming something "native" just does not make it so, no matter how much some corporations like Meta or Microsoft wish it to be. React Native, Xamarin, et al, are a cancer that needs to go away, and sooner rather than later.
These frameworks' sole raison d'etre is to make a coder's work a bit easier (and arguably lazier) and to save companies some money. What they do NOT do, never have done, and by definition never
can do, is to create a seamless and high-quality user experience that looks and feels fully native to the platform that any given application runs on.
To make matters worse, this tired old sales pitch of "delivering a consistent experience for users across different clients" is an absolute farce. It simply doesn't mean what most people think it means. What developers
think it means is that these frameworks would allow for a consistent and high level of quality across platforms. That's objectively just not true. It can never be true because "one size fits all" and "platform-specific, native look and feel" are by definition mutually exclusive. Almost nothing in life is ever truly black and white, but this one is. I am absolutely, without exception, always eager to be proven wrong, but on this front I am still waiting.
So, what
does this sales pitch mean, then? It means what especially Meta has always intended for their products to be the case: That Facebook at al will always look and feel the same, regardless which platform you run them on — each platform's native look and feel be damned. They don't give two f#@%s about iOS, Android, macOS, Windows, etc., they only care about what they think a "user experience" should be like. And these frameworks' entire purpose is to enable them to do just that.
That, and nothing else, is what Microsoft, Meta, and co., mean by "consistent experience across different clients/platforms."
Which brings me to yet another problem with these 3rd party cross-platform frameworks: Do you
really want to make your entire business to fully, entirely rely on the future good-will of some 3rd party developer, especially the likes of Meta, which has proven time and time again to give the least of schiits about
literally anything but their own bottom line?
Seriously?
So, if Meta decides that they want to take another route and decide one fine morning to drop any further development of React Native, what happens then? Are you willing to rewrite your
entire code base to something else?
Can you be sure that some "community" will keep it alive and reasonably well maintained? (Have you ever heard of Qt? If not, you should look into the history of that framework, what happened to it, and the true clusterf#%& that it has become today. Ironically, it's still one of the better UI frameworks for Windows. That's the state that particular platform is in today, in large parts thanks to Microsoft's undying commitment to that horrid mess that is .net.)
What if there are no alternative frameworks that provide a similar set of features, or frameworks that require you to write your own code in a different language entirely?
Do you really want to start over from scratch, and lose a year or two of time, time that you now can no longer invest into actually improving and expanding on your own products?
You are really willing to bet the entire farm on the musings of a corporation that couldn't care less about your business if they tried?
I wouldn't.
I couldn't.
Have you ever used YouTube, Netflix, Paramount+, or
especially Prime Video on an Apple TV? Maya on Windows or macOS? Microsoft Teams on
any platform, even on its "native" Windows? Heck, even Apple's own 1st party Catalyst apps like News, Weather, and Stocks on macOS? You can't tell me with a straight face that those would offer a quality user experience.
If you want to support multiple platforms AND you want your product to be of the highest quality AND as independent and future-proof as something as volatile as software ever can be, you simply will have to re-write much of your code for each and every platform, using each specific platform's own frameworks, coding styles, and overall best practices.
So, until the day someone proves me wrong and comes up with a framework that
actually and
reliably solves
all the problems that these things currently (rather needlessly, but alas) create, this remains a hill that I am absolutely prepared to die on.