# BusinessCard Roadmap This document tracks planned features and their implementation status. ## ✅ Completed Features ### High Priority (Core User Value) - [x] **Dynamic contact fields system** - Unlimited fields with custom ordering - New `ContactField` SwiftData model for flexible field storage - `ContactFieldType` struct with 30+ field types across 8 categories - Drag-to-reorder support with haptic feedback - Sheet-based field editor with type-specific keyboards and placeholders - Multiple fields of the same type allowed (e.g., multiple emails) - [x] **Custom social icons** - Brand-colored icons from asset catalog - Custom `.symbolset` assets for all major platforms - LinkedIn, X/Twitter, Instagram, Facebook, TikTok, Threads - Bluesky, Mastodon, Reddit, Twitch, YouTube, Discord - GitHub, Telegram, Slack, Matrix, Patreon, Ko-fi - Proper `Image()` vs `Image(systemName:)` handling via `iconImage()` helper - [x] **Extended name fields** - Prefix, maiden name, pronouns - Expandable name section in editor - Prefix (Dr., Mr., Mrs., etc.) - Maiden name with parentheses formatting in display name - Preferred name with quotes formatting - Pronouns displayed next to name on card - [x] **Accreditations as tags** - Tag bubble UI with inline editing - Horizontal ScrollView of tag chips - Tap to edit, check to save, x to delete - Comma-separated storage for vCard compatibility - [x] **Clickable contact fields** - Deep linking to apps and actions - Email → mailto: - Phone → tel: - Social links → app deep links or web fallback - Address → Maps - Website → Safari - [x] **More card fields** - Social media links, custom URLs, pronouns, bio - Added: pronouns, bio, LinkedIn, Twitter/X, Instagram, Facebook, TikTok, GitHub - Added: 2 custom link slots (title + URL) - vCard payload includes social profiles - [x] **Profile photo support** - PhotosPicker integration - Added PhotosPicker to CardEditorView - Photos stored as Data with `@Attribute(.externalStorage)` - Photos display on cards, in editor preview, and contact avatars - [x] **Contact notes/annotations** - Add notes, tags, follow-up reminders - Added: notes field (free text) - Added: tags (comma-separated, displayed as chips) - Added: follow-up date with overdue indicators - Added: "where you met" field - Added: email and phone for received contacts - Full ContactDetailView for editing annotations - [x] **Save received cards** - Scan a QR to add someone else's card - Added QRScannerView with camera integration - Parses vCard data from scanned QR codes - Creates contacts marked as `isReceivedCard` - "Scan Card" button in Contacts toolbar --- ## 🔲 Planned Features ### Medium Priority (Differentiation) - [ ] **Email signature export** - Generate HTML signature - Generate professional HTML email signature from card data - Copy to clipboard or share - Multiple signature styles/templates - [ ] **Card analytics** - View/scan counts - Would require backend infrastructure - Track when cards are viewed/scanned - Show analytics dashboard - [ ] **Virtual meeting background** - Generate image with QR - Create background image with card info + QR code - Export for Zoom, Teams, etc. - Multiple background styles ### Lower Priority (Advanced) - [ ] **Real NFC** - Write card to NFC tags - Requires NFC entitlements - Requires physical NFC cards/tags - Write vCard data to NFC - [ ] **Apple Wallet** - Add card to Wallet - Requires PKPass generation - May need backend for signing passes - Display QR in Wallet app - [ ] **Team features** - Shared team cards - Requires user accounts - Requires backend infrastructure - Team branding, shared templates --- ## 🔧 Technical Improvements ### Completed - [x] **SwiftData persistence** with CloudKit sync - [x] **Bedrock integration** - Design system, QR code generator - [x] **iOS-Watch sync** via App Groups - [x] **Unit tests** for models, stores, and new features - [x] **Fixed data persistence** - Removed aggressive store deletion on startup - [x] **Custom symbol assets** - Brand icons in asset catalog with proper rendering - [x] **Drag-and-drop reordering** - Using `draggable` and `dropDestination` modifiers ### Planned - [ ] **WidgetKit extension** - Real home screen widgets - [ ] **Spotlight indexing** - Search cards from iOS search - [ ] **Siri shortcuts** - "Share my work card" - [ ] **App Intents** - iOS 17+ action button support - [ ] **Migrate legacy properties** - Move all cards to new ContactField array --- ## 📝 Notes - Features marked with 🔲 are planned but not yet implemented - Features requiring backend are deferred until infrastructure is available - Priority may shift based on user feedback - Legacy contact properties (email, phone, linkedIn, etc.) maintained for backward compatibility --- *Last updated: January 8, 2026*