The problem with cross platform frameworks


...

Nowadays there are lots of cross platform frameworks that allow you to write one code base and deploy it to multiple platforms. Frameworks such as React Native, Xamarin, NativeScript, Ionic, and Flutter allow you to run your code to Mac, iOS, Windows, Android, and Linux. But should you really use cross platform frameworks to build your next app/website?

Cross platform frameworks have a lot going for them. They're open source and have a large community, they save you lots of time and money, and they usually have really good samples and documentation. They do have a lot of drawbacks as well though.

Design

If you're using a cross platform framework to build a mobile, web, and desktop app, your design system will not fit the environment at all. The design that mobile, web, and desktop use are completely different and therefore your app will feel off to the user and the user experience might not be great. Sure you can create designs for each and every platform but that sort of defeats the whole purpose of writing once and running anywhere, you might as well just make a native app instead.

Performance

All cross platform frameworks run on some sort of engine under the hood which allows the app to actually run on the platform. This can sometimes slow the app down or cause crashes which in turn will ruin the user experience. This usually occurs as the app gets bigger and bigger.

Plugins

...

Not all native features in cross platform frameworks are available through plugins, and even if they are not all of them work. An example of this could be adding monetization to your app. Lets say you want to add advertisements and in app purchases to your app. You cannot build this on your own since it requires native code so you look for plugins that already do this. If you don't find a plugin then you're screwed and will have to learn some native code to write one yourself, defeating the purpose of cross platform development. If you do find a plugin you'll have to test it to make sure it works and the majority of the time it will not work very well or it is extremely limited.

Final Thoughts

Personally I think cross platform frameworks are mainly good for small apps or similar platforms such as Android and iOS, or Windows and Mac. Larger apps tend to need more advanced native features and better performance which is where cross platform frameworks fall short. And apps that work across multiple different platforms such as Android and Linux tend to feel off and the user experience is not enjoyable.