XAMARIN’S FUTURE (PART II)
The new features:
A very convenient advantage that MAUI offers is creating a “single base project” that targets the different target platforms, where all resources such as images, translation dictionaries, and fonts will be integrated, this brings the possibility to eliminate the tedious work of adding the images within each project, nor that it is necessary to create a class that is responsible for obtaining the name of the image that is added from the view, and then to get the current platform of the device that runs the application and thus complete the resource path with that information (as is currently done in Mi Mercadito), this is possible since .NET MAUI will be in charge of creating the native links for each platform.
Another advantage is that the native APIs of each target platform will still be accessible, but within a specific section of the base project, since, at present, you must go to each project to add the different code. You can also choose the device where you want to run the application by selecting it from the drop-down menu in the run the project section since these devices are currently separated by platform and only appear until the default project is chosen in the solution (either Android or iOS).
Aspects to consider:
On the other hand, it should be noted that the knowledge we already have about this platform (such as Bindings), creating views with XAML, the design pattern with MVVM will still work, which means that current applications that are created in this way will continue working. So it will not be necessary to implement the new Model-View-Update pattern proposed by .NET MAUI, where views are created in a declarative way, similar to other Frameworks such as Flutter and React. However, once the first version of .NET MAUI comes out on November 20, 2021, some Namespace migration will need to be done in current projects, since Xamarin.Forms will be renamed System.Maui, Xamarin.Essentials will come implemented by default in each project but will be moved to the System.Device namespace, also Xamarin.iOS will now be .NET for iOS and Xamarin.Android will be .NET for Android.
In my opinion .NET MAUI is going to be very useful for the development of cross-platform applications, because it will significantly speed up some processes, doing for us what previously took us more time to implement, such as images and sources. Likewise, having all the code more centralized is even more pleasant for its maintenance and scalability, and it is hoped that it will be possible to take advantage of the shared code even more than what has currently been achieved. However, we must be vigilant from now on the changes that are going to have to be implemented in the projects so that we hope to be preparing new developments, as far as we are allowed, so that migration does not take us by surprise.