## Context Gap analysis comparing the [Figma Changelog v61](https://www.figma.com/design/ltqvnKiejWj0JQiqtDf2JJ/Bitkit-Wallet?node-id=40405-215203) against the current iOS codebase. Mirrors the Android tracking issue (synonymdev/bitkit-android#970) but scoped to iOS state — many Profile/Contacts/Pubky screens already landed in iOS, so this list focuses on what is still pending or needs a v61 polish/verification pass. Sibling iOS tracking issues — link to and update those rather than duplicating: - #567 — Widgets intro + add-widget grid - #566 — Compact widget support in app - #516 — Prior pass (v60), closed for reference ## Pending Changes ### Updated Profile and Contacts (pubky integration) All major views have shipped in iOS. This pass is a v61 parity check — confirm copy, layout, and flows match the Figma frames. - [ ] Refined copy for profile onboarding frame (`ProfileIntroView`) - [ ] Onboarding choice: create profile vs import via Pubky Ring (`PubkyChoiceView`) - [ ] Profile import view after Pubky Ring auth — import all vs select (`PubkyRingAuthView` flow) - [ ] Contacts selection view for import (`ContactImportSelectView`) - [ ] Profile Create view — clean minimal layout (`CreateProfileView`) - [ ] Profile Edit view — cleaner layout (`EditProfileView`) - [ ] Contact Detail view (`ContactDetailView`) - [ ] Profile view (`ProfileView`) - [ ] Contacts list view — new row component, no alphabet headers (`ContactsListView`) - [ ] Add Contact UX — dedicated scan button on entry (`AddContactView` / `AddContactSheet`) - [ ] Pay-to-Contacts setup view (`PayContactsView`) ### Updated Quickpay with NFC support - [ ] NFC payments user flow — implement Quickpay over NFC (no NFC implementation exists in iOS today) - [ ] Quickpay onboarding copy in Settings (`QuickpayIntroView`) - [ ] QuickPay settings copy (`QuickpaySettings`) ### Updated Widget design - [ ] Redesigned all widgets — apply v61 visual refresh to every widget in `Components/Widgets/` - [ ] Redesigned widget reordering/edit state (`WidgetEditView`) - [ ] Simplified widget settings — verify each widget's settings rules against v61 (`WidgetsSettingsScreen`) - [ ] New add-widget method and layout — tracked by #567 (cross-reference) - [ ] Widgets onboarding "Organize" option (`WidgetsOnboardingView`) - [ ] Compact widget support in app — tracked by #566 (cross-reference) ### Tweaks, refinements, optimizations - [ ] HW wallet connection indicator — extend `TrezorStatusBadge` to communicate USB vs Bluetooth on the HW balance row - [ ] Settings → General: payments-with-contacts toggle — single enable/disable switch (separate from existing `PaymentPreferenceView` private/public toggles) - [ ] Settings → General: move payment preference — surface `PaymentPreferenceView` under General Payment settings (currently nested under advanced) ## Done When - All v61 frames listed above are reflected in the iOS UI or covered by linked sibling tickets. - New strings added to `Localizable.xcstrings` and validated with `node scripts/validate-translations.js`. - Existing tests for contacts, Quickpay, widgets and settings still pass; new flows have at least smoke coverage where practical. - Visual parity checked against the linked Figma node on a fresh dev build. ## References - Figma changelog frame: https://www.figma.com/design/ltqvnKiejWj0JQiqtDf2JJ/Bitkit-Wallet?node-id=40405-215203 - Android tracking issue: synonymdev/bitkit-android#970 - Prior pass (v60): #516