Skip to content


Switch branches/tags

Name already in use

A tag already exists with the provided branch name. Many Git commands accept both tag and branch names, so creating this branch may cause unexpected behavior. Are you sure you want to create this branch?

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Settings Plugin for Xamarin And Windows

Preferences/Settings are part of .NET MAUI, please use this API going foward.

Create and access settings from shared code across all of your apps!


Get started by reading through the Settings Plugin documentation.

Looking to store credentials and sensitive information? Use Xamarin.Essential's Secure Storage


The Future: Xamarin.Essentials & .NET MAUI

I have been working on Plugins for Xamarin for a long time now. Through the years I have always wanted to create a single, optimized, and official package from the Xamarin team at Microsoft that could easily be consumed by any application. The time is now with Xamarin.Essentials, which offers over 50 cross-platform native APIs in a single optimized package. I worked on this new library with an amazing team of developers and I highly highly highly recommend you check it out.

I will continue to work and maintain my Plugins, but I do recommend you checkout Xamarin.Essentials to see if it is a great fit your app as it has been for all of mine!

Xamarin.Essentials Migration

This plugin and Xamarin.Essentials store information in the same exact location :). This means you can seemlessly swap out this plugin for Xamarin.Essentials and not lose any data. Checkout my blog for more info:


Platform Support

Platform Version
Xamarin.iOS iOS 7+
Xamarin.Android API 15+
Windows 10 UWP 10+
Xamarin.Mac All
Xamarin.tvOS All
Xamarin.watchOS All
.NET Framework 4.5+
.NET 6.0+
Tizen 4.0+
.NET for iOS iOS 10+
.NET for Android API 21+
Windows App SDK (WinUI3) 10+
.NET for Mac Catalyst All
.NET for Mac All

Settings Plugin or Xamarin.Forms App.Properties

I get this question a lot, so here it is from a recent issue opened up. This plugin saves specific properties directly to each platforms native settings APIs (NSUserDefaults, SharedPreferences, etc). This ensures the fastest, most secure, and reliable creation and editing settings per application. Additionally, it works with any Xamarin application, not just Xamarin.Forms.

App.Current.Properties actually serializes and deserializes items to disk as you can see in the implementation.

To me that isn't as reliable as saving direct to the native platforms settings.


Thanks you for your interest in contributing to Settings plugin! In this section we'll outline what you need to know about contributing and how to get started.

Bug Fixes

Please browse open issues, if you're looking to fix something, it's possible that someone already reported it. Additionally you select any up-for-grabs items

Pull requests

Please fill out the pull request template when you send one. Run tests to make sure your changes don't break any unit tests. Follow these instructions to run tests -


  • Navigate to tests/Plugin.Settings.NUnitTest.iOS
  • Execute make run-simulator-tests


Execute ./ --target RunDroidTests from the project root


The MIT License (MIT) see License file

Want To Support This Project?

All I have ever asked is to be active by submitting bugs, features, and sending those pull requests down! Want to go further? Make sure to subscribe to my weekly development podcast Merge Conflict, where I talk all about awesome Xamarin goodies and you can optionally support the show by becoming a supporter on Patreon.