Hi Andrew - cool article. Lots to talk about here, but I would say this to your claim that:
"Native apps like these are a dying breed. And for good reason. Why would anyone code a native app when they could be coding a cross-platform app?"
Because you have to support it. That is why.
If you create a cross-platform app, and target say Mac, Windows and Linux - then that is more than three times the support cost.
I know because I have built such an app, and I supported it for years. That is personally. Also I've worked on many cross-platform apps for clients and employers.
If you build an app the platform makes a huge difference to the feature set in general. Your Linux or Android customers are different and have different use-cases to your Windows or iPhone customers. Different demographics, different needs, and different value drivers.
So its not just 3 times the cost - its the fragmentation of technologies that drives up the support cost.
I'm talking not just about maintenance and bug fixes. There's also the environmental issues - what happens when the platform updates and suddenly your app doesn't work any more on say Windows, due to some new security feature?
If you have targetted your efforts to one platform then you can afford the time to get advance copies of upcoming platform releases to test your software on. If you have charged in to getting every platform that your framework (Flutter or whatever) provides support for now you have many times the cost of this platform update testing.
Same goes for continuous integration updates with multiple platform for your build infrastructure.