Xamarin Forms Plugins
The following plugins are quite helpful. Currently most of the plugins are used in sessions from Xamarin University or from Xamarin Forms Kickstarter but the list will be updated whenever something helpful comes along my way.
Connection Plugins
- Connectivity Plugin (Xam.Plugin.Connectivity)
Simple cross platform plugin to check connection status of mobile device, gather connection type, bandwidths, and more.
Add it to PCL and each platform-specifc project
Source code available on Github at https://github.com/jamesmontemagno/ConnectivityPlugin
Xam.Plugin.Connectivity available on nuget at https://www.nuget.org/packages/Xam.Plugin.Connectivity/ - Json.net
Prefer Json.net over built-in System.Json as it could be easily used in PCLs
Add it to PCL and each platform-specific project.
Homepage of Newtonsoft at http://www.newtonsoft.com/json
Source code available on Github at https://github.com/JamesNK/Newtonsoft.Json
Newtonsoft.Json available on nuget at https://www.nuget.org/packages/Newtonsoft.Json/ - Microsoft HTTP Client Libraries
Default System.Net.Http.HttpClient is supported by Windows, iOS and Android, but for PCL it’s necessary to add Microsofts plugin to the PCL project.
Microsoft.Net.Http available on nuget at https://www.nuget.org/packages/Microsoft.Net.Http/ - ModernHTTPClient
Increase performance for HTTP requests.
Add it to PCL and each platform-specific project.
Source code is available on Github at https://github.com/paulcbetts/ModernHttpClient
ModernHTTPClient is available on nuget at https://www.nuget.org/packages/modernhttpclient/ - Refit
The automatic type-safe REST library for Xamarin and .NET.
Source code is available on Github at https://github.com/paulcbetts/refit
Refit is available on nuget at https://www.nuget.org/packages/refit/ - Polly
Polly is a .NET 4.5 / .NET Standard 1.0 library that allows developers to express resilience and transient fault handling policies such as Retry, Circuit Breaker, Timeout, Bulkhead Isolation and Fallback in a fluent and thread-safe manner.
Source code is available on Github at https://github.com/App-vNext/Polly.
Polly is available on nuget at https://www.nuget.org/packages/polly.
Storage
- Settings Plugin
Read and Write Settings Plugin for Xamarin and Windows
Needs to be added to PCL and all client projects
Source code is available on Github at https://github.com/jamesmontemagno/SettingsPlugin
Xam.Plugins.Settings is available on nuget at https://www.nuget.org/packages/Xam.Plugins.Settings/ - SQLite
SQLite is a self-contained, high-reliability, embedded, full-featured, public-domain, SQL database engine. SQLite is the most used database engine in the world.
Needs to be added to PCL and all client projects. For Windows Projects it’s also necessary to add a reference to “Microsoft Visual C++ 2013 Runtime Package” otherwise a “FileNotFoundException” will be thrown when the database file is opened or created.
Source code is available at https://sqlite.org/.
SQLite-net-pcl is available on nuget at https://www.nuget.org/packages/sqlite-net-pcl/.- It’s not a Xamarin Plugin, but Datum Free is a cool (and full version Datum an even better) tool for having access to the SQLite DB on emulators on Mac.
- 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.
Source code is available at https://github.com/akavache/Akavache.
Akavache is available on nuget at https://www.nuget.org/packages/akavache/.
Device
- Device Information Plugin
Gather some data of the current device, e.g. Model, OS, Version, ID.
Source code is available on Github at https://github.com/jamesmontemagno/DeviceInfoPlugin
Xam.Plugin.DeviceInfo is available on nuget at https://www.nuget.org/packages/Xam.Plugin.DeviceInfo
Communication
- ACR 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
Source code is available on Github at https://github.com/aritchie/userdialogs.
ACR UserDialogs is available on nuget at https://www.nuget.org/packages/Acr.UserDialogs/. - Calendars API Plugin
API is in development for more than 2 years and currently still in beta, so if you want to add it via package manager don’t forget to check ‘include pre-releases’, otherwise you won’t find it. Even though it’s still in beta, it does already work fine for adding new calendar entries and setting reminders in the users calendar.
Source code is available on Github at https://github.com/TheAlmightyBob/Calendars
CClarke. Plugin. Calendars is available on nuget at https://www.nuget.org/packages/CClarke.Plugin.Calendars.
Media
- FFImageLoading
Image loading, caching & transforming library for Xamarin and Windows
Source code is available on Github at https://github.com/luberda-molinet/FFImageLoading
Xamarin. FFImageLoading. Forms is available on nuget at https://www.nuget.org/packages/Xamarin.FFImageLoading.Forms. - FlowListView
ListView derivative with flowing, grid-like columns support. Have a look at the examples on github to get an understanding. This plugin is created by Daniel Luberda, one of the two main authors of above mentioned FFImageLoading so he knows what to do when it comes to images….
Source code is available on Github at https://github.com/daniel-luberda/DLToolkit.Forms.Controls/tree/master/FlowListView
DLToolkit. Forms. Controls. FlowListView is available on nuget at https://www.nuget.org/packages/DLToolkit.Forms.Controls.FlowListView/
Other tools
Here are some other tools which are quite helpful:
- AppCenter
Visual Studio App Center brings together multiple services commonly used by mobile developers into an integrated cloud solution. Developers use App Center to Build, Test, and Distribute applications. Once the app’s deployed, developers monitor the status and usage of the app using the Analytics and Diagnostics services, and engage with users using the Push service. - FastLane.Tools
fastlane is the tool to release your iOS and Android app. It handles all tedious tasks, like generating screenshots, dealing with code signing, and releasing your application. - XAML Styler
XAML Styler is a visual studio extension that formats XAML source code based on a set of styling rules. This tool can help you/your team maintain a better XAML coding style as well as a much better XAML readability.
Other plugins are available at https://www.nuget.org/profiles/PluginsForXamarin.