Member-only story
Why Did I Move From Xamarin Forms to Flutter?
Making the biggest change of my programming career

Hey there, friend! I’ve actually started a new series on my move from Xamarin Forms to Flutter, where I make it easier for existing XF developers to get into Flutter. Check it out here: guides.page.link/6SuK.
I remember where I was when I got the email that Flutter had finally reached a stable release. A friend of mine who was working on a Xamarin Forms app with me had sent me an article on Flutter’s website showing the release announcement. As a budding Xamarin Forms developer and a .NET fanboy, my response was fairly modest.
“Great,” I thought. “Another mobile framework.”
This dismissive attitude was warranted. When Flutter was released, we already had Xamarin Forms, Ionic, Cordova, React Native, NativeScript — not to mention abstractions that ran on these technologies (like Redux for React, Prism for Xamarin Forms, etc.). And of course, each platform had its own native implementations for making apps.
Previously, I had shipped apps on Ionic and dabbled with React Native, but neither felt like the true end of my search for a cross-platform development framework. Ionic didn’t lead to a great user experience (as it uses Cordova) and I didn’t enjoy how you would declare user interfaces with React Native (through TSX or JSX files). That’s not me trash-talking those platforms. It’s just me explaining my choices.
When I found out about Flutter, I couldn’t help but wonder, “Why?” Why did the world need another cross-platform mobile framework? And to make matters worse, not only would you have to learn a completely new way of designing and describing your apps, you would have to learn a hitherto completely unknown language known as Dart. Dart code already looked vaguely familiar to me as a C# developer, but it’s still the little things that trip you up (like subtle syntax differences). So you’d have to invest more of your time learning something new.
And when you’re learning how to use something new, you’re spending time doing something that isn’t productive. You can’t sell or ship the hours it takes for you to sit in front of a computer and learn how to use a new framework. That’s just not how it works. You can only…