Skip to content

Contact Store | Getting Started

A cross-platform .NET MAUI library for accessing device contacts on Android and iOS. Provides full CRUD operations, LINQ query support, MAUI permission classes, and dependency injection integration.

  • GitHub stars for shinyorg/contactstore
  • NuGet downloads for Shiny.Maui.ContactStore
Frameworks
.NET MAUI
  • Full CRUD — create, read, update, and delete device contacts
  • LINQ queriesIQueryable<Contact> with native translation on both platforms
  • MAUI permissionsContactPermission class for requesting read/write access
  • Permission extensionsRequestPermissionsAsync() and CheckPermissionStatusAsync() on IContactStore
  • AOT compatible — trimmer and AOT safe
  • Dependency injection — register with a single AddContactStore() call
PlatformMinimum Version
AndroidAPI 24
iOS15.0
Shiny.Maui.ContactStoreNuGet package Shiny.Maui.ContactStore
// Request permissions
var status = await contactStore.RequestPermissionsAsync();
// Get all contacts
var contacts = await contactStore.GetAll();
// Query with LINQ
var results = contactStore.Query()
.Where(c => c.GivenName.Contains("John"))
.ToList();
// Create a contact
var contact = new Contact { GivenName = "John", FamilyName = "Doe" };
contact.Phones.Add(new ContactPhone("555-1234", PhoneType.Mobile));
string id = await contactStore.Create(contact);
// Update
contact.GivenName = "Jane";
await contactStore.Update(contact);
// Delete
await contactStore.Delete(id);
claude plugin marketplace add shinyorg/skills
claude plugin install shiny-maui@shiny

Coming soon — Copilot plugin install instructions will be added here.

View shiny-maui Plugin