Home > {{category.CategoryName}} > Xamarin Platform
Xamarin Platform Cross Platform Frameworks App

Xamarin Platform

by Xamarin

Create native iOS, Android, Mac and Windows apps in C#.
Helps with: Cross Platform Frameworks
Similar to: Crosslight App Kendo-ui App Alpha Anywhere App Emo Open Source Framework App More...
Source Type: Closed
License Types:
Supported OS:
Languages: CS

What is it all about?

Xamarin Create native iOS, Android, Mac and Windows apps in C#. It's deliver native Android, iOS, and Windows apps, using existing skills, teams, and cod. Built with standard, native user interface controls and access to the full spectrum of functionality exposed by the underlying platform and device, including platform-specific capabilities like iBeacons and Android Fragments.

Key Features

* Native User Interfaces: Xamarin apps are built with standard, native user interface controls. Apps not only look the way the end user expects, they behave that way too. * Native API Access: Xamarin apps have access to the full spectrum of functionality exposed by the underlying platform and device, including platform-specific capabilities like iBeacons and Android Fragments. * Native Performance: Xamarin apps leverage platform-specific hardware acceleration, and are compiled for native performance. This can’t be achieved with solutions that interpret code at runtime.


Resource Type


Wikipedia https://en.wikipedia.org/wiki/Xamarin
YouTube Video https://youtu.be/3QR67V2x90w


Trial With Card
Trial No Card
By Quote


sign to the site


View More Alternatives

View Less Alternatives

Product Analysis

Cross Platform Frameworks

What is Xamarin?

What is Xamarin?

By Ivan Ray | 8/10/2016 | Product Analysis |Beginners

Xamarin is a cross development software platform that allows developers to develop mobile apps on multiple platforms. Instead of using Objective C or Swift for iOS apps and Java for Android, you only need C# in order to code everything at once.


Since the company was founded in 2011, Xamarin has undergone a lot of changes. Its community and support services have grown and the company has developed an entire roster of products. In addition to the development software, they now also have :


  • Xamarin Forms – which allows you to use portable controls subsets that are mapped to native Android, iOS and Windows Phone controls.


  • Xamarin Test Cloud – uses object-based UI testing to simulate mobile app testing on real, non-jailbroken devices in the cloud.


  • Xamarin for Visual Studio – these are add-ins and extensions to Microsoft Visual Studio that allows developers to build Android, iOS, and Windows apps within the IDE using code completion and IntelliSense; plus providing support for the building, deploying, and debugging of apps.


  • Xamarin Studio - a standalone IDE for mobile app development.


  • Mac, Xamarin.iOS and Xamarin.Android – lets you use up to 90% of code reuse across Android, iOS and Windows.


  • .Net Mobility Scanner- lets developers see how much of their .NET code can run on Android, iOS, Windows Phone, and Windows Store. It is a free Web-based service that uses Silverlight.


And when Microsoft purchased in the company in 2016, Microsoft introduced sweeping changes. All of Xamarin's software will be merged with every version of Microsoft Visual Studio with extra features added to the enterprise version.


How does it work?


One of the biggest challenges to building mobile apps is the difference between the programming languages you have to use between platforms. Xamarin works by helping you build a compiled hybrid app, which allows you to create a shared codebase in C# and build it for multiple platforms. The shared codebase is translated to create a native application in each platform while a dependency service allows you to use different code when you need to access a platform specific feature.

And why C# and .NET? Compared to Java, C# is cleaner and easier to use. And we all know what a pain Objective-C can be. Another advantage is that refactoring in Xamarin C# is better than that of Xcode. The .NET ecosystem is also pretty expansive, which allows you to do more compared to other frameworks available.


(void) addText{
myTextView = [ [UITextView alloc] initWithFrame:
CGRectMake (10, 50, 300, 200) ];
[myTextView setText : @”Hello World.”];
myTextView.delegate = self;
[self.view addSubview:myTextView];
textview1.Buffer.Text = “Hello World”


TextView text = new TextView (this);
Text.setText (“Hello World”);
setContentView (text) ;


TextView tv = new TextView (this);
Tv.Text = “Hello World”;


What are the advantages of using Xamarin?

Overall, the benefit of using Xamarin is that it makes things easier. Almost all of us know how to code in C# and brushing up on this skills isn’t going to be a problem. So with this software, you only need to master one language and be proficient in a particular syntax. You’ll be using the same data collections over and over again. This minimizes the errors and pretty much speeds up the development process.


Another advantage to Xamarin is that it’s pretty easy to use. Just install and choose the license that is best suited to your needs. The interface is intuitive, easy to understand and pretty flexible. It also has online debugging which is a breeze to use since it highlights possible errors and provides suggestions and corrections.


Xamarin is pretty friendly to beginners. They also have sample apps that you can use as references. The Xamarin IDE has a very intuitive auto-complete feature. Plus they have a great forum and community that provides a lot of support.


The biggest advantage Xamarin has right now over all the other platforms on the market today comes in line with Microsoft’s announcement of open-sourcing the entire Xamarin SDK on Github. Not all the features will be available for free, some of them will be bundled with Visual Studio Enterprise edition. But considering how popular Visual Studio is for Microsoft developers, having all these available is actually a pretty good deal.


What are the disadvantages of using Xamarin?


One of the biggest complaints most users have with Xamarin is the cost. Prior to Microsoft’s announcement of open sourcing Xamarin, licenses can cost between $300 to $2000 per year. So it remains to be seen whether this will continue to be an issue in the future.


Another problem with Xamarin is that even though the community is growing, it’s still not big enough to answer the growing number of queries. Because there’s hardly any platform abstraction, in some cases, you may have to “port” the samples and tutorials found online when you’re looking for bug fixes or Xamarin versions of commonly used codes available. So in the end, you’ll need to understand three environments and translate code from Swift and/or Java to Xamarin C# which adds to the work. But with Xamarin becoming more accessible to developers everywhere, we might see more community content in the near future.


One problem though that still hasn’t been addressed by Xamarin is the performance issues that have plagued the platform for several years. This is especially evident is you’re building complicated applications. The thin abstraction layer between native APIs and Xamarin isn’t that big of deal when you’re building simple apps. This creates a built-in overhead that makes your app larger than necessary, which makes, compilation, execution and performance an issue.


Plus, Xamarin takes up a LOT of memory and users have often complained how often this platform crashes or slows down, especially when you’re building a large app or opening saved files. Compared to Apple’s, Microsoft’s or Google’s development tools, Xamarin isn’t as stable. There are cases where edit/build/debug cycle in Xamarin is much slower than working with Apple or Google tools alone. You’ll see forums full of complaints about the platform’s limitations, bugs and inconsistencies. And depending on how complicated your build is going to be, sometimes building the native apps individually might end up being faster and more cost effective compared to dealing with the productivity lost troubleshooting and debugging in Xamarin.


The biggest disadvantage is of using Xamarin is that it doesn’t really properly address the vast difference in UX architecture between iOS and Android, which can result in compatibility issues. And even if you use Xamarin Studio, the UX functionality is limited and you’ll still need to use Xcode and Android Studio. There’s also the issues of limited sharing of UI between iOS and Android. So APIs, event logic, widgets and designs used would have to be coded differently for each platform, which in a way defeats the purpose of using Xamarin.


Last but not the least, Xamarin does not allow for the creation of reusable components or modules outside of its own environment. This means that code written in Xamarin cannot be used in native or HTML5 apps.




Custom mobile apps require complex solutions and Xamarin can’t adequately support this. For this, native development is still needed to give you a direct path to the operating system’s APIs and to maximize the UX and UI architecture of each platform.

But despite the all the problems and bugs Xamarin has had throughout the years, it continues to be a popular tool because in most cases it does work. If you’re building a simple app that doesn’t rely heavily on platform specific UX and UI, you can roll out apps using Xamarin with very few issues in almost no time at all. It hasn’t bridged the gap between platforms, but Xamarin dod help provide us with a stepping stone to get there.

By Ivan Ray | 8/10/2016 | Product Analysis

{{CommentsModel.TotalCount}} Comments

Your Comment


Top DiscoverSDK Experts

User photo
Karen Fitzgerald
7 years in Cross-Platform development.
Mobile | Cross Platform Frameworks
View Profile
User photo
Martin Cohen
Over 5 years in cross-platform development.
Mobile | Cross Platform Frameworks
View Profile
User photo
Ronan McCarthy
Cross-Platform & Web developer.
Web | Mobile and 6 more
View Profile
User photo
John Cole
Experienced Cross-Platform developer.
Mobile | Game Development and 2 more
View Profile
Show All

Interested in becoming a DiscoverSDK Expert? Learn more


Compare Products

Select up to three two products to compare by clicking on the compare icon () of each product.


Now comparing:

{{product.ProductName | createSubstring:25}} X
Compare Now