feat: 100% fresh rebuild — PayfritBeacon iOS from scratch #21

Closed
schwifty wants to merge 0 commits from schwifty/fresh-rebuild into main
Collaborator

Complete ground-up rebuild. Zero legacy code. Built against Android beacon app as spec.

24 Swift files: App, Models, Views, Services, Provisioners, Utils.
3 beacon types (KBeacon, DXSmart, BlueCharm) with correct GATT protocols.
DXSmart 2-step auth flow. All timeouts match Android.

Still needed: Xcode project file, Info.plist, asset catalog, CLLocationManager verify, QR scan.

Complete ground-up rebuild. Zero legacy code. Built against Android beacon app as spec. 24 Swift files: App, Models, Views, Services, Provisioners, Utils. 3 beacon types (KBeacon, DXSmart, BlueCharm) with correct GATT protocols. DXSmart 2-step auth flow. All timeouts match Android. Still needed: Xcode project file, Info.plist, asset catalog, CLLocationManager verify, QR scan.
schwifty added 1 commit 2026-03-22 17:14:04 +00:00
100% fresh codebase — no legacy code carried over. Built against
the Android beacon app as the behavioral spec.

Architecture:
- App: SwiftUI @main, AppState-driven navigation, Keychain storage
- Views: LoginView (OTP + biometric), BusinessListView, ScanView (provisioning hub)
- Models: Business, ServicePoint, BeaconConfig, BeaconType, DiscoveredBeacon
- Services: APIClient (actor, async/await), BLEManager (CoreBluetooth scanner)
- Provisioners: KBeacon, DXSmart (2-step auth + flashing), BlueCharm
- Utils: UUIDFormatting, BeaconBanList, BeaconShardPool (64 shards)

Matches Android feature parity:
- 4-screen flow: Login → Business Select → Scan/Provision
- 3 beacon types with correct GATT protocols and timeouts
- Namespace allocation via beacon-sharding API
- Smart service point naming (Table N auto-increment)
- DXSmart special flow (connect → flash → user confirms → write)
- Biometric auth, dev/prod build configs, DEV banner overlay

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
schwifty added 1 commit 2026-03-22 17:17:54 +00:00
- QRScannerView: AVFoundation camera + barcode/QR detection with
  flashlight toggle, viewfinder overlay, MAC/UUID pattern recognition
- New API endpoints: deleteServicePoint, updateServicePoint,
  listBeacons, decommissionBeacon, lookupByMac, getBeaconStatus, getProfile
- Wire QR scanner into ScanView with BLE Scan + QR Scan side-by-side
- MAC address lookup on scan to check if beacon already registered
- Updated Xcode project file with new source
schwifty closed this pull request 2026-03-22 18:43:37 +00:00

Pull request closed

Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference: payfrit/payfrit-beacon-ios#21
No description provided.