Understanding Xamarin iOS - Build Native iOS App

Shailendra Chauhan  Print 
21 Feb 2017
06 Aug 2018
Intermediate
6.65K

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 replaces 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 of 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 of 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, shares 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 the 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 an 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.

Hands-on Learning
Free Interview Books
 
+