
bitcoinui
Bitcoin UI review (iOS)
by reez|Open Source
BitcoinUI Review
Overview
Review iOS SwiftUI code and screens for Bitcoin-specific UX correctness, iOS HIG alignment, and accessibility. Prefer suggesting BitcoinUI components when they match the pattern.
Quick Start
- If
$ARGUMENTSis a file or list of files, review those directly. - If
$ARGUMENTSis a folder, review all SwiftUI.swiftfiles in that folder (recursive). If the folder is large, ask to narrow the scope. - If
$ARGUMENTSis empty, ask: "Using the bitcoinui skill for an iOS review. Which file(s) or folder should I review?" Do not scan the whole repo without user consent.
Review Workflow
- Read the target file(s) before commenting.
- Apply the rubric in
references/bitcoinui-rubric.md. - Report issues by severity with line numbers, a short snippet, and a concrete fix. Include a direct URL in each Ref line.
- For Bitcoin-specific issues, include at least one Bitcoin Design Guide or BIP URL in the Ref line.
- Suggest BitcoinUI components when they would reduce errors or improve consistency.
- Omit any severity section with 0 findings (including Low).
- Low is for optional polish/consistency notes; skip it if there are no meaningful suggestions.
- Do not modify code unless the user asks; offer to fix if appropriate.
Output Format
Start directly with the BITCOINUI block; do not add any preamble text before it.
If a folder is reviewed, list each file as its own section (file path + findings + severities).
Omit any file section with 0 findings (do not list zero-findings files).
Omit any severity section with 0 findings (including Low).
BITCOINUI
SendFeeView.swift
Findings: 0 high, 2 medium, 0 low
Medium
1) [UX L88] Fee picker lacks a high-fee warning
Fix: Add a warning when fee >= 50% of amount.
Ref: Bitcoin Design Guide — Send fees https://bitcoin.design/guide/daily-spending-wallet/sending/send-fees/
2) [A11Y L42] Icon-only close button has no label
Fix: Add accessibilityLabel("Close")
Ref: iOS HIG — Accessibility https://developer.apple.com/design/human-interface-guidelines/accessibility
ReceiveView.swift
Findings: 0 high, 1 medium, 0 low
Medium
1) [QR L19] QR payload uses uri directly; bech32 should be uppercased for QR only
Fix: Uppercase only the bech32 address for QR encoding.
Ref: BIP173 https://github.com/bitcoin/bips/blob/master/bip-0173.mediawiki
References
Use references/bitcoinui-rubric.md for Bitcoin-specific heuristics and iOS HIG checks. Load only the sections needed for the current review.