To achieve our mobile application development strategy, we offer two options.
write once, run everywhere, and be native
Since our team has expertise in Xamarin, we were excited about the new release of .NET Multi-platform App UI (.Net MAUI), which builds off where Xamarin left off to deliver native apps using a .NET cross-platform UI. MAUI represents a significant step forward in cross-platform development, providing developers with a powerful set of tools for building high-quality, native applications that run on iOS, Android, and Windows.
With the purchase of Xamarin in 2016, Microsoft has continued to invest in cross-platform development, recognizing its importance in enabling businesses to reach their customers on multiple platforms. We believe that MAUI, with its improved cross-platform UI capabilities and enhanced performance, will be an important platform for our team to deliver high-quality applications to our clients. Xamarin was originally released in 2013 and is used by more 1.6 million developers. “Xamarin is an open-source platform for building modern and performant applications for iOS, Android, and Windows with .NET. Xamarin is an abstraction layer that manages communication of shared code with underlying platform code.” – Microsoft.com
Read more about Xamarin: https://docs.microsoft.com/en-us/xamarin/get-started/what-is-xamarin
“.NET MAUI is open-source and is the evolution of Xamarin.Forms, extended from mobile to desktop scenarios, with UI controls rebuilt from the ground up for performance and extensibility. .NET MAUI unifies Android, iOS, macOS, and Windows APIs into a single API that allows a write-once run-anywhere developer experience, while additionally providing deep access to every aspect of each native platform.” – Microsoft.com
Read more about .Net MAUI: https://learn.microsoft.com/en-us/dotnet/maui/what-is-maui
The power of Xamarin and .NET MAUI
Both Xamarin and .NET MAUI offer a cross-platform development approach that allows developers to share an average of 90% of their code across different platforms, such as iOS, Android, and Windows. This code-sharing capability is achieved through the use of a single codebase written in C# and .NET, which is then compiled into platform-specific native code.
The main advantage of this approach is that it allows developers to reduce the time and cost of development by avoiding the need to build separate codebases for each platform. Additionally, code sharing can help ensure consistency and reduce errors across platforms, as developers only need to make changes once to affect all platforms.
However, one drawback of some cross-platform development approaches is that they can result in a suboptimal user experience (UX) due to differences in the user interface (UI) of different platforms. Hybrid apps, for example, use a web-based UI that may not fully match the native look and feel of each platform.
Xamarin and .NET MAUI address this issue by compiling the application into the native language of each platform. This means that the app runs natively on each platform, with no performance penalties or UX issues caused by a non-native UI. At the same time, developers can customize the UI for each platform to ensure a consistent and comfortable user experience.
Pros
- Native performance / Native apps / Native UI
- Sharing 90% of code across platforms reduces the development life cycle
- Sharing code means less duplicate code prone to mistakes and differences
- Reduced cost and maintenance
- No JavaScript
- Best performance vs other cross-platform technologies
- Backed by Microsoft
Cons
- OS support lag – As platforms release updates and new features, the updates to the library of components can have some lag preventing those features from being implemented as fast as a native application. This is greatly reduced by the dedicated teams at Xamarin and Microsoft.
Hybrid Applications
Hybrid applications are developed in Ionic. Created in 2013 as an open-source platform, Ionic uses a library of native components for iOS and Android. Ionic uses standard front-end technologies like, HTML, CSS, JavaScript, and Angular. Using these technologies, Ionic helps to build cross-platform mobile applications featuring a single codebase.
Pros
- Minimal development team – A small development team can potentially be assembled to quickly produce simple applications for multiple platforms.
- Faster development cycle – Since the code is shared between platforms, the application can get to market faster.
Cons
- UX impact – The downside of a single code base is that the one-size-fits-all approach to UI design does not allow customizations so that the UI feels standard to the users of all platforms.
- OS support lag – As platforms release updates and new features, the updates to the library of components can have some lag preventing those features from being implemented as fast as a native application.