Essential cross platform APIs for your mobile apps.
Clone or download
Failed to load latest commit information.
.github Update Aug 8, 2018
Assets New Icons! (#218) Apr 27, 2018
DeviceTests Increase Device Test timeout Nov 6, 2018
Samples [Share] Renamed DataTransfer to Share. Fixes #577 (#586) Nov 2, 2018
Tests [Share] Renamed DataTransfer to Share. Fixes #577 (#586) Nov 2, 2018
Xamarin.Essentials [Share] Renamed DataTransfer to Share. Fixes #577 (#586) Nov 2, 2018
docs [Share] Renamed DataTransfer to Share. Fixes #577 (#586) Nov 2, 2018
.editorconfig No nested classes and no default access modifiers Apr 11, 2018
.gitattributes Fixing line endings and added .gitattributes to make sure it stays fixed Feb 28, 2018
.gitignore Using the new mdoc frameworks (#161) Apr 10, 2018 Initialize open publishing repository:… Apr 10, 2018
.openpublishing.publish.config.json Use specified version of ECMA2Yaml to work around (#532) Oct 2, 2018 Initial attempt at contribution, submission docs, and templates Feb 23, 2018 Added some guiding principles for new feature work (#585) Nov 3, 2018
CodeStyles.targets Rebranding to Xamarin.Essentials (#152) Apr 6, 2018
LICENSE Rebranding to Xamarin.Essentials (#152) Apr 6, 2018
LICENSE-CODE Initialize open publishing repository:… Apr 10, 2018 Create Product Feedback page for Docs (#369) Jul 16, 2018 Update (#603) Nov 5, 2018 Update links in markdown files Apr 10, 2018
ThirdPartyNotices Initialize open publishing repository:… Apr 10, 2018
Xamarin.Essentials.ruleset Rebranding to Xamarin.Essentials (#152) Apr 6, 2018
Xamarin.Essentials.sln Integrate sourcelink - (#260) Aug 24, 2018 Integrate App Center SDK into Sample App (#557) Nov 2, 2018
build.ps1 Integrate sourcelink - (#260) Aug 24, 2018
nugetreadme.txt Fix-up readme and add in workaround for newer .net core sdk (#473) Aug 16, 2018
stylecop.json We want to use spaces and not tabs Feb 28, 2018


Xamarin.Essentials gives developers essential cross-platform APIs for their mobile applications.

iOS, Android, and UWP offer unique operating system and platform APIs that developers have access to, all in C# leveraging Xamarin. It is great that developers have 100% API access in C# with Xamarin, but these APIs are different per platform. This means developers have to learn three different APIs to access platform-specific features. With Xamarin.Essentials, developers have a single cross-platform API that works with any iOS, Android, or UWP application that can be accessed from shared code no matter how the user interface is created.

Gitter chat

Build Status

Build Server Type Platform Status
Jenkins Build Windows Jenkins Build Status
VSTS Build Windows VSTS Build Status
Jenkins Device Tests macOS Build Status
App Center Sample App Android Build status
App Center Sample App iOS Build status

Sample App

Try out Xamarin.Essentials on your device!


Xamarin.Essentials is available via:

Please read our Getting Started with Xamarin.Essentials guide for full setup instructions.


Browse our full documentation for Xamarin.Essentials, including feature guides, on how to use each feature.

Supported Platforms

Xamarin.Essentials is focused on the following platforms:

  • iOS (10+)
  • Android (4.4+)
  • UWP (Fall Creators Update+)

API Documentation

The following cross-platform APIs are available in Xamarin.Essentials:


Please read through our Contribution Guide. We are not accepting new PRs for full features, however any issue that is marked as up for grabs are open for community contributions. We encourage creating new issues for bugs found during usage that the team will triage. Additionally, we are open for code refactoring suggestions in PRs.

Building Xamarin.Essentials

Xamarin.Essentials is built with the new SDK-style projects with multi-targeting enabled. This means that all code for iOS, Android, and UWP exist inside of the Xamarin.Essentials project.

If building on Visual Studio 2017, you will need the following SDKs and workloads installed:

Workloads need:

  • Xamarin
  • .NET Core
  • UWP

You will need the following SDKs

  • Android 8.1 SDK Installed
  • UWP 10.0.16299 SDK Installed

If using Visual Studio for Mac the project can be built at the command line with MSBuild. To change the project type that you are working with, simply edit Xamarin.Essentials.csproj and modify the TargetFrameworks for only the project type you want to use.

To build through the command line, navigate to where Xamarin.Essentials.csproj exists then run:

msbuild /restore Xamarin.Essentials.csproj


Here are some frequently asked questions about Xamarin.Essentials, but be sure to read our full FAQ on our Wiki.


Please see the License.