Focused Swift previews and permission checks for the services your app uses.
Included in npm 2.8.0 and later.
EventKit · EventKitUICalendar
Use system event editing for user-confirmed creation without broad access; use explicit full access only for reading/editing existing events.
Operations: authorize, calendars, fetch, create, update, delete, alarms
Permissions: NSCalendarsFullAccessUsageDescription for read/write; NSCalendarsWriteOnlyAccessUsageDescription for write-only
Verification: iOS 17 authorization APIs; legacy keys only for older OS paths. Simulator account data differs from device. Recurring edits require an explicit span; do not delete silently. Device verification required before shipping.
Apple framework documentation
EventKitReminders
Request reminders access separately from calendars; let the user choose a writable list.
Operations: authorize, lists, create, due-date, priority, notes, complete, recurrence
Permissions: NSRemindersFullAccessUsageDescription
Verification: Verify device accounts, due-date time zones and recurrence. No write-only reminders authorization. Device verification required before shipping.
Apple framework documentation
Contacts · ContactsUIContacts
Prefer CNContactPickerViewController for user-selected contacts. Direct store access must respect limited authorization.
Operations: pick, authorize, fetch, search, create, update, thumbnail
Permissions: NSContactsUsageDescription for direct store access only
Verification: Limited access does not imply an empty address book. Do not escalate to full access automatically. Test limited contacts on an iOS 18+ device. Device verification required before shipping.
Apple framework documentation
PhotosUI · PhotosPhotos
Use PhotosPicker for import without broad permission. Request add-only access only when saving.
Operations: pick-multiple, filter, load-transferable, save-image, save-video
Permissions: NSPhotoLibraryAddUsageDescription for add-only; NSPhotoLibraryUsageDescription for read/write
Verification: Cloud-backed selections can fail or be cancelled; test offline and large media. Limited library access is a valid read/write authorization state. Device verification required before shipping.
Apple framework documentation
AVFoundation · UIKitCamera
Use a presented capture controller for still photos; use AVFoundation for custom video pipelines and VisionKit/metadata output for scanning.
Operations: authorize, capture-photo, switch-camera, video-guidance, barcode-guidance
Permissions: NSCameraUsageDescription; NSMicrophoneUsageDescription only for audio recording
Verification: Camera availability must be checked at runtime. Simulator cannot verify hardware capture. Video and barcode support are guidance routes, not generated custom capture pipelines. Device verification required before shipping.
Apple framework documentation
MapKit · CoreLocationMaps
MapKit coordinates, search and opening Maps do not require device-location access. Keep location authorization separate.
Operations: map, annotations, search, directions, open-maps, current-location-guidance
Permissions: NSLocationWhenInUseUsageDescription only when accessing device location
Verification: Search/directions require network; Simulator coordinates do not prove device accuracy. Maps routing UI remains system-controlled. Device verification required before shipping.
Apple framework documentation
SwiftUI · UniformTypeIdentifiersFiles
Use fileImporter/fileExporter and FileDocument; balance security-scoped access with defer.
Operations: import, export, security-scope, pdf
Permissions: No broad-data permission for the supplied system UI workflow.
Verification: Test real document providers, cancellation and unavailable files on device. Provider access is user-mediated, not unrestricted filesystem access. Device verification required before shipping.
Apple framework documentation
SwiftUI · UIKitShare Sheet
Use ShareLink for Transferable values or UIActivityViewController for mixed items. AirDrop is a system destination.
Operations: text, url, image, pdf, file
Permissions: No broad-data permission for the supplied system UI workflow.
Verification: User chooses the destination and confirms. There is no public direct AirDrop-send API. Available destinations vary by device, installed apps and restrictions. Device verification required before shipping.
Apple framework documentation
AppIntentsSiri and Shortcuts
Expose a real app action through AppIntent; use AppEntity/EntityQuery for app-owned data and reuse the App Intents reviewer.
Operations: intent, parameters, app-shortcuts, entity-guidance, deep-link-guidance
Permissions: No broad-data permission for the supplied system UI workflow.
Verification: A generic scaffold cannot infer your entity store or app navigation. Device testing is needed for Siri discovery; an AppIntent does not grant data access or require the legacy Siri entitlement. Device verification required before shipping.
Apple framework documentation
UserNotificationsNotifications
Request authorization in context and schedule local notifications; handle responses through a retained delegate.
Operations: authorize, status, schedule, categories, actions, deep-link
Permissions: No broad-data permission for the supplied system UI workflow.
Verification: Remote push additionally needs aps-environment, provisioning and a provider; local notifications do not. Test foreground/background actions and denied permissions on device. Delivery timing is controlled by iOS. Device verification required before shipping.
Apple framework documentation