Client v5: BLE, BLE Hosting, HTTP, Jobs - Linux, MacOS, & Blazor Support! Full AOT, RX on BLE only & MANY other features! Power up!
Contact Store Releases
v5.2.0 - July 6, 2026
Section titled “v5.2.0 - July 6, 2026” BREAKING Feature
Shiny.Maui.ContactStore is now Shiny.Contacts
BREAKING Feature
Contacts now has a dependency on Shiny.Core which allows it to work without MAUI
Feature
Shiny.Contacts.Extensions.AI — new package exposing
IContactStore as Microsoft.Extensions.AI tool functions for LLM agents. Opt-in read/write allow-list via AddContactsAITools(b => b.AddContacts(ContactAICapabilities.ReadWrite)); generates search_contacts, get_contact, create_contact, update_contact, and delete_contact. AOT-compatible. See AI Tools. Fix
Bulk reads no longer load full-resolution photos —
GetAll() and Query() now populate only Thumbnail; decoding every contact’s full Photo into memory at once could OOM/jetsam-kill the app on a real device with many photo contacts. The full Photo is still available per-contact via GetById(). See Photos vs Thumbnails.v1.0 - March 24, 2026
Section titled “v1.0 - March 24, 2026” Feature
IContactStore interface — full CRUD operations for device contacts:
GetAll, GetById, Create, Update, Delete Feature
LINQ query support —
IQueryable<Contact> with native translation for Contains, StartsWith, EndsWith, Equals on name, phone, and email fields Feature
MAUI permissions —
ContactPermission class wrapping both READ_CONTACTS and WRITE_CONTACTS with Granted, Limited, and Denied states on Android Feature
Permission extensions —
RequestPermissionsAsync() and CheckPermissionStatusAsync() extension methods on IContactStore Feature Android
PermissionStatus.Limited — returned when only one of read/write is granted, enabling read-only or write-only scenarios Feature
GetFamilyNameFirstLetters — extension method returning sorted, distinct first letters of family names for alphabetical index UIs
Feature
Comprehensive contact model — phones, emails, addresses, dates, relationships, websites, organization, photos, and thumbnails
Feature iOS
Notes entitlement auto-detection — gracefully handles missing
com.apple.developer.contacts.notes entitlement at runtime Feature
DI registration —
builder.Services.AddContactStore() registers IContactStore as singleton Feature
AOT and trimmer compatible —
IsAotCompatible and EnableTrimAnalyzer enabled