Preface
.NET MAUI is a cross-platform technology developed by Microsoft. The inaugural edition of this book was authored using .NET 6. However, this second edition coincides with the diverse improvements initiated with the release of .NET 8. The latest .NET MAUI release predominantly seeks to enhance code quality. Simultaneously, updates have been made to the development environment that supports iOS and Android, upgrading to Xcode 15 and Android API 34 respectively.
The improvements targeted are concentrated on a range of vital aspects, such as rectifying memory leaks, refining UI controls, instituting platform-specific fixes, and optimizing performance. The goal of these enhancements is to fortify memory management, escalate application stability, and polish the consistency of user experiences across varying platforms, thereby augmenting the overall application performance and responsiveness. With a focus on these components, I strive to provide you with an exhaustive understanding of the latest advancements in .NET MAUI technology.
Despite the broad array of cross-platform programming options available today, including Flutter and React Native, .NET MAUI stands out due to its unique features that should be considered when opting for a cross-platform solution.
One significant advantage of .NET MAUI is its single project structure, a marked improvement over Xamarin.Forms. This streamlined structure enhances various areas, such as:
- Improving debugging and testing: With a single project structure, it’s possible to select and debug multiple targets within the same project, eliminating the need to switch between different projects for varied targets.
- Sharing resources: Traditionally, in Xamarin, resources had to be managed individually for each platform. However, .NET MAUI has improved this aspect by enabling the sharing of the majority of resources across platforms, including fonts, images, icons, etc.
- Simplified configuration: By utilizing a singular app manifest for most tasks, it is no longer necessary to separately manage platform configuration files such as
AndroidManifest.xml
,Info.plist
orPackage.appxmanifest
.
In contrast, to access native device features in Flutter or React Native, you must rely on Flutter plugins or React Native Modules, which in turn rely on the developer community or require personal development. Furthermore, these interfaces are developer-designed and thus lack standardization. Thankfully, Microsoft has standardized APIs for most often used native device features as part of .NET MAUI’s release.
.NET MAUI facilitates application development using a traditional XAML-based UI or a Blazor-based UI in Blazor Hybrid apps, furthering opportunities for advanced code reuse. This advantage is particularly valuable for projects encompassing web and mobile apps, as it allows the sharing of user interface design and source code.
As .NET MAUI is now part of the .NET platform releases, we can always have access to the latest .NET platform and C# language features with every .NET release. This inclusion enables the use of advanced features like .NET generic hosting, dependency injection, and the MVVM Toolkit, among others.
In this book, I will guide you through my journey in .NET MAUI development using an open-source app I engineered. Both .NET MAUI and .NET platform features will be thoroughly explored throughout this edition.