Create amazing iPhone and iPad apps with C# and .NET

Finally, a platform as elegant as the device.

  • Cross Platform

    Easily share code between iOS, Android and Windows devices.

  • Native Code

    High-performance compiled code with full access to all the native APIs, including UIKit.

  • C# & .NET

    Everything you love about .NET, including LINQ, Delegates and Events.

Why you'll love Xamarin.iOS.

Xamarin.iOS makes creating iPhone and iPad apps easier than ever before.

  • Cross platform development

    Thinking about supporting Android in the future? Reuse up to 90% of your existing C# code when porting from iOS to Android with Xamarin.Android.

  • Discover iOS as you type

    Explore APIs as you type with code autocompletion.

  • iOS 7 ready

    Xamarin.iOS provides full access to iOS APIs. Take advantage of the entire spectrum of rich functionality supplied by the latest version of the platform.

  • Reuse existing code

    Use your favorite .NET libraries in Xamarin.iOS applications. Easily bind third-party native libraries and frameworks. Or use the Xamarin Component Store, which offers dozens of third-party libraries packaged for instant adoption.

  • Xcode 4 and UI designer integration

    Use Xcode 4's powerful UI designer to create interfaces and Storyboards that automatically sync with your Xamarin.iOS project.

  • Up to date

    Xamarin.iOS is frequently updated and ready with all of the latest iOS features—typically on the same day that Apple releases a platform update!

You're in good company.

Hundreds of thousands of developers are already using Xamarin to create amazing apps.

  • 3M
  • Microsoft
  • VMWare
  • Novartis
  • Target
  • Accenture
  • Cisco
  • AT&T
  • AOL
  • Monster
  • Cornell University
  • RDIO
  • Matrox
  • CH Robinson
  • Tibco
  • Raytheon BBN Technologies
  • Intuit
  • Medtronic
  • HP
  • Resco
  • Cegedim
  • Frank Krueger

    Software Developer, iCircuit

  • Just Enough

    Cross Platform Software Solutions

Some of the wonderful apps that Xamarin.iOS developers have created are featured in our App Showcase.

Write beautiful code.

With Xamarin.iOS, you can harness the full power of C# and .NET. Write shorter, simpler, and more maintainable code using features like LINQ, anonymous types, lambdas and more.

from p in Table<Person> ()
    where p.ID == id
    select p;

LINQ Support

Use LINQ in your Xamarin.iOS projects to query, filter and select data from in-memory arrays, or from databases such as SQLite.

var doc = XDocument.Load(url);
foreach(var item in doc.Root.Elements()) {
    var text = item.Value;

Work With XML Easily

Handling XML is quick and easy thanks to the built-in XDocument class - just one of the thousands of .NET APIs available when you use Xamarin.iOS.

button.TouchUpInside += (s, o) => {
    message.Text = "Hello!";

Event Handling & Delegates

Easily handle button presses and other UI events.

from item in items.AsParallel ()
   let result = DoExpensiveWork (item)
   select result;

Make Use of Both Cores

Use Parallel LINQ to automatically distribute heavy work, like parsing large JSON results, over both cores of an iPad 2 or iPhone 4S.

Using CoreImage


CIContext *context = 
     [CIContext contextWithOptions: 
        [NSDictionary dictionaryWithObject:[NSNumber numberWithBool:YES]
CIImage *ciImage = [CIImage initWithCGImage:cgImage];
CIFilter *hueAdjustFilter = [CIFilter filterWithName:@"CIHueAdjust"];
CIFilter *colorControlsFilter = [CIFilter filterWithName:@"CIColorControls"];

[hueAdjustFilter setValue:[NSNumber numberWithDouble:3.0 * M_PI] forKey:@"inputAngle"];

[colorControlsFilter setDefaults];
[colorControlsFilter setValue:[NSNumber numberWithDouble:1.3] forKey:@"inputSaturation"];
[colorControlsFilter setValue:[NSNumber numberWithDouble:0.3] forKey:@"inputBrightness"];

[hueAdjustFilter setValue:ciImage forKey:@"inputImage"];
[colorControlsFilter setValue:[hueAdjustFilter valueForKey:@"outputImage"] forKey:@"inputImage"];
ciImage = [colorControlsFilter valueForKey:@"outputImage"];

[context [createCGImage: ciImage fromExtent:[ciImage extent]]];

C# with Xamarin.iOS

var context = CIContext.FromOptions (new CIContextOptions () {
    UseSoftwareRenderer = true
var ciImage = new CIImage (cgImage);
var hueAdjustFilter = new CIHueAdjust {
    InputAngle = 3.0f * Math.PI,
    Image = ciImage,

var colorControlsFilter = new CIColorControls {
    InputSaturation = 1.3f,
    InputBrightness = 0.3f,
    Image = hueAdjustFilter.OutputImage

ciImage = colorControlsFilter.OutputImage;
context.CreateImage (ciImage, ciImage.Extent);

Creating attributed strings


CFStringRef keys[] = {

CFTypeRef bval[] = {

attr = CFDictionaryCreate (kCFAllocatorDefault,
    (const void **) &keys, (const void **) &bval,
    sizeof(keys) / sizeof(keys[0]), &kCFTypeDictionaryKeyCallBacks,

astr = CFAttributedStringCreate(kCFAllocatorDefault, CFSTR("Hello World"), attr);

C# with Xamarin.iOS

var attrs = new CFStringAttributes {
    Font = listLineCTFont,
    ForegroundColor = UIColor.Black.CGColor

var astr = new NSAttributedString ("Hello World", attrs);

Probing for properties on an AudioFile


UInt32 maxPacketSize;
UInt32 Propertysize = sizeof(maxPacketSize);
AudioFileGetProperty (

C# with Xamarin.iOS

var maxPacketSize = audioFile.PacketSizeUpperBound;


Choose the version of Xamarin.iOS that is right for you and your company.

  • Starter


    • Publish to app stores
    • Xamarin Studio
    • Size capped to 32k of IL code
    • Build your first app!
  • Indie


    • Xamarin Studio
    • Unlimited app size
    • 1 Year Subscription
    • Licensed for an individual
  • Enterprise


    • Priority Support with SLA
    • Premium Components
    • Xamarin Studio
    • Visual Studio Support
    • 1 Year Subscription
    • Licensed per seat
30 Day Money Back Guarantee!