idp.global Swift App

Multiplatform SwiftUI companion app for idp.global across iPhone, iPad, and Mac.

The current build is a polished preview backed by a mock service layer. It already walks through the core product flow:

  • bind a device to an account with a QR payload
  • review and approve identity or access requests
  • track recent security and system events
  • manage notification permissions and send a local test alert

Current Product Surface

After pairing, the app opens into a passport-style dashboard with four sections:

  • Passport: digital identity summary, trust context, and quick actions
  • Requests: approval queue with elevated-risk guidance and inline review
  • Activity: timeline of pairing, approval, and system events
  • Account: member profile, trusted-device context, and recovery summary

The layout adapts by platform:

  • iPhone uses a compact tab-based container
  • iPad and Mac use a split-view workspace with richer side-by-side review

Pairing Flow

The sign-in flow supports:

  • live QR scanning through the camera
  • manual payload paste for testing
  • a seeded preview payload while the real backend is still being wired up

Seeded payload on first launch:

idp.global://pair?token=swiftapp-demo-berlin&origin=code.foss.global&device=Safari%20on%20Berlin%20MBP

Mocked Preview Behavior

The app currently runs against MockIDPService, which seeds:

  • a paired member profile
  • pending and handled approval requests
  • recent notifications and security events
  • simulated incoming requests from the toolbar

This keeps the UI realistic while preserving a clean integration seam for the live backend later.

Open And Run

  1. Open IDPGlobal.xcodeproj in Xcode.
  2. Build and run the IDPGlobal scheme on:
    • My Mac
    • an iPhone simulator
    • an iPad simulator

You can also build from the command line:

xcodebuild -project IDPGlobal.xcodeproj -scheme IDPGlobal -configuration Debug -destination 'platform=macOS' build

Useful Preview Launch Arguments

These launch arguments are already supported by the app model:

  • --mock-auto-pair: automatically pair with the seeded preview payload on launch
  • --mock-section=overview
  • --mock-section=requests
  • --mock-section=activity
  • --mock-section=account
  • --mock-section=notifications: opens the activity timeline using a notification-friendly alias

Example:

--mock-auto-pair --mock-section=requests

Project Structure

  • Sources/App: app entry point and shared state in AppViewModel
  • Sources/Features/Auth: first-run pairing flow and QR scanner UI
  • Sources/Features/Home: passport dashboard, requests, activity, notifications, and account surfaces
  • Sources/Core/Models: app-facing domain models
  • Sources/Core/Services: mock backend boundary and local notification coordination

Next Integration Step

Replace MockIDPService with a live implementation that:

  • exchanges the QR payload for a real session
  • loads profile, request, and activity data from the backend
  • posts approval decisions back to idp.global
  • syncs notification state with server-side events
Description
No description provided
Readme 673 KiB
Languages
Swift 100%