A curated list of awesome Xamarin ports, bindings, tutorials and much more! The list is divided into categories such as Frameworks, Components, Testing and others, open source projects, free and paid services. There is no pre-established order of items in each category, the order is for contribution. If you want to contribute, please read the guide.
Awesome-Xamarin is an amazing list for people who need a certain feature on their app, so the best ways to use are:
- Ask for help on our Twitter
- Simply press command + F to search for a keyword
- Go through our Content Menu
- About
- How to Use
- Getting Started
- Library and Frameworks
- Analytics
- Animation
- Architecture
- Authentication
- Cache
- Charts
- Code Quality
- Color
- Database
- Data Structures / Algorithms
- Date & Time
- EventBus
- Files
- Games
- Gesture
- Graphics
- Hardware
- Layout
- Logging
- Localization
- Maps
- Math
- Media
- Messaging
- Networking
- Notifications
- Parsing
- Passbook
- Payments
- Permissions
- Reactive Programming
- Security
- Server
- Testing
- UI
- Activity Indicator
- Alert View
- App Introduction
- Badge
- Button
- Calendar
- Card View
- Form & Settings
- Keyboard
- Label
- Menu
- Modal Transition
- Navigation Bar
- PickerView
- Popup
- Pull to Refresh
- Rating Stars
- ScrollView
- Slider
- Splash View
- Stepper
- Switch
- Tab Bar
- Table View / Collection View
- Tag
- TextField & TextView
- Web View
- URL Scheme
- Utility
- VR
- Walkthrough / Intro / Tutorial
- Websocket
- Project setup
- Dependency / Package Manager
- Tools
- Rapid Development
- Deployment / Distribution
- App Store
- SDK
- Xcode
- Reference
- Style Guides
- Good Websites
- Social Media
- Podcasts
- Books
- Other Awesome Lists
- Contributing
- Start Developing with Xamarin - Official Xamarin. 🔶
- Google Analytics - Google analytics platform.
- Firebase - Analytics and much more.
- Hockeyapp - Analytics and crash reporting
- Raygun - Crash reporting and real user monitoring.
- Xamarin.Animations - Libraries tends to make view animation easier for common scenarios like fade or scale entrance animations.
- Facebook Pop - Pop is an open-source animation engine behind the Facebook Paper's smooth animations and transitions. Using dynamic instead of traditional static animations, Pop drives the scrolling, bouncing, and unfolding effects that bring Paper to life.
- DCAnimationKit - A collection of animations for Xamarin iOS
- Lottie - Library that renders After Effects animations in real time, and allows apps to use animations as easily as they use static assets. Lottie uses animation data exported as JSON files from an open-source After Effects extension called Bodymovin.
- MvvmCross - Extensive MVVM framework with plugins.
- MVVM Light - Lightweight MVVM framework.
- Prism - Framework for building loosely coupled, maintainable, and testable XAML applications in WPF, Windows 10 UWP, and Xamarin Forms
- Caliburn Micro - A small, yet powerful framework, designed for building applications across all XAML platforms. Full support for Xamarin.Forms and allows for reuse of ViewModels with Xamarin.Android and Xamarin.iOS projects (more support will be added in future releases).
- FreshMvvm - FreshMvvm is a super light Mvvm Framework designed specifically for Xamarin.Forms.
- ReactiveUI - Use the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform. Supports Xamarin.iOS, Xamarin.Android, Xamarin.Mac, Xamarin Forms, WPF, Windows Forms, Windows Phone 8, Windows Store and Universal Windows Platform (UWP).
-
Xamarin.Auth - Xamarin.Auth helps you authenticate users via standard authentication mechanisms (e.g. OAuth 1.0 and 2.0), and store user credentials.
-
Auth0 - Add authentication with different sources, either social like Google, Facebook, Twitter, or enterprise like WAAD, Google Apps, AD, ADFS or any SAML Provider.
-
SimpleAuth SimpleAuth embeds authentication into the API so you dont need to deal with it. Most importantly it works great with traditional Xamarin and Xamarin.Forms, and supports providers like Facebook and Google out of the box.
-
Fingerprint - Authenticate a user using the fingerprint sensor (aka. Touch ID).
- Akavache - Akavache is an asynchronous, persistent (i.e. writes to disk) key-value store created for writing desktop and mobile applications in C#, based on SQLite3. Akavache is great for both storing important data (i.e. user settings) as well as cached local data that expires.
- FFImageLoading - Library to load images quickly & easily on Xamarin.iOS, Xamarin.Android, Xamarin.Forms and Windows (UWP, WinRT).
- Syncfusion - Chart includes functionality for plotting more than 20 chart types. Each chart type is easily configured with built-in support for creating stunning visual effects.
- Flexchart - Visualize your data in a wide span of Cartesian chart types including bar, column, area, line, spline, scatter, bubble, high-low-open-close (HLOC) and candle.
- Charts - A Xamarin port by Lucas Teixeira for Charts (ios-charts) by Daniel Cohen Gindi, inspired by Philipp Jahoda
- Oxyplot - A cross-platform plotting library for .NET
- Telerik - Feature-rich, intuitive and easy to use data visualization control featuring a large collection of chart series with smooth interaction and zooming.
- SciChart - High performance iOS & Android charts. Capable of displaying millions of data-points in real-time (see Android Performance, iOS Performance). Supports 2D Line, Scatter, Column, Mountain chart, OHLC, Candlestick, Heatmap. v2 will support Stacked Columns, Stacked Mountains, Error Bars, Bubbles and Xamarin bindings
- MPAndroidChart - A Xamarin binding for MPAndroidChart by Philipp Jahoda.
- Microcharts - A SkiaSharp based library to create cross-platform charts.
- Xamarin profiler - Use it to find memory leaks, resolve performance bottlenecks, and add polish to your apps before getting them out the door.
- Firebase - Analytics and much more.
- Hockeyapp - Analytics and crash reporting
- Splat - Splat aims to fix that, by providing a usable leaky abstraction above platform code. It is leaky, because it always provides an extension method ToNative() and FromNative(), which converts the abstraction to the platform-specific version.
- Akavache - Akavache is an asynchronous, persistent (i.e. writes to disk) key-value store created for writing desktop and mobile applications in C#, based on SQLite3. Akavache is great for both storing important data (i.e. user settings) as well as cached local data that expires.
- Realm - The alternative to SQLite: Simple, modern and fast.
- Couchbase Lite - Couchbase document store lite
- sqlite-net - SQLite-net is an open source, minimal library to allow .NET and Mono applications to store data in SQLite 3 databases.
- Genesis.Repository - Genesis.Repository is a library that makes it simpler to implement the repository pattern within your application, using SQLite as a backing store.
- Genesis.DataStore - Genesis.DataStore is a library that makes it simpler to implement a SQLite-based, versioned data store for your application.
- Noda.Time - A better date and time API for .NET
- MessageBus - Cross platform EventBus framework for iOS, Android, Windows Phone and Mac
- PCLStorage - PCL Storage provides a consistent, portable set of local file IO APIs for .NET, Windows Phone, Windows Store, Xamarin.iOS, Xamarin.Android, and Silverlight. This makes it easier to create cross-platform .NET libraries and apps.
- Filepicker-plugin - Simple cross-platform plug-in that allows Pick files, save files and open the archive application standards..
- CocoSharp - CocosSharp is an easy to use library for 2D games using C# and F#. It is a .NET port of the popular Cocos2D engine.
- UrhoSharp - UrhoSharp is a powerful 3D Game Engine for Xamarin and .NET developers.
- MonoGame - MonoGame is an efficient, flexible, cross platform API for developing 2D and 3D games.
- MR.Gestures - Handles all touch gestures in your Xamarin.Forms app. It uses a .NET like API in the PCL. No need for platform specific code.
- Splat - Splat aims to fix that, by providing a usable leaky abstraction above platform code. It is leaky, because it always provides an extension method ToNative() and FromNative(), which converts the abstraction to the platform-specific version.
- SkiaSharp - SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library (https://skia.org/).
- NGraphics - NGraphics is a cross platform library for rendering vector graphics on .NET.
- Xamarin bluetooth le - Xamarin and MvvMCross plugin for accessing the bluetooth functionality.
- BluetoothLE - Easy to use, cross platform, reactive BluetoothLE Plugin for Xamarin.
- MediaPlugin - Simple cross platform plugin to take photos and video or pick them from a gallery from shared code.
- Chafu - A photo browser and camera library for Xamarin.iOS. UIImagePickerController alternative, with cropping support, face detection and more.
- AltBeacon - Allows developers to create proximity aware applications utilizing iBeacons & geo fences.
- Estimote - Xamarin folks have prepared these components—wrappers around our native SDKs for iOS and Android:
- GeoLocator - Simple cross platform plugin to get GPS location including heading, speed, and more.
- FluentLayout - FluentLayout provides an easy, fluent API for creating constraint-based layouts in Xamarin.iOS.
- TZStackView - A back port for iOS 7 & 8 and drop in replacement of UIStackView for Xamarin.iOS.
- SlideOverKit - SlideOverKit allows developers to easily create awesome Slideovers in Xamarin.Forms.
- EasyLayout - EasyLayout makes writing auto layout code in Xamarin.iOS easier.
- EasyLayout.Droid - EasyLayout.Droid makes it easier to read, write, and maintain relative layouts in Xamarin.Android.
- Xamarin.Flex - Flexible box layout system written in C, designed to be easy to consume from other languages
- JsonLocalization - MvvmCross - The JsonLocalization plugin provides a number of support classes to help load Json language text files for internationalization (i18n).
- I18N-Portable - Simple and cross platform internationalization/translations for Xamarin and .NET.
- Xamarin-Logger - Simple plugin for logging events in your Xamarin.Forms applications.
- Genesis.Logging - Genesis.Logging is a simple library for application authors (not library authors) to facilitate performance-focussed logging.
- ExternalMaps-Plugin - Open external maps application to navigate to a specific geolocation or address.
- Google-Maps-iOS - Add custom markers, styled maps, 3D buildings, indoor floor plans, street view, satellite imagery, and more to your iOS app.
- UnifiedMaps - A platform independent map implementation for Xamarin.Forms designed from the ground up with MVVM in mind.
- Math.NET - Math.NET Numerics aims to provide methods and algorithms for numerical computations in science, engineering and every day use.
- XamarinMediaManager - Cross platform Xamarin plugin to play Media from PCL
- gifimageviewandroid - Xamarin.Android ImageView that handles Animated GIF images!
- ImageCirclePlugin - Simple but elegant way of display circle images in your Xamarin.Forms projects
- SimpleCropView - Image cropping library for Xamarin Android
- QRchestra - QR Code implementation.
- ZXING.net - ZXing.Net.Mobile is a C#/.NET Barcode Scanning Library
-
Xamarin.Forms.PDFViewer - PDF Viewer custom renderers for Xamarin.Forms using Radaee PDF SDK and android-pdfview
-
ZoomingPdfViewer - PThis is a port of Apple's ZoomingPDFViewer
-
mTouch-PDFReader - mTouch-PDFReader is a Xamarin iOS library to display PDF documents on iPad and iPhone.
-
PDFNet - PDFNet SDK is an industry-leading, high-quality document solution powering mobile, server, desktop, web, and cloud-based apps.
-
XFiniumPDF -Cross platform PDF development. Add PDF capabilites to your iOS, Android or Windows Phone applications.
-
APITron - Universal PDF creation and manipulation library, can be used to read, merge, edit and sign PDFs. Supports PDF content extraction, including text and images.
-
PSPDFKit - A high-level PDF framework, includes PDF viewer, annotations and forms support, indexed full-text search and document editor. Official bindings are available.
- AndroidStreamingAudio - Series of Samples of streaming audio in background service in Xamarin.Android
- XamarinMediaManager - Cross platform Xamarin plugin to play Media from PCL
Also see push notifications
- JSQMessagesViewController - JSQMessagesViewController provides a gorgeous and feature rich iOS view controller that makes adding messaging to your app easy.
- SlackTextViewController - A drop-in UIViewController subclass with a growing text input view and other useful messaging features.
- Polly - Polly is a .NET resilience and transient-fault-handling library that allows developers to express policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation, and Fallback in a fluent and thread-safe manner.
- refit - The automatic type-safe REST library for Xamarin and .NET.
- ModernHttpClient - This library brings the latest platform-specific networking libraries to Xamarin applications via a custom HttpClient handler.
- Connectivity - This library brings the latest platform-specific networking libraries to Xamarin applications via a custom HttpClient handler.
- Fusillade - Fusillade helps you to write more efficient code in mobile and desktop applications written in C#. Its design goals and feature set are inspired by Volley as well as Picasso.
- Messaging Plugin - The Messaging plugin makes it possible to make a phone call, send a sms or send an e-mail using the default messaging applications on the different mobile platforms.
- MvvmCross email plugin -The Email plugin provides a cross-platform implementation for sending emails.
- PushNotification -Simple cross platform plugin to handle push notification events such as registering, unregistering and messages arrival on Android, iOS, UWP platforms.
- PushSharp - PushSharp is a server-side library for sending Push Notifications to iOS/OSX (APNS), Android/Chrome (GCM), Windows/Windows Phone, Amazon (ADM) and Blackberry devices!
Most of these are paid services, some have free tiers.
- Urban Airship
- Azure - Microsoft Azure platformr.
- HelpShift - in-app push notification and messaging sdk
- CSVHelper - A library for reading and writing CSV files. Extremely fast, flexible, and easy to use. Supports reading and writing of custom class objects.
- KBCsv - KBCsv is an efficient, easy to use .NET parsing and writing library for the CSV (comma-separated values) format.
- JSON.net - Popular high-performance JSON framework for .NET
Download
- HTML Agility pack -This is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT
- PassKitSharp - PassKitSharp is a C#/.NET Library for Reading and Writing Apple PassKit files.
- JudoPay - Payments SDK for Xamarin.Forms.
- Stripe - Mobile Payments built for Developers
- Xamarin.inAppBilling - Component to assist in adding In-App Billing to a Xamarin.Android application via Google Play Services.
- PayPal.Forms - PayPal Plugin for Xamarin.Forms
- PermissionsPlugin - Simple cross platform plugin to request and check permissions.
- ReactiveUI - A MVVM framework that integrates with the Reactive Extensions for .NET to create elegant, testable User Interfaces that run on any mobile or desktop platform.
- Genesis.Observables - Genesis.Observables is a simple library that provides commonly used, pre-canned observables.
- Genesis.GenericSerialDisposable - Genesis.GenericSerialDisposable adds a generic version of Reactive Extensions' SerialDisposable class.
- Genesis.RetryWithBackoff - Genesis.RetryWithBackoff adds a
RetryWithBackoff
extension method to observables. As the name suggests, theRetryWithBackoff
method makes it simple to retry a failing observable with a variable delay between retries. - Genesis.RepeatWithBackoff - Genesis.RepeatWithBackoff adds a
RepeatWithBackoff
extension method to observables. As the name suggests, theRepeatWithBackoff
method makes it simple to repeat a failing observable with a variable delay between repetitions. - Genesis.WindowScan - Genesis.WindowScan adds a
WindowScan
extension method to observables. This allows you to scan a time-boxed window if items. As items arrive on the source, youradd
function will be called. As items fall outside the window, yourremove
function will be called. - BluetoothLE - Easy to use, cross platform, reactive BluetoothLE Plugin for Xamarin.
- Xamarin.Auth - Xamarin.Auth helps you authenticate users via standard authentication mechanisms (e.g. OAuth 1.0 and 2.0), and store user credentials.
- PCLCrypto - PCLCrypto provides cryptographic APIs over algorithms implemented by the platform, including exposing them to portable libraries.
- SecureStorage - The plugin can be used to securely store sensitive data strings such as password, session token, credit card number etc.
- xUnit - xUnit.net is a free, open source, community-focused unit testing tool for the .NET Framework. xUnit has test runners available for Android and iOS. Greg Shackles has written a nice tutorial to help you get started.
- NUnitLite - A lightweight testing framework for .NET, based on the ideas in NUnit and providing a subset of its features. NUnitLite is distributed with Xamarin to allow unit-testing of applications build with Xamarin.
- PCLMock - A simple mocking framework in a PCL.
- Xamarin UITest - Introducing Xamarin.UITest, an Automated UI Acceptance Testing framework based on Calabash that allows programmers to write and execute tests in C# and NUnit that validate the functionality of iOS and Android Apps.
- userdialogs - A cross platform library that allows you to call for standard user dialogs from a shared/portable library, Actionsheets, alerts, confirmations, loading, login, progress, prompt, toast... async just for fun.
- FoldingCell - FoldingCell is an expanding content cell inspired by folding paper material and created by Ramotion Inc.
- FormsPinView - PIN keyboard for Xamarin.Forms.
- Rg.Plugins.Popup - The plugin allows you to open any page as a popup in Xamarin.Forms.
- Tab Badge - Xamarin Forms bindable tab badges. Badges are small numbers/chars that can indicate new items on the tab page.
- SGTabbedPager - A port of SGViewPager for Xamarin.iOS. Provides ViewPagerIndicator like tabs to iOS.
- WeeklyXamarin - Hand-picked round up of the best Xamarin development links every week. Curated by Geoffrey Huntley and published every Friday. Free.
- Planet Xamarin - An aggregator of content from Xamarin Community members. Why subscribe individually when you can subscribe to one convenient RSS feed? If RSS isn't your thing, follow our Twitter or Facebook accounts which are automatically updated with the latest content from the community.
- Xamarin Podcast (iTunes, Google Play Music) - Knowing the latest in .NET, C#, and Xamarin is easier than ever with the Xamarin Podcast! Covers both Xamarin-specific topics (like What's New in Xamarin.Forms and general mobile development topics, like authentication and identity management.
- MergeConflict - A weekly discussion on all things development, technology, & more.
- Gone Mobile - Gone Mobile is a podcast discussing the latest in mobile development, with a healthy bias towards Xamarin technologies. The podcast covers in-depth topics with guests ranging from Android, iOS, Windows Phone & Store development to mobile marketing and design, as well as other mobile or not so mobile related technologies.
- Xamarin In Action - Creating Native Cross-Platform Mobile Apps
- Mastering Xamarin.Forms - Patterns and practices for building mobile apps with Xamarin.Forms
- See the guide
- Distributed under the MIT license. See LICENSE for more information.