/awesome-xamarin

A curated list of awesome Xamarin iOS/Android and Xamarin Forms bindings, ports, frameworks and much more!

Awesome Xamarin

Awesome PRs Welcome

About

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.

How to Use

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

Content


Getting Started

Libraries And Frameworks

Analytics

  • Raygun - Crash reporting and real user monitoring. androidioswindows

Animation

  • Xamarin.Animations - Libraries tends to make view animation easier for common scenarios like fade or scale entrance animations. androidioswindows
  • 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. alt tag
  • DCAnimationKit - A collection of animations for Xamarin iOS 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. androidios

Architecture

  • MvvmCross - Extensive MVVM framework with plugins. androidioswindows
  • MVVM Light - Lightweight MVVM framework. androidioswindows
  • 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). androidioswindows

Authentication

  • Xamarin.Auth - Xamarin.Auth helps you authenticate users via standard authentication mechanisms (e.g. OAuth 1.0 and 2.0), and store user credentials. androidios

  • Auth0 - Add authentication with different sources, either social like Google, Facebook, Twitter, or enterprise like WAAD, Google Apps, AD, ADFS or any SAML Provider. androidios

  • 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). androidioswindows

Cache

  • 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.androidioswindows
  • FFImageLoading - Library to load images quickly & easily on Xamarin.iOS, Xamarin.Android, Xamarin.Forms and Windows (UWP, WinRT).androidioswindows

Charts

  • 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. androidioswindows
  • 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. androidioswindows
  • Charts - A Xamarin port by Lucas Teixeira for Charts (ios-charts) by Daniel Cohen Gindi, inspired by Philipp Jahoda alt tag
  • Oxyplot - A cross-platform plotting library for .NET androidioswindows
  • Telerik - Feature-rich, intuitive and easy to use data visualization control featuring a large collection of chart series with smooth interaction and zooming. androidioswindows
  • 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 bindingsandroidios
  • MPAndroidChart - A Xamarin binding for MPAndroidChart by Philipp Jahoda. android
  • Microcharts - A SkiaSharp based library to create cross-platform charts. androidioswindows

Code Quality

  • Xamarin profiler - Use it to find memory leaks, resolve performance bottlenecks, and add polish to your apps before getting them out the door. androidios
  • Firebase - Analytics and much more. androidioswindows
  • Hockeyapp - Analytics and crash reporting androidioswindows

Color

  • 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.

Database

  • 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.androidioswindows
  • Realm - The alternative to SQLite: Simple, modern and fast.androidioswindows
  • Couchbase Lite - Couchbase document store liteandroidioswindows
  • sqlite-net - SQLite-net is an open source, minimal library to allow .NET and Mono applications to store data in SQLite 3 databases.androidioswindows
  • 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.androidioswindows
  • Genesis.DataStore - Genesis.DataStore is a library that makes it simpler to implement a SQLite-based, versioned data store for your application.androidioswindows

Data Structures / Algorithms

Date & Time

  • Noda.Time - A better date and time API for .NETandroidioswindows

EventBus

  • MessageBus - Cross platform EventBus framework for iOS, Android, Windows Phone and Macandroidioswindows

Files

  • 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.androidioswindows
  • Filepicker-plugin - Simple cross-platform plug-in that allows Pick files, save files and open the archive application standards..androidioswindows

Games

  • 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. androidioswindows
  • UrhoSharp - UrhoSharp is a powerful 3D Game Engine for Xamarin and .NET developers. androidioswindows
  • MonoGame - MonoGame is an efficient, flexible, cross platform API for developing 2D and 3D games.androidioswindows

Gesture

  • 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.androidioswindows

Graphics

  • 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.androidioswindows
  • SkiaSharp - SkiaSharp is a cross-platform 2D graphics API for .NET platforms based on Google's Skia Graphics Library (https://skia.org/). androidioswindows
  • NGraphics - NGraphics is a cross platform library for rendering vector graphics on .NET.androidioswindows

Hardware

Bluetooth

  • Xamarin bluetooth le - Xamarin and MvvMCross plugin for accessing the bluetooth functionality. androidioswindows
  • BluetoothLE - Easy to use, cross platform, reactive BluetoothLE Plugin for Xamarin.androidios

Camera

  • MediaPlugin - Simple cross platform plugin to take photos and video or pick them from a gallery from shared code.androidioswindows
  • Chafu - A photo browser and camera library for Xamarin.iOS. UIImagePickerController alternative, with cropping support, face detection and more. ios

Beacons

  • AltBeacon - Allows developers to create proximity aware applications utilizing iBeacons & geo fences.android
  • Estimote - Xamarin folks have prepared these components—wrappers around our native SDKs for iOS and Android:androidios

Location

  • GeoLocator - Simple cross platform plugin to get GPS location including heading, speed, and more. androidioswindows

Other Hardware

Layout

  • FluentLayout - FluentLayout provides an easy, fluent API for creating constraint-based layouts in Xamarin.iOS. alt tag
  • TZStackView - A back port for iOS 7 & 8 and drop in replacement of UIStackView for Xamarin.iOS. ios
  • SlideOverKit - SlideOverKit allows developers to easily create awesome Slideovers in Xamarin.Forms. androidioswindows
  • EasyLayout - EasyLayout makes writing auto layout code in Xamarin.iOS easier. ios
  • EasyLayout.Droid - EasyLayout.Droid makes it easier to read, write, and maintain relative layouts in Xamarin.Android. android
  • Xamarin.Flex - Flexible box layout system written in C, designed to be easy to consume from other languagesandroidios

Localization

  • JsonLocalization - MvvmCross - The JsonLocalization plugin provides a number of support classes to help load Json language text files for internationalization (i18n). androidioswindows
  • I18N-Portable - Simple and cross platform internationalization/translations for Xamarin and .NET. androidioswindows

Logging

  • Xamarin-Logger - Simple plugin for logging events in your Xamarin.Forms applications. androidioswindows
  • Genesis.Logging - Genesis.Logging is a simple library for application authors (not library authors) to facilitate performance-focussed logging.androidioswindows

Maps

  • ExternalMaps-Plugin - Open external maps application to navigate to a specific geolocation or address. androidioswindows
  • Google-Maps-iOS - Add custom markers, styled maps, 3D buildings, indoor floor plans, street view, satellite imagery, and more to your iOS app. alt tag
  • UnifiedMaps - A platform independent map implementation for Xamarin.Forms designed from the ground up with MVVM in mind. androidios

Math

  • Math.NET - Math.NET Numerics aims to provide methods and algorithms for numerical computations in science, engineering and every day use. androidioswindows

Media

Audio

GIF

Image

  • ImageCirclePlugin - Simple but elegant way of display circle images in your Xamarin.Forms projects androidioswindows
  • SimpleCropView - Image cropping library for Xamarin Android android

Media Processing

  • QRchestra - QR Code implementation. alt tag
  • ZXING.net - ZXing.Net.Mobile is a C#/.NET Barcode Scanning Library androidioswindows

PDF

  • Xamarin.Forms.PDFViewer - PDF Viewer custom renderers for Xamarin.Forms using Radaee PDF SDK and android-pdfview android

  • ZoomingPdfViewer - PThis is a port of Apple's ZoomingPDFViewer alt tag

  • mTouch-PDFReader - mTouch-PDFReader is a Xamarin iOS library to display PDF documents on iPad and iPhone. alt tag

  • 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.android

  • 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. androidios

  • PSPDFKit - A high-level PDF framework, includes PDF viewer, annotations and forms support, indexed full-text search and document editor. Official bindings are available. androidios

Streaming

Video

Messaging

Also see push notifications

  • JSQMessagesViewController - JSQMessagesViewController provides a gorgeous and feature rich iOS view controller that makes adding messaging to your app easy. alt tag
  • SlackTextViewController - A drop-in UIViewController subclass with a growing text input view and other useful messaging features. alt tag

Networking

  • 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. androidioswindows
  • refit - The automatic type-safe REST library for Xamarin and .NET. androidioswindows
  • ModernHttpClient - This library brings the latest platform-specific networking libraries to Xamarin applications via a custom HttpClient handler. androidioswindows
  • Connectivity - This library brings the latest platform-specific networking libraries to Xamarin applications via a custom HttpClient handler. androidioswindows
  • 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. androidioswindows

Email

  • 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. androidioswindows
  • MvvmCross email plugin -The Email plugin provides a cross-platform implementation for sending emails. androidioswindows

Notifications

Push Notifications

  • PushNotification -Simple cross platform plugin to handle push notification events such as registering, unregistering and messages arrival on Android, iOS, UWP platforms. androidioswindows
  • 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! androidioswindows
Push Notification Providers

Most of these are paid services, some have free tiers.

Parsing

CSV

  • CSVHelper - A library for reading and writing CSV files. Extremely fast, flexible, and easy to use. Supports reading and writing of custom class objects. androidioswindows
  • KBCsv - KBCsv is an efficient, easy to use .NET parsing and writing library for the CSV (comma-separated values) format. androidioswindows

JSON

  • JSON.net - Popular high-performance JSON framework for .NET

Download

HTML

  • HTML Agility pack -This is an agile HTML parser that builds a read/write DOM and supports plain XPATH or XSLT androidioswindows

Passbook

  • PassKitSharp - PassKitSharp is a C#/.NET Library for Reading and Writing Apple PassKit files. alt tag

Payments

  • JudoPay - Payments SDK for Xamarin.Forms. alt tag
  • Stripe - Mobile Payments built for Developers androidios
  • Xamarin.inAppBilling - Component to assist in adding In-App Billing to a Xamarin.Android application via Google Play Services.android
  • PayPal.Forms - PayPal Plugin for Xamarin.Forms androidios

Permissions

Reactive Programming

  • 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. androidioswindows
  • Genesis.Observables - Genesis.Observables is a simple library that provides commonly used, pre-canned observables.androidioswindows
  • Genesis.GenericSerialDisposable - Genesis.GenericSerialDisposable adds a generic version of Reactive Extensions' SerialDisposable class.androidioswindows
  • Genesis.RetryWithBackoff - Genesis.RetryWithBackoff adds a RetryWithBackoff extension method to observables. As the name suggests, the RetryWithBackoff method makes it simple to retry a failing observable with a variable delay between retries.androidioswindows
  • Genesis.RepeatWithBackoff - Genesis.RepeatWithBackoff adds a RepeatWithBackoff extension method to observables. As the name suggests, the RepeatWithBackoff method makes it simple to repeat a failing observable with a variable delay between repetitions.androidioswindows
  • 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, your add function will be called. As items fall outside the window, your remove function will be called.androidioswindows
  • BluetoothLE - Easy to use, cross platform, reactive BluetoothLE Plugin for Xamarin.androidios

Security

  • Xamarin.Auth - Xamarin.Auth helps you authenticate users via standard authentication mechanisms (e.g. OAuth 1.0 and 2.0), and store user credentials. androidios

Encryption

  • PCLCrypto - PCLCrypto provides cryptographic APIs over algorithms implemented by the platform, including exposing them to portable libraries. androidioswindows
  • SecureStorage - The plugin can be used to securely store sensitive data strings such as password, session token, credit card number etc. androidioswindows

Testing

TDD / BDD

  • 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. androidios
  • 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. androidioswindows
  • PCLMock - A simple mocking framework in a PCL.androidioswindows

A/B Testing

UI Testing

  • 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. androidioswindows

Font

UI

  • 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. androidioswindows

Activity Indicator

Alerts

App Introduction

Badge

Button

Calendar

Card View

  • FoldingCell - FoldingCell is an expanding content cell inspired by folding paper material and created by Ramotion Inc. android

Form & Settings

Keyboard

Label

Menu

Modal Transition

Navigation Bar / Toolbar

PickerView

Popup

  • Rg.Plugins.Popup - The plugin allows you to open any page as a popup in Xamarin.Forms. androidioswindows

Pull to Refresh

Rating Stars

ScrollView

Slider

Splash View

Stepper

Switch

Tab Bar

  • Tab Badge - Xamarin Forms bindable tab badges. Badges are small numbers/chars that can indicate new items on the tab page. androidios
  • SGTabbedPager - A port of SGViewPager for Xamarin.iOS. Provides ViewPagerIndicator like tabs to iOS. ios

Table View / Collection View

Tag

TextField & TextView

Web View

URL Scheme

Utility

VR

Walkthrough / Intro / Tutorial

WebSocket

GCD

Project setup

Dependency / Package Manager

Tools

Rapid Development

Injection

Deployment / Distribution

App Store

Style Guides

Good Websites

News, Blogs and more

UIKit references

Forums and discuss lists

Tutorials and Keynotes

iOS UI Template

Prototyping

Newsletters

  • WeeklyXamarin - Hand-picked round up of the best Xamarin development links every week. Curated by Geoffrey Huntley and published every Friday. Free.

Medium

Social Media

  • 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.

Twitter

Facebook Groups

Podcasts

  • 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.

Books

Contributing and License

  • See the guide
  • Distributed under the MIT license. See LICENSE for more information.