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.
Frameworks
.NET MAUI
Features
Section titled “Features”- Full CRUD — create, read, update, and delete device contacts
- LINQ queries —
IQueryable<Contact>with native translation on both platforms - MAUI permissions —
ContactPermissionclass for requesting read/write access - Permission extensions —
RequestPermissionsAsync()andCheckPermissionStatusAsync()onIContactStore - AOT compatible — trimmer and AOT safe
- Dependency injection — register with a single
AddContactStore()call
Platforms
Section titled “Platforms”| Platform | Minimum Version |
|---|---|
| Android | API 24 |
| iOS | 15.0 |
Quick Example
Section titled “Quick Example”// Request permissionsvar status = await contactStore.RequestPermissionsAsync();
// Get all contactsvar contacts = await contactStore.GetAll();
// Query with LINQvar results = contactStore.Query() .Where(c => c.GivenName.Contains("John")) .ToList();
// Create a contactvar contact = new Contact { GivenName = "John", FamilyName = "Doe" };contact.Phones.Add(new ContactPhone("555-1234", PhoneType.Mobile));string id = await contactStore.Create(contact);
// Updatecontact.GivenName = "Jane";await contactStore.Update(contact);
// Deleteawait contactStore.Delete(id);AI Coding Assistant
Section titled “AI Coding Assistant”Step 1 — Add the marketplace:
claude plugin marketplace add shinyorg/skills Step 2 — Install the plugin:
claude plugin install shiny-maui@shiny Coming soon — Copilot plugin install instructions will be added here.
Next Steps
Section titled “Next Steps”- Permissions — MAUI permission classes and status handling
- Querying — LINQ queries with native translation
- Release Notes — Version history