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 |
---|---|---|---|---|
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 |
Compass | Access device compass heading. | NuGet | GitHub | @cbartonnh & @JamesMontemagno |
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 System | PCL Storage offers cross platform storage APIs. | NuGet | GitHub | @dsplaisted |
Geolocator | Easily detect GPS location of device. | NuGet | GitHub | @JamesMontemagno |
Local Notifications | Show local notifications | NuGet | GitHub | @EdSnider, @OfficialKrystin, & @JamesMontemagno |
Media | Take or pick photos and videos. | NuGet | GitHub | @JamesMontemagno |
Messaging | Make phone call, send sms, and send e-mail | NuGet | GitHub | @cjlotz |
Permissions | Easily check and request runtime permissions. | NuGet | GitHub | @JamesMontemagno |
Persistent key-value store | Akavache is an asynchronous, persistent (i.e. writes to disk) key-value store. | NuGet | GitHub | @paulcbetts |
Push Notifications | Cross platform iOS and Android Push Notifications. | NuGet | GitHub | @rdelrosario |
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 |
Sockets | TCP & UDP Listeners and Clients + UDP multicast. | NuGet | GitHub | @rdavis_au |
Text To Speech | Talk back text from shared code. | NuGet | GitHub | @JamesMontemagno |
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 |
Additional Plugins!
We are continuously monitoring and adding new Plugins all the time, so be sure to checkout our guide on how to get started creating plugins. Sometimes plugins handle very specific use cases such as contacts, beacons, or specific hardware. Below are some more awesome Plugins to get you going:
Name | Description | NuGet | Docs & Source | Creator |
---|---|---|---|---|
Badge | Easily update application badges. | NuGet | GitHub | @Saveliy_Bondini |
iBeacon & Estimote | Range and monitor Bluetooth beacons. | NuGet | GitHub | @allanritchie911 |
Contacts | Access contacts. | NuGet | GitHub | @JamesMontemagno |
CrossDownloadManager | Library to download files in the background. | NuGet | GitHub | @simonsimcity |
EZCompress | Compression for image streams. | NuGet | GitHub | @VictorGrunn |
Geofence | Handle geofence events such as entering, leaving and staying in a geofence region. | NuGet | GitHub | @domaven |
HybridKit | Easily call into JavaScript hosted in a WebView. | NuGet | GitHub | @chknofthescene |
Lamp | Access to LED | NuGet | GitHub | @kphillpotts |
Manage Sleep | Manage auto sleep/auto lock. | NuGet | GitHub | @molinch0 |
Microsoft Band | Connect and communicate with the Microsoft Band from shared code! | NuGet | GitHub | @mattleibow |
Mono.Data.Sqlite | Add Mono.Data.Sqlite to any Xamarin or Windows .NET app. | NuGet | GitHub | @mattleibow |
Portable Razor | Lightweight implemenation of ASP.NET MVC APIs for mobile. | NuGet | GitHub | @JosephHill |
Secure Storage | Provides Secure storage for key value pairs Data | NuGet | GitHub | @sameerIOTApps |
Submit Your Ideas
We want to hear any and all ideas that you have for potential plugins. Browse through the current issues and see what other developers are interested in or submit your very own. Interested in helping work on a plugin? Simply comment on a plugin that you will start development, create a GitHub repo, and get coding!
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
- Visual Studio Plugin Templates: Provides a complete plugin template and easy NuGet specification to publish.
- Using & Developing Plugins for Xamarin: Join Developer Evangelist James Montemagno as he walks you through creating a plugin from scratch on Xamarin University
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
Turn into a Component
Learn how to turn your NuGet based Plugin for Xamarin into a Component that can be featured in the Xamarin Component Store with our component documentation.
Perks
- Help out fellow developers speed up development
- Have fun and learn new tools
- Our undying love