Please enable Javascript to correctly display the contents on Dot Net Tricks!

Understanding Xamarin iOS - Build Native iOS App

  Author : Shailendra Chauhan
Posted On : 21 Feb 2017
Total Views : 4,716   
Updated On : 21 Feb 2017

Xamarin.iOS is a part of Xamarin family to build native iOS app with C# and Xamarin. Xamarin.iOS offers the same UI controls that are available in objective-C or swift language and Xcode.

This article is about the iOS layered architecture, Xamarin.iOS architecture and tools/SDKs to develop Xamarin.iOS apps. Let's understand the iOS architecture.

iOS Development

iOS is a mobile operating system which runs on iPhone, iPad and iPod touch and Apple TV devices. iOS is developed and maintained by Apple Inc. which is based on Unix-like kernel. It can run only on apple devices (hardware). It is fomaly known as iPhone OS.

iOS Development

The native iOS apps development can be done with Xcode using objective-C or swift as a programming langauge using a Mac machine. Using other os like windows or ubuntu, you can not do ios development.

iOS Architecture

iOS operating system is a Unix-like stack of software components which comes directly from the development path of OS X. It can be divided mainly into four sections as shown below in the following diagram.

iOS Architecture

Kernel and Device Drivers

This is the lowest layer of iOS which mainly includes the kernel and device drivers. The kernel environment is built on top of Mach 3.0 (a microkernel which replace the kernel in the BSD version of Unix) and provides high-performance networking facilities and support for multiple, integrated file systems.

Core OS Layer

The Core OS layer consist technologies and frameworks which provide low-level services related to low-level hardware and networks. These services are based on facilities in the Kernel and Device Drivers layer.

Core Services Layer

The Core Services layer consist core services like Address book, Security, Social and foundation which provide essential features to apps. It gives access to fundamental resources needed for app.

Media Layer

The Media layer help you to incorporate 2D and 3D graphics, animations, image effects, and professional-grade audio and video functionalities into your mobile app.

Cocoa Touch Layer

The Cocoa Touch layer is primarily responsible for the appearance of apps. It provides access to main system functions like Contacts, Camera, touch input, share with other apps, push notifications etc.

Xamarin.iOS Architecture

Xamarin.iOS apps run within the Mono execution environment and uses AOT (full Ahead of Time) compilation to compile C# code to native. The Mono runtime is written in the C language and runs side-by-side with the Objective-C Runtime. Both runtime environments run on top of the UNIX-like kernel, specifically XNU and expose various APIs to access the underlying ios system.

Xamarin.iOS Architecture

In Xamarin.iOS apps you can access the various low-level features of iOS operating system either by calling .NET APIs or using the bindings for Apple’s iOS APIs.

Xamarin.iOS Development

Xamarin.Ios allows you to build native iOS app using C#. A Xamarin iOS project is based on the standard iOS project structure as you creates with Xcode. Xamarin.iOS development you can do using IDEs - Xamarin Studio or Visual Studio for Mac.

Xamarin.iOS Tools

Visual Studio for Windows need a connection with Mac machine to develop iOS apps.

Xamarin.iOS Tools
What do you think?

I hope, now you have understanding about Xamarin.iOS to build native ios mobile apps. I would like to have feedback from my blog readers. Your valuable feedback, question, or comments about this article are always welcome.


Shailendra Chauhan
Author, Architect, Corporate Trainer and Microsoft MVP

He is the author of some of most popular e-books which encompass technical Interview on Node.js Interview Questions and Answers, ASP.NET MVC Interview Questions and Answers, AngularJS Interview Questions and Answers and LINQ Interview Questions and AnswersKnow more...

Free Interview Books
20 JAN
ASP.NET Core with Angular4 (Online)
07:00 AM-09:00 AM IST / 07:30 PM Central Time
20 JAN
ASP.NET MVC with Angular (Classroom)
05:00 PM to 07:00 PM IST (+5:30 GMT)
20 JAN
ASP.NET MVC with Angular4 (Online)
03:00 pm to 05:00 pm
20 JAN
Angular2+4 with Firebase (Classroom)
03:00 PM to 05:00 PM IST (+5:30 GMT)
16 JAN
Developing Microsoft Azure Solutions (Online)
07:00 AM-09:00 AM IST/ 07:30 PM -09:30 PM CST
16 JAN
React with Redux (Online)
07:00 AM-08:30 AM IST
15 JAN
Big Data Hadoop Developer (Online)
05:00 PM to 06:30Pm IST / 06:30AM to 08:00AM CST
ASP.NET Core with Angular4 (Online)
09:00 Pm to 11:00 Pm IST (+5:30Gmt)
Big Data Hadoop Developer (Online)
07:00 AM - 08:30 AM IST(+5:30 GMT)
16 DEC
ASP.NET MVC with Angular4 (Classroom)
10:00 AM - 01::00 PM IST(+5:30 GMT)
12 DEC
ASP.NET MVC with Angular4 (Online)
09:00 PM - 11:00 PM IST(+5:30 GMT)
Developing Microsoft Azure Solutions (Online)
07:00 AM-09:00 AM IST / 08:30 PM Central Time
Angular2+4 with Firebase (Online)
10:30 AM-12:30 PM IST(+5.30 GMT)
27 NOV
ASP.NET Core (Online)
07:00 AM to 09:00 AM IST (+5:30 GMT)
11 NOV
ASP.NET MVC (Online)
08:00 AM-10:00 AM IST / 09:30 PM To 11:30 PM(CST)