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.


Xamarin is a cross-platform mobile development framework available within the Visual Studio IDE utilizing .NET's cross-platform functionality. Android apps are bundled and distributed with the MonoVM enabling .NET code compiled into Intermediate Language to run on an Android device. IOS apps are compiled into ARM assembly language courtesy of Xamarin libraries. They can be debugged on an iOS device plugged into your computer or on a Mac running a simulator using Xcode. As Xamarin is a .NET technology, apps are written primarily using C#, although F#, a .NET functional programming language, is also an option. 

A Visual Studio Xamarin solution is made up of multiple projects. The Xamarin project, where most of the codebase resides, and a project for each targeted platform. The platform-specific projects will become the apps, with each referencing the Xamarin project for the shared codebase. A Xamarin forms project enables you to develop a shared user interface, defining graphical screen elements with XAML – the extensible application markup language. While Xamarin forms apps ensure the most shared code and reduced development time, they aren't as performant as native apps. Xamarin native apps only share the business logic or non UI codebase. The apps' user interface is defined within each platform-specific project. This means more time in development, but native UIs have access to all of the device's functionality, and in the case of iOS, Xamarin native apps' performance is on par with purely native apps.

In this course, we've looked at how Xamarin's architecture tackles sharing a codebase in a cross-platform scenario. We've seen how to set up a Xamarin development environment on Mac and Windows machines and what's involved in building and debugging simple Andriod and iOS applications.

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