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 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.
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 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.
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.
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 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.
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 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.
Visual Studio for Windows need a connection with Mac machine to develop iOS apps.
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.