Forms Versus Native


Mobile Development with Xamarin
What is Xamarin?
2m 18s

The course is part of this learning path

Start course

Xamarin is software that enables you to develop an application once and distribute it on multiple platforms with minimal or no alteration to the codebase. This course introduces you to Xamarin and you'll learn how to set up a development environment, as well as what's needed to develop apps for different platforms. We'll also run through how to create a basic app and deploy it to Android and iOS.

Learning Objectives

  • Learn how Xamarin's architecture tackles sharing a codebase in a cross-platform scenario
  • Understand how to set up a Xamarin development environment on Mac and Windows machines 
  • Learn how to build and debug simple Android and iOS applications

Intended Audience

This course is intended for anyone who wants to learn how to use Xamarin to develop mobile applications for Android and iOS.


There are no prerequisites for this course but any familiarity with programming concepts like design patterns would be helpful.


We've been looking exclusively at Xamarin forms where the user interface is designed in the cross-platform Xamarin project. When Xamarin was initially released, and for some time, the app's graphical or presentation layer had to be created in the platform-specific project. Xamarin was only used for the app's logic and data layers. Because Xamarin forms are confined to APIs common to both platforms, like buttons, dropdowns, and other standard graphical elements, you are necessarily restricted in how the user interface can look. In one respect, this is good because you probably want the user experience to be the same everywhere. On the other hand, if a platform has a control or some hardware-optimized feature and you want to take advantage of that, then a native UI is the way to go. This is particularly true of games with heavy graphics processing or apps that make extensive use of the device's hardware like the camera, GPS, or microphone, where there is constant use of native APIs. 


Depending on whether we're talking Android or iOS, Xamarin forms apps are two to three times larger than Xamarin native apps when deployed. Both types of Xamarin apps are at least an order of magnitude larger than purely native apps. Performance wise, Xamarin forms apps will be slower to load than Xamarin native, which in turn is slower than pure native. The difference between pure native and Xamarin is significantly more evident for Android than iOS, which you can attribute to the MonoVM used for Android apps – remember, Xamarin produces ARM instructions for iOS. Having said that, most users won't notice a performance difference between a purely native app and a Xamarin native one. When it comes to Xamarin forms apps, you need to consider the app's complexity, especially the UI complexity, versus development time and the need to have a single codebase.

About the Author
Learning Paths

Hallam is a software architect with over 20 years experience across a wide range of industries. He began his software career as a  Delphi/Interbase disciple but changed his allegiance to Microsoft with its deep and broad ecosystem. While Hallam has designed and crafted custom software utilizing web, mobile and desktop technologies, good quality reliable data is the key to a successful solution. The challenge of quickly turning data into useful information for digestion by humans and machines has led Hallam to specialize in database design and process automation. Showing customers how leverage new technology to change and improve their business processes is one of the key drivers keeping Hallam coming back to the keyboard. 

Covered Topics