Xamarin Forms provides us with a set of tools that allow us to develop mobile applications for multiple platforms efficiently without sacrificing quality.
By utilizing a common library, code is able to be reused in each of the mobile platforms (iOS, Android, Windows, Windows Phone), reducing both development time and testing time. This allows the business rules to be centralized, leaving only the display portion of each platform to be developed separately. While the Xamarin framework allows great strides in efficiency, we still have large chunks of work that need to be duplicated: the views. Each screen in a mobile application must be developed for the mobile platform it will be used on. Thus, if your application is going to run on three different platforms, you’ll be creating three different views, all designed to show the same information. This requires either multiple developers working simultaneously to have features developed along the same timeline, or a much longer timeline for each feature as one developer needs to replicate their work each time for each platform. This obviously affects budget, timeline and resourcing on a project. Xamarin Forms takes centralized code a step further by allowing the development of simple displays, with the most commonly used display artifacts (e.g. buttons, text fields, etc.), within the centralized code repository. This means that, instead of making one view for iOS, one view for Android, one view for Windows, and one view for Windows Phone, you can build a view once that then renders properly on each platform. This puts the display code in the centralized repository alongside all the business logic. Mobile applications built using the Xamarin framework are often able to reuse approximately 70% of their code, but when leveraging Xamarin Forms, this code reuse can reach up to 90% or higher! This approach is well-suited to our enterprise mobile app practice because they tend to be information rich, focused on sharing or collecting enterprise data. These forms-based solutions are perfect to leverage Xamarin Forms. It is worth noting that you will see the greatest benefit from Xamarin Forms with simple displays, such as data-driven forms. Displays that have highly-customized UIs, or designed to leverage unique functionality of a single platform (e.g. iTunes on iOS) will still require platform-specific development. However, requiring platform specific development does not exclude the ability to use Xamarin Forms. They can coexist peacefully within the same application. It is also worth noting that enterprise mobile applications are often developed to display and work with enterprise data, which Xamarin Forms is best at. Leveraging Xamarin Forms to develop enterprise mobile applications greatly reduces the effort required to move a conceptual application to reality.