Is NET MAUI the future of cross platform development
Tuesday, May 28, 2024
Richard Harris |
Is NET MAUI the future of cross platform development? We recently caught up with Ryan Gant from Bottle Rocket to find out. Developers can now use a unified framework supporting Android, iOS, Windows, Web, and Mac. It promises improved performance and seamless cross-platform development.
With .NET MAUI poised to replace Xamarin in the tech sphere this May, dive into the architectural differences between the two, the revolutionary impact .NET MAUI is expected to have and the importance of exploring alternatives frameworks like Flutter and React Native. Uncover key insights into the suitability of cross platform development frameworks for different developer needs, experiences and project objectives.
ADM: What is .NET MAUI, why is it making such a splash amongst developers, and is NET MAUI the future of cross platform development?
Gant: The landscape of cross-platform development has evolved significantly in the past two decades and .NET MAUI is the latest addition. This was introduced by Microsoft as the replacement for Xamarin, which reaches its end of life on May 1st 2024. The new open-source framework promises to build on Xamarin for a truly cross-platform experience for C# developers and users alike.
.NET MAUI’s principal appeal stems from the fact that it supports Android, iOS, Windows, Web and Mac, and also allows UI components to be mapped onto native ones. This enables C# developers to write mobile applications in one language and form that can be hosted across all major platforms.
Moreover, .NET MAUI enhances the developer experience by offering better performance, design, and platform availability, which are crucial for modern application development.
ADM: How does the architecture of .NET MAUI differ from Xamarin?
Gant: .NET MAUI is essentially a new and improved version of Xamarin. Firstly, the unified project structure embodied by .NET MAUI sets it apart from its predecessor. In the age of Xamarin, developers had to code for specific platforms, such as Xamarin.iOS and Xamarin.Andriod, to run their mobile applications on different devices. Both have been absorbed into the .NET framework, underpinning Microsoft’s vision of running .NET on any platform.
Microsoft have also reduced app launch times and decoupled UI components from platform components for better developer experience, performance and extensibility. Instead of specifically coding for different platforms, developers can now use single abstracted UI components, creating a more seamless and efficient process. The UI components also abstract away aspects such as permissions and device-specific features like geolocation and media pickers. Such abstractions make it easier for developers to interact with each platform, streamlining the development process by reducing the amount of platform-specific code required. Even more convenient is the fact that .NET MAUI also allows platform specific code to be managed in a platform folder, allowing for customization and flexibility.
Other key architectural differences include hot reloading, which is available for XAML and C# in MAUI, allowing developers to witness the changes in an app’s UI in real time, making the development process more time-efficient. This unified project structure in .NET MAUI, as opposed to Xamarin's platform-specific projects, not only simplifies coding but also enhances project manageability across platforms.
ADM: Given that .NET MAUI is new to the market, is it a reliable platform that developers should put their trust in?
Gant: .NET MAUI offers an exciting transformation in the ease and efficiency of development. By removing the need to write specific Xamarin.iOS and Xamarin.Andriod code, developers can enjoy a smoother and faster experience. Microsoft’s acquisition of Xamarin in 2016 and the framework’s continued popularity over the past decade or so has established them as trustworthy platform developer within the industry. The improvements they’ve incorporated into .NET MAUI indicate that it’s more reliable than Xamarin, but it is important to recognize its new status in the market.
There are some growing pains to consider, as early feedback from the developer community has not been universally positive. There have been issues with the tools and migration scripts provided by Microsoft, making the transition between Xamarin and .NET MAUI less than seamless. Unresolved bugs and limitations may impact project timelines and stability in the early stages of .NET MAUI’s development. While the growing pains are most likely temporary, these drawbacks will only decrease with time, as .NET MAUI matures.
It is also important to note that .NET MAUI is reliant on the .NET ecosystem, limiting its accessibility to developers who are skilled in different programming frameworks, from Dart to JavaScript.
Furthermore, Microsoft’s ongoing support and commitment, alongside the open-source community, indicate that .NET MAUI is expected to evolve and address initial shortcomings rapidly.
ADM: What are some alternative frameworks to .NET MAUI for cross-platform mobile development and what makes them more appealing for developers?
Gant: As Xamarin reaches its end of life on May 1st, 2024, .NET MAUI isn’t the only game in town. For those who want to continue working in the .NET ecosystem, Uno Platform is a great alternative. As well as supporting the latest reactive style programming for C# and XAML, it also includes 100s of UI components for developers to use and modify. Another nice benefit of the Uno Platform is that is supports Android, iOS, Linux Mac, Windows and Web, allowing for a truly expansive cross platform experience.
On the other hand, moving away from the .NET ecosystem, Frameworks like Flutter and React Native not only provide robust community support and a wealth of development tools but also offer more mature ecosystems that might be more appealing for projects needing immediate stability and extensive third-party integrations.
ADM: How does Flutter and React Native compare to Xamarin in developer experience and performance?
Gant: While .NET MAUI is the direct successor to Xamarin, alternative frameworks like Flutter and React Native are vastly different, and good options too, depending on language and suitability.
React Native
React Native operates on a similar paradigm as Xamarin, mapping UI components to native ones. Its major difference is that it's powered by JavaScript, making it a go-to choice for web developers venturing into mobile app development. It’s large and active community of developers means there are an abundance of resources and tools that facilitate development. React Native also has an excellent hot reloading feature that allows developers to see changes in the app’s UI in real-time. Offering a good balance between development speed, cross-platform compatibility and efficient performance, React Native is the most widely used framework for a reason.
Flutter
Flutter, gaining steam and close to overtaking React Native’s top spot among the developer community, is another open source framework managed by Google. It sets itself apart from other platforms by its use of Dart, a language that is gaining traction but is not as popular as JavaScript or C# yet. However, Flutter’s architecture is where it really excels. Instead of mapping to native components, it has its own renderer, offering unparalleled UI customization. With Flutter’s unique rendering engine, your app's UI can look and perform consistently across all devices. And with the Flutter community growing by the day, the future looks bright for this innovative framework.
ADM: Would you say .NET MAUI and other platforms, like Flutter or React Native, vary in suitability depending on a developer’s experience and objectives?
Gant: Absolutely, the suitability of .NET MAUI, Flutter or React Native varies heavily, based on a developer’s experience and project objectives. Developers should assess which platform aligns best with their revenue-generative objectives and if investment into learning and utilizing the workings of a new platform is possible. For example, if a particular project involves mostly C# engineers, sticking to .NET MAUI allows for a more streamlined and time-efficient process. Alongside the language of the application and a team’s expertise, the size of the application is also a vital consideration. Large-scale projects involve significant migration efforts, and shifting to a new framework requires time and resources, so the feasibility of such an option is case-by-case dependent.
For instance, a project prioritizing rapid development and a familiar toolset might lean towards React Native for a team experienced in JavaScript, whereas a project needing high performance and custom UI might find Flutter more suitable.
ADM: Rather than investing in cross-platform mobile development, should organizations be using natively developed applications instead?
Gant: For organizations newer to the mobile app market or those with budget constraints, cross-platform development offers significant advantages. Allowing developers to write a single code that can be deployed across multiple platforms substantially decreases both time and costs.
However, the ultimate goal for many organizations is to transition to native development because it enables you to leverage the latest features and capabilities without waiting for cross-platform frameworks to catch up. This agility is especially crucial for staying competitive in fast-paced industries. Native development also offers advanced platform-specific features not so readily available in a cross-platform setting, such as Apple App Clips and Android Instant Apps. These features can enhance user engagement and experiences, providing a significant edge in today's app landscape.
Native development not only offers the best performance and deepest integration with device capabilities but also ensures that applications can fully leverage the latest hardware and software innovations immediately upon their release.
ADM: Looking ahead, what trends do you foresee in the realm of app development after May 1st, when Xamarin meets its end?
Gant: Looking ahead, even after Xamarin’s end of life on May 1st, the trajectory of app development shows no sign of slowing down. Innovators will continue to pursue more efficient ways to write a single code base for as many platforms as possible and the possibility of new frameworks remains high.
Even though Xamarin’s demise is fast approaching, existing Xamarin apps won’t immediately stop running. But fixes and performance enhancements will become unavailable, gradually chipping away at the app’s quality and functionality. The longer app developers wait to make the transition from Xamarin to whichever cross-platform development platform they use, the more painful and inefficient that change will be.
Organizations must strategically plan their transitions to maintain application quality and functionality, emphasizing the need for forward-thinking in technology adoption and platform selection.
About Ryan Gant
Ryan Gant is a Solutions Architect II at Bottle Rocket. Over his almost 12 years at Bottle Rocket, Ryan has led numerous successful digital solutions while transforming the digital landscape for his clients. Prior to his role as a Solutions Architect, Ryan served as an iOS Engineer where he developed apps meant to bring the world closer together.
Become a subscriber of App Developer Magazine for just $5.99 a month and take advantage of all these perks.
MEMBERS GET ACCESS TO
- - Exclusive content from leaders in the industry
- - Q&A articles from industry leaders
- - Tips and tricks from the most successful developers weekly
- - Monthly issues, including all 90+ back-issues since 2012
- - Event discounts and early-bird signups
- - Gain insight from top achievers in the app store
- - Learn what tools to use, what SDK's to use, and more
Subscribe here