I thought everyone likes Sushi. That was wrong.

A couple of months ago, one of my friends from Canada came to Tokyo for traveling. We first met in Melbourne while I lived there with my Working Holiday Visa. Since then, we had talked a lot about…

Smartphone

独家优惠奖金 100% 高达 1 BTC + 180 免费旋转




Google Flutter versus Microsoft .NET MAUI

Which One Will I Use?

I have been around the mobile app development block quite a number of times. I have even written a book on Android development and know a thing or two about the various languages and tools associated with mobile app creation. The Java write once, run anywhere promise has been a reoccurring dream for mobile app developers, with the most recent big tech offerings culminating in Google’s release of Flutter 2.0 and Microsoft’s .NET MAUI. While both of these technologies package years of technological investment and development into them, they’re not yet at parity with each other.

I will be the first to admit that using any cross-platform development technology is nowhere near a native mobile development environment. There are simply too many compromises necessary to essentially encapsulate a code-based cross-platform app into a glorified web view. While great strides have been made to give the app a native look and feel as much as possible on each platform, astute mobile users can almost always tell when an app has made this cross-platform compromise. Functionally, the apps deliver the same user experience and UI interaction on the client, but they just feel cheap and low budget because of the loss of native toolkit fidelity. Yes, serious mobile developers can make exceptions and go through hoops to bring more native interactions into their projects, but the amount of work necessary to replicate this behavior across platforms is often so laborious that it would have been more rewarding to simply develop native apps using their respective native development tools to achieve the goal.

With that admission out of the way, along with the acknowledgement that cross-platform coded mobile apps have no choice but to compromise on UI fidelity in order to meet their write-once, run everywhere intentions, I’ll first evaluate.NET MAUI. Looking strictly at supported client OSs, Flutter already beats .NET MAUI because of its ability to generate native Linux desktop applications from the same Flutter/Dart codebase used for mobile platforms. However, the end product still looks like an Electron app with perhaps slightly better performance. Still, this is a major knock against Microsoft given their embrace of Linux from a server standpoint. I don’t accept the argument that Linux is too fragmented to consistently and successfully compile native apps with different distributions since Google has obviously figured out a way to make this happen.

Another problem with .NET MAUI is that, at least in its current state, is a bit of a mess. A number of legacy Xamarin-centric components don’t play nicely with the MAUI environment either due to namespace changes or underlying architecture redesigns, limiting their use in MAUI apps. Though just like any significant environment redesign, this problem is slowly being resolved as more Xamarin components migrate to MAUI. If you have the luxury of waiting several months for your favorite component or library to be fully blessed with MAUI compatibility, this point isn’t that big of a deal.

Not all is rosy with Flutter either, especially for Windows development. I cringe whenever I have to pull down some C code library dependency(s) that a third-party Flutter component requires. Who vetted this library? Why can’t I sandbox it within the Flutter development environment instead of placing it an area that any application could employ for its own nefarious purposes. Even though the third-party library scheme is similar with .NET development via the NuGet service, I (perhaps blindly) trust NuGet more due to the number of enterprise developers also trusting these sources, as well as Microsoft’s own security and reputation.

When using Flutter, I feel like I have to throw caution to the wind and hope for the best when pulling down those third-party libraries. Google really needs to shore up this shortcoming. I don’t know how they might, but it’s a major reason why I’m not using many third-party contributions in my Flutter apps. This situation is unfortunate, because there are obviously some really good, talented developers that have created helpful libraries and widgets. And yet, without some form of trust guarantee from Google, my Flutter apps will continue to mostly employ the standard library and components included in the main Flutter distribution.

So, if I were to start a brand new, cross-platform coding project today, which platform would I use? Flutter wins my vote today. In addition to supporting Linux desktops, it’s a mature environment that has been on a consistent path of improvements. And unlike MAUI, Flutter and Dart have been consistent through most of its evolution. Does MAUI have a shot at future consideration? Maybe. But Microsoft has a lot of work and considerable investment ahead if they want to match technical parity with their closest rival.

Add a comment

Related posts:

List of Top Accounting Entries Students Must Know

Journal entries are by far one of the most important skills to master in an accounting career. If proper journal entries were not made, companies’ financial statements would be inaccurate.

Top 10 Cryptocurrencies Derivatives Exchanges

Derivatives are any product or contract whose value is determined by some underlying assets. Some experts also consider automated future trades as derivatives. In this post, I am going to introduce…

A Photo Journal of Inspiration and Beautiful Things to Come.

Photo Journal of inspiration and color to ease the winter doldrums.