Open Source Components for Xamarin

Open Source Components for Xamarin are a collection of open source components (including bindings and plugins) created by Xamarin and others in the community.

Xamarin Supported Open Source Components

Xamarin Supported Open Source components are a collection of Xamarin built bindings and libraries.

Name Description Source
Android Support Libraries Bindings for Google's Android Support Libraries GitHub
Google Play Services Client Libraries Bindings for Google's Play Services Client Libraries GitHub
Google API's for iOS Bindings for Google's API's for iOS Libraries GitHub
Facebook SDK's Bindings for Facebook's iOS & Android SDK's GitHub
Xamarin.Auth Cross-platform API for authenticating users and storing their accounts. GitHub

Community Provided Open Source Plugins

Plugins for Xamarin are community built NuGet and Components that add cross-platform functionality or abstracts platform specific functionality to a common API. These are both completely cross-platform and extremely small (i.e., they do 1 or 2 things really well with minimal-to-no dependencies). The Plugin API can be accessed on each platform, however, you will most likely only use the common API in a Portable Class Library or Shared Code project.

Notice: Plugins for Xamarin featured here are produced by the amazing open source community of Xamarin developers. Xamarin does not provide official support for these plugins, please contact their creator with any issues.

Popular Plugins

Browse through the most popular plugins out there today!

Name Description NuGet Docs & Source Creator
Audio Recorder Record audio on a device's microphone input. NuGet GitHub @NateRickard
Battery Status Gather battery level, charging status, and type. NuGet GitHub @JamesMontemagno
Barcode Scanner Scan and create barcodes with ZXing.NET.Mobile. NuGet GitHub @Redth
Bluetooth LE Scan and connect to Bluetooth devices. NuGet GitHub @allanritchie911
Calendar Query and modify device calendars NuGet GitHub Caleb Clarke
Compass Access device compass heading. NuGet GitHub @cbartonnh & @JamesMontemagno
Config Define the settings of the application for each environment in which it will run. NuGet GitHub @abonilla93
Connectivity Get network connectivity info such as type and if connection is available. NuGet GitHub @JamesMontemagno
Cryptography PCL Crypto provides a consistent, portable set of crypto APIs. NuGet GitHub @aarnott
Device Info Properties about device such as OS, Model, and Id. NuGet GitHub @JamesMontemagno
Device Motion Provides access to Accelerometer, Gyroscope, Magnetometer, and Compass. NuGet GitHub @rdelrosario
Embedded Resource Unpack embedded resource cross-platform. NuGet GitHub @JosephHill
External Maps Launch external maps from Lat/Long or Address. NuGet GitHub @JamesMontemagno
File Storage/File System PCL Storage offers cross platform storage APIs. NuGet GitHub @dsplaisted
File Picker Pick and save files. NuGet GitHub @studyxnet
File Uploader Upload files using multipart request. NuGet GitHub @rdelrosario
Fingerprint Access Fingerprint sensor on iOS, Android, and Windows. NuGet GitHub @smstuebe
FFImageLoading Image loading with caching, placeholders, transformations and more NuGet GitHub @molinch, @daniel-luberda
Geofencing Monitor regions when user enters/exits. NuGet GitHub @allanritchie911
Geolocator Easily detect GPS location of device. NuGet GitHub @JamesMontemagno
HTTP Transfers Download or upload files in the background. Provides speed metrics and estimates NuGet GitHub @allanritchie911
iBeacon & Estimote Range and monitor Bluetooth beacons. NuGet GitHub @allanritchie911
In-App Billing Make, Query, and get In-App Purchases and Subscriptions. NuGet GitHub @JamesMontemagno
Lamp Access to LED NuGet GitHub @kphillpotts
Latest Version Detect if your users are using the latest version of your app. NuGet GitHub @EdSnider
Local Notifications Show local notifications NuGet GitHub @EdSnider, @JamesMontemagno
Local Notifications Manage local notifications NuGet GitHub @allanritchie911
Manage Sleep Manage auto sleep/auto lock. NuGet GitHub @molinch0
Media Take or pick photos and videos. NuGet GitHub @JamesMontemagno
Media Manager Playback for Audio. NuGet GitHub @mhvdijk
Messaging Make phone call, send sms, and send e-mail NuGet GitHub @cjlotz
Microsoft Band Connect and communicate with the Microsoft Band from shared code! NuGet GitHub @mattleibow
Multilingual Plugin Simple cross platform plugin for handling language localization. NuGet GitHub @CrossGeeks
Permissions Easily check and request runtime permissions. NuGet GitHub @JamesMontemagno
Portable Razor Lightweight implemenation of ASP.NET MVC APIs for mobile. NuGet GitHub @JosephHill
Push Notifications Cross platform iOS and Android Push Notifications. NuGet GitHub @rdelrosario
Secure Storage Provides secure storage for key value pair string data NuGet GitHub @sameerIOTApps
Settings Simple & Consistent cross platform settings API. NuGet GitHub @JamesMontemagno
Share Easily share text, links, or open a browser. NuGet GitHub @JamesMontemagno & @Jakob Gürtl
Sensors Device sensors - accelerometer, ambient light, barometer, compass, device orientation, gyroscope, magnetometer, pedometer, and proximity NuGet GitHub @allanritchie911
Sockets TCP & UDP Listeners and Clients + UDP multicast. NuGet GitHub @rdavis_au
Speech Recognition Speech to Text. NuGet GitHub @allanritchie911
Simple Audio Player Play multiple MP3 or wave files from a shared library. NuGet GitHub @adrianstevens
Store Review Ask for store review or launch app store page. NuGet GitHub @jamesmontemagno
Text To Speech Talk back text from shared code. NuGet GitHub @JamesMontemagno
Toast A simple way of showing toast/pop-up notifications. NuGet GitHub @AdamPed & @EgorBo
User Dialogs Message box style dialogs. NuGet GitHub @allanritchie911
Version Tracking Track which versions of your app a user has previously installed. NuGet GitHub @ColbyLWilliams
Vibrate Vibrate any device. NuGet GitHub @JamesMontemagno
Device Orientation Plugin to work with screen orientation (change and lock) NuGet GitHub @YauheniPakala

Data Caching & Databases

Name Description NuGet Docs & Source Creator
Akavache An asynchronous, persistent (i.e. writes to disk) key-value store. NuGet GitHub @paulcbetts
Azure Mobile Apps Offline sync-enabled Windows and Xamarin mobile apps that connect to Azure Mobile App. NuGet GitHub @microsoft
Cosmos DB Azure Cosmos DB is a globally distributed, multi-model database service. NuGet GitHub @azurecosmosdb
LiteDB LiteDB - A .NET NoSQL Document Store in a single data file NuGet GitHub @mbdavid
🐒 Monkey Cache Cache any data structure for a specific amount of time with minimal dependencies. NuGet GitHub @jamesmontemagno
Mono.Data.Sqlite Add Mono.Data.Sqlite to any Xamarin or Windows .NET app. NuGet GitHub @mattleibow
Realm Realm is a mobile database: a replacement for SQLite and ORMs. NuGet GitHub @realm
SQLite-net Simple, powerful, cross-platform SQLite client and ORM for .NET NuGet GitHub @praeclarum

Create a Plugin for Xamarin

If you are looking to create a plugin be sure to browse through NuGet first and ensure that the plugin doesn't exist. If one does join in on the fun and collaborate. If it doesn't and you want to start building a Plugin here are some tools and guidelines to get you started.

Tools to get Started

Requirements of a Plugin

  • Open source on GitHub
  • Documentation on GitHub's README file
  • Name: "FEATURE_NAME Plugin for Xamarin and Windows"
  • Namespace: Plugin.FEATURE_NAME
  • App-store friendly OSS license (we like MIT)
  • No dependency on Xamarin.Forms
  • Have a list of supported and unsupported OSs in its GitHub wiki

Perks

  • Help out fellow developers speed up development
  • Have fun and learn new tools
  • Our undying love