Frequently Asked Questions
At Xamarin, we believe that great, native mobile user experiences have the power to transform customer relationships and employee productivity. Unlike other cross-platform mobile frameworks that only offer lowest common denominator experiences through UI abstraction libraries, we make 100% of the iOS and Android APIs available through our native bindings. Xamarin developers deliver high performance, fully native experiences and also share between 60 and 100% of their source code across platforms.
Xamarin is the only platform with complete API coverage and deep code-sharing capabilities across iOS, Android and Windows apps, for a total of 2.6 billion devices you can reach in C#. Anything you can do in Objective-C and Java can be done in C# with Xamarin.
To develop cross-platform apps with Xamarin, simply create a single Xamarin Studio or Visual Studio solution with multiple projects. Developers will typically have one project per target platform, as well as abstracted business logic referenced from a shared project or portable class library. Visual Studio's solution architecture was designed with this in mind, so if you've developed Windows applications for multiple Microsoft frameworks (such as WPF, Windows Phone, ASP.NET, Silverlight, or Windows.Forms), this approach will be familiar to you.
You can see examples of these techniques in our pre-built apps.
Yes! Unlike other cross-platform frameworks, your Xamarin app is compiled to a native binary, not interpreted. Native compilation gives users brilliant app performance for even the most demanding scenarios like high frame rate gaming and complex data visualizations. With a small footprint (2.5 MB added to your application code), and negligible impact to app startup time, you can build apps that run fast on any device.
Sound too good to be true? Watch this short video of some high-performance Xamarin apps.
On Android, Xamarin ships a fully functional implementation of the .NET runtime, called Mono, bundled with your app so that your code executes with all of the power of C# and .NET, including JIT-compilation, memory management, reflection, and the .NET base class libraries. Developers can use any native features by interacting with .NET class libraries that provide one-to-one mappings to all of the native APIs on Android.
On iOS, Xamarin uses Mono, a fully functional implementation of the .NET runtime, to fully compile your app into a native ARM executable ahead of time (AOT) so that your code executes with all of the power of C# and .NET, including memory management, reflection, and the .NET base class libraries. Developers can use any native features by interacting with .NET class libraries that provide one-to-one mappings to all of the native APIs on iOS, while complying with Apple's security restrictions which prevent execution of dynamically generated code on device.
Exactly! Xamarin's native bindings provide a complete one-to-one mapping of 100% of the native APIs on each target platform, ensuring that developers have the full power of the underlying platform at their fingertips. Anything that can be done in Objective-C and Java can be done with Xamarin.
Yes! Xamarin ships native binding project templates that make it easy to consume Objective-C and Java libraries on iOS and Android respectively, and many .NET library vendors (including Microsoft) are shipping Xamarin-compatible libraries today. The Xamarin Component Store has a growing portfolio of popular libraries ready for you to integrate into your apps with just a few lines of code, and more and more NuGet developers are shipping Xamarin-compatible packages every day.
You can write 100% of your app in C#. UI, business logic. Everything.
Yes! Xamarin ships native binding project templates that make it easy to consume Objective-C and Java libraries on iOS and Android respectively. Xamarin also has full support for building hybrid applications if you're moving from a mobile web application or other hybrid mobile app solution.
Yes! C# code that is not platform-specific (e.g., code that does not call Windows-specific functionality directly) can be easily ported to iOS and Android with little to no code changes. User our .NET Mobility Scanner to find out how much of your existing code is mobile-ready right now.
Xamarin is for all mobile developers who want to reach users on major device platforms with great, native apps. Increasingly, app publishers and companies who initially built apps in Objective-C and Java are standardizing on Xamarin to share code across platforms, to go faster, and to spend more time on features and user experience, and less time maintaining disparate, duplicate code bases. Popular music streaming service Rdio, is a great example of this.
Yes! Xamarin has full support for building hybrid applications. We recommend restricting HTML use to non-interactive web views and using native functionality for the interactive parts of your application.
Yes! Through code re-use and sharing, and by unifying mobile app development in C#, Xamarin makes it possible to deliver gorgeous, performant, native apps for all major device platforms quickly. Because Windows Phone and Windows 8 apps can be built in C#, Xamarin developers are already empowered to share code between iOS, Android, Windows Phone and Windows 8 apps for 2.6 billion devices, and Xamarin ships many Windows-compatible C# libraries, including our Xamarin.Forms API, which enables developers to quickly build shared screens for iOS, Android and Windows Phone.
Xamarin requires the platform SDKs from Apple and Google to target iOS or Android, and our system requirements match theirs. To build for iOS, you'll need the latest iOS SDK (currently iOS 8.1), which ships with Xcode 6.1 and requires Mac OSX 10.9.4+ (Mavericks) or 10.10 (Yosemite). Our Visual Studio Extensions for iOS and Android support any non-Express editions of Visual Studio 2010, Visual Studio 2012 and Visual Studio 2013.
Xamarin is used by over 1 million developers to build consumer, gaming, and enterprise apps, and has more than 15,000 paying customers in 120 countries including Kimberly Clark, Bosch, Cognizant, GitHub, Microsoft, Dow Jones, McKesson, Nielsen, Honeywell, Kelloggs, Dropbox, and eBay. We’re growing extremely fast, adding an additional 30,000 users to our developer community every month. We were named a Visionary in both 2013 and 2014 on Gartner’s Magic Quadrant for Mobile Application Development Platforms.
With offices in San Francisco, Boston, Buenos Aires and Denmark, we have over 250 employees in 15 countries. Financially, the company bootstrapped its first year, funding operations from revenue. In July, 2012 we raised a $12M Series A round from three top tier venture capitalists, followed by a $16M Series B round of funding in July of 2013, and a $54M Series C in August of 2014.
Xamarin Test Cloud
There are two parts to Xamarin Test Cloud. It provides a locally executed, powerful object-based scripting environment that lets you easily imitate and automate every action a real user would take through a mobile app. Xamarin Test Cloud also provides the industry’s largest device cloud, with over 1,000 real, non-jailbroken devices to test on. Test scripts can run in parallel on hundreds of devices at a time and deliver beautiful test reports that help you identify and troubleshoot, bugs, crashes, UI problems, and memory and performance issues.
Automated Test Scripts can be built in Calabash (Ruby) and C#. If your apps are already built using Xamarin, this means your developers are probably already familiar with the NUnit C# unit testing framework that UITest also uses. Xamarin Test Cloud is not limited to use with apps built on Xamarin, but can test any mobile app regardless of which platform it’s written in - Objective C, Java, or other 3rd party frameworks.
The founders of Calabash are part of the Xamarin Test Cloud team and are working every day to deliver additional functionality and features to ensure the product stays at the forefront of the automated mobile UI testing industry.
Xamarin Test Cloud is particularly powerful when integrated into Continuous Integration processes so that you can ensure that every release is a quality release. Xamarin Test Cloud supports Jenkins, TFS and TeamCity.
You can test any native or hybrid mobile app with Xamarin Test Cloud, not just apps written using the Xamarin platform. Apps written in Objective-C, Java, Appcelerator, and Phonegap can all be tested using Xamarin Test Cloud. If the app can be downloaded from a public or private app store, you can test it in Xamarin Test Cloud.
Not at all. Our Quick Start offer gives you access to Xamarin’s expert mobile app automation engineers who can coach your team or author your first tests and integrate Xamarin Test Cloud into your Continuous Integration system for you so you get value from day one. We also have a Managed Services Offering - just give us your app and test use cases so that we can author and execute tests for you. Once the tests have competed, we'll send you clear, actionable reports of your app on devices so that you can use the results to make the necessary code changes to prevent future crashes and issues.
Contact us today with your ideal automated testing process and we will be in touch shortly to talk to you about getting started with Xamarin Test Cloud.
When you begin a Xamarin Trial, you get access to the full Xamarin Enterprise feature set, including the ability to run your app on actual device hardware, for 30 days. Apps built in trial mode can only be run within a 24 hour window after they are built, and bear a splash screen that indicates they were built using the Trial SDK. The Xamarin Trial is licensed for evaluation purposes only.
Xamarin Starter is our free tier that allows developers to build and publish simple apps that contain no more than 128k of compiled user code (IL), don't call out to native third party libraries (i.e., developers may not P/Invoke into C/C++/Objective-C/Java), and are built using Xamarin.iOS / Xamarin.Android (not Xamarin.Forms). Xamarin Starter installs automatically with Visual Studio 2015, and works with VS 2012, 2013, and 2015 (including Community Editions). When your app outgrows Starter, you will be offered the opportunity to upgrade to a paid subscription, which you can learn more about here.
Xamarin Business includes all the features of Xamarin Indie, as well as email support and business features, including support for WCF and System.Data.SqlClient. Additionally, Xamarin Business supports developing, deploying, and debugging apps from within Visual Studio. See the full product comparison chart. Xamarin Business may be used by companies of any size. Companies or incorporated entities with more than five employees must purchase a Business or Enterprise plan.
Xamarin Indie may be purchased as a monthly or annual subscription, and Xamarin Business may only be purchased as an annual subscription. Software included with an annual subscription does not expire - customers can continue to run Xamarin products after subscription expiration even if their annual subscription is not renewed. If a monthly subscription is not renewed, software included with the monthly subscription can no longer be run once the subscription has expired.
Xamarin supports the use of a build server for continuous integration and unit testing. You will not be required to purchase a separate license; however, we do require you to sign a special addendum for the build server. You can email email@example.com for more details.
NOTE: This is not to be confused with the iOS Build Host for developing iOS applications on Windows.
Can I buy a monthly subscription of Indie for one platform and an annual subscription of another plan?
No, you must purchase the same type of subscription for all platforms.
Xamarin Enterprise includes all of the features of Xamarin Business, as well as a technical kickoff session and technical account manager, one-day response time Service Level Agreement (SLA), access to hotfix releases, and over $500 in pre-built app components including local data encryption with SQLCipher and the SAP Mobile .NET SDK, and the ability to protect managed assemblies by embedding them in native binaries. See the full product comparison chart.
You can upgrade to a higher edition by paying the difference. If you are a Xamarin Indie monthly subscriber, you may cancel that subscription at any time, and then purchase an annual subscription at the regular price. Simply send an email to firstname.lastname@example.org to handle any upgrade request.
Xamarin's one business day service level agreement ensures that issues submitted via email to Xamarin's support team will be given highest priority in our support queue, and will be responded to by the same time on the next business day. Xamarin's business hours are 9a-5p EST.
Xamarin Enterprise customers that are blocked by verified bugs that do not have a reasonable workaround have access to patched builds of our current stable releases once a fix is available.
Subscription plan mixing in the same company is not allowed. Because many of the features of each product tier apply to the organization, organizations should purchase the same plan for all developers in the organization.
In order to ensure that all open source projects that want to add or maintain compatibility with Xamarin have access to the tools they need, we offer open source projects with app store compatible licenses non-commercial subscriptions to our products for the purposes of developing, testing, and maintaining compatibility with Xamarin. Active developers on established open source projects can fill out this form to apply.
I want to use Xamarin to create an "app builder" tool or online service that generates apps for my customers using a wizard, configurator, or by uploading their own code. Does the Xamarin subscription allow this?
The standard Xamarin subscription does not allow you to share or sublicense your subscription to other parties, and explicitly disallows "app builders" and other mechanisms of enabling unlicensed third parties to build apps with the Xamarin toolchain or which include the Xamarin redistributables. Companies that wish to build such tools or services can contact email@example.com to discuss OEM licensing options.
If your Xamarin subscription expires, your apps will continue to run even after your subscription has expired, regardless of which product subscription you purchased.
If you choose not to continue your monthly Xamarin Indie subscription, your apps built with Xamarin will continue to run; however, you will no longer be able to run the Xamarin software provided with your Xamarin subscription.
Your Xamarin license acquired with an annual subscription is perpetual. If you choose not to renew your annual subscription, you will no longer have access to new releases or support, and we will be very sad.
Yes. Students enrolled in a degree- or diploma-granting course of study can apply for a free Xamarin subscription that can be used to build and publish amazing, native mobile apps and games on iOS and Android in C# with both Visual Studio and Xamarin Studio.
Instructors leading courses on mobile development at a degree- or diploma-granting institution can purchase Xamarin.iOS and Xamarin.Android Business editions (without email support) for $99. Develop apps and games for iOS and/or Android with Visual Studio, and deploy them to devices, or publish to the Apple App Store, Google Play, or other public app stores. To apply, send course and lab details to firstname.lastname@example.org.