Less than 24 hours after Google announcement of Flutter 2.0, And the World is loosing it, because somehow Flutter now works on 6 platforms.
Flutter is not the first SDK to try to do this, in case you forgot; The first thing we learned about Java was “Write once run anywhere” and where are we now with running java for modern platforms ?.
And again there is something called Xamarin by Microsoft since 2011 but never really hit the mainstream market and became the Default.
The cross-platform dilemma is not new we are just changing the SDK about every 5 years, LiveCode, Xamarin, Kotlin cross-platform and we cant forget React Native.
Anyone involved heavily in development specially Mobile development knows the limitations for those platforms, Even major industry leading companies are leaving the cross-platform market and going to native, thats platform native.
Google is showing that some of its apps are now using Flutter like google pay, Google Ads and many more but one missing suspect I was hoping to find was Gmail; All of Google Apps that are now Flutter based are web based Apps they do not need recourses or have many things to do in the background unlike Gmail which is considered a heavy loaded App and to this moment is still a Native app on each platform.
I know over night Google may update Gmail to be Flutter App but until that happens as a Developer I cant trust Flutter to deliver what I can do with my native apps.
Same goes to React Native Instagram and Facebook are in react Native – hence the bugs showing everywhere – but yet WhatsApp is native on IOS and Android.
To simplify; using a cross-platform solution is not the best option at least not always, yes we save development time but then we pay that time doubled in debugging and managing each platform specific bug.
Have you ever heard of JANK ?, Flutter apps on iOS are having a lot of issues playing animations for the first time and this is happening since May 2020 on Flutter 1.17 while as an IOS Developer I can go Apple-native and build using SwiftUI for all of Apple platforms including tvOS and WatchOS with the same code base
Write once run everywhere is not an optimal solution by any means and never was, when you have a heay loaded app with too much fetures and background proccess go native at least by writing in native you dont have to wait for the 3rd party SDK developer to support the native feature so then you can implement it in your app and thats why cross-pltform SDK’s will never be the new default.