dwyl / learn-flutter

🦋 Learn how to use Flutter to Build Cross-platform Native Mobile Apps
https://flutter.dev
GNU General Public License v2.0
73 stars 8 forks source link

Flutter VS Xamarin #18

Closed miguelmartins17 closed 4 years ago

miguelmartins17 commented 4 years ago

Flutter and Xamarin are both cross-platform mobile application development frameworks used to build apps using a single code base. I have been researching more information that might be important about Flutter and I have a friend who is in college studying Xamarin and I asked him if he knew Flutter and he said no. I was wondering which one is most used now and which is the best.

miguelmartins17 commented 4 years ago

I leave you here the link: https://blog.codemagic.io/flutter-vs-xamarin-a-developer-s-perspective/

nelsonic commented 4 years ago

@miguelmartins17 these are all valid questions 👍 but "which one is the best" without giving precise criteria will always/only lead to an opinion based answer. You want to avoid being swayed by opinion as much as possible and try to focus on facts.

Xamarin has been around for a long time https://en.wikipedia.org/wiki/Xamarin it was founded in 2011. If you scroll through the list of companies/apps using Xamarin, you will notice it's very "corporate": https://dotnet.microsoft.com/apps/xamarin/customers image That's a good sign if your objective is working for a big company on incredibly boring Apps. 😴

Xamarin has always been a paid and closed source product which limited the adoption considerably. see: https://www.quora.com/How-much-does-Xamarin-cost

Microsoft bought the company in 2016 and has been integrating their tools into MSFT's stack. see: https://dotnet.microsoft.com/apps/xamarin image

The SDK was only recently open sourced after the Microsoft acquisition. Which means you can use it to build apps without paying them to use the SDK ... This is Microsoft's effort to increase adoption in the face of competition from React Native and now Flutter ... Not that many people want to write apps in C# (when compared to JS) ... and if you look at the growth rate for Dart on GitHub https://octoverse.github.com/#top-languages there is good reason to believe that Flutter will dominate the landscape for cross-platform native mobile apps in 2020+! image

The reason why some learning institutions still use/teach Xamarin is because Microsoft has an extremely aggressive sales force pushing their tech to people at the learning phase so that they then take it with them to industry. There's a reason most schools use Microsoft Windows/Office and it's definitely not because the software is "better" ... Microsoft "pushes" their tech into schools like a drug pusher to get kids addicted to their product.

Meanwhile, back to Xamarin ... you can use it for "free" by using the "community edition" of visual studio provided you are an Individual or open source projects. (so technical @dwyl would qualify) But for any business wanting to use it, they must pay at least $45/user/month i.e. for a "small" team of say 10 people it would be $5400/year ... 💸 https://visualstudio.microsoft.com/vs/pricing

image

The reason I would never even consider Xamarin is that it locks you into the Microsoft ecosystem. And I cannot think of anything worse than being married to Microsoft! 🤮 Microsoft is an Evil company that achieved their dominance through coercion and intimidation. read: https://www.reddit.com/r/OutOfTheLoop/comments/2v4ses/why_is_microsoft_so_widely_considered_evil It's the same reason you'll never see an XBox @home or any Windows PCs (other than test machines).

Thankfully, (for the purposes of this discussion of Flutter vs. Xamarin...) it appears that Xamarin are not adding Web support to their platform. (_I would have thought it would be easy for them to add it, but they aren't doing it because it would compete with Microsoft's ASP.NET platform ... which is a major "cash cow"_). That means if we used Xamarin to build the @dwyl "native" mobile app, we would still need to build a separate Web version. That's exactly the duplication of effort we are trying to avoid! 🤦‍♂

I wouldn't use Xamarin even if it was objectively "better" than Flutter. I consider this "Flutter VS Xamarin" not relevant to @dwyl (for the reasons stated above). This might be "stubbornness" ... but I feel that Microsoft still goes against @dwyl's core principals.

I am open minded about most things, but not Microsoft. They still use aggressive/monopolistic sales tactics to perpetuate "vendor lock-in" see: https://en.wikipedia.org/wiki/Criticism_of_Microsoft#Vendor_lock-in Vendor lock-in is great for MSFT shareholders but horrible for customers. There are laws against Anti-competitive practices for a reason; they are bad for society. Microsoft is the textbook definition of anti-competitive. History lesson reading:

Other people should use whatever they are familiar with and can get paid for. ✅ If you (Miguel) feel that it will improve your prospects of getting a job, you should learn it (in your spare time) ... especially if you have a friend who can help you.

The conclusion of the codemagic post is useless: image A "conclusion" without a recommendation is a waste of time. The point of a comparison is to help people make a decision, not to say "Xamarin and Flutter are two players in the cross-platform mobile development market" which we all already knew!! 🤦‍♂

I don't think you will get an objective answer (without opinion) on any internet forum. So once you have made up your mind, please close this issue. Thanks! 👍

miguelmartins17 commented 4 years ago

@nelsonic Thanks for your answer, you're really right I could never want a concrete answer through opinions. And Flutter is being much more exploited than Xamarin, I find it very strange that colleges choose to explain old things to students.