- Backend: ShallowEtagHeaderFilter for /api/v1/*, API-VERSIONING.md, README (tenant, CORS, Flyway, ETag) - k8s: backend-deployment.yaml (Deployment, Service, Secret/ConfigMap) - Web: scaffold with directory pull, 304 handling, touch-friendly UI - Android 16: ANDROID-16-TARGET.md; BuildConfig STUN/signaling, SMOAApplication configures InfrastructureManager - Domain: CertificateManager revocation stub, ReportService signReports, ZeroTrust/ThreatDetection minimal docs - TODO.md and IMPLEMENTATION_STATUS.md updated; communications README for endpoint config Co-authored-by: Cursor <cursoragent@cursor.com>
1.6 KiB
1.6 KiB
SMOA iOS app (scaffold)
This folder is a scaffold for the SMOA iOS app. The actual app is to be implemented in a separate Xcode project or repo, targeting iOS 15, 16, and 17 (last three generations).
Contract
- Use the same REST API as Android and Web: see PLATFORM-REQUIREMENTS.md and REQUIREMENTS-ALIGNMENT.md.
- Sync: POST to
/api/v1/sync/directory,/api/v1/sync/order, etc.; DELETE for sync delete. - Pull: GET
/api/v1/directory,/api/v1/orders,/api/v1/evidence,/api/v1/credentials,/api/v1/reports(withsince,limit, optional filters). - Auth: Header
X-API-Keyor queryapi_key. - Response: JSON; when
conflict: true,remoteDatais base64-encoded JSON.
Implementation checklist
- Create Xcode project (Swift/SwiftUI or cross-platform); minimum deployment target iOS 15.0.
- Store API key in Keychain.
- Implement PullAPI (URLSession or Alamofire): GET endpoints above.
- Implement SyncAPI: POST sync + DELETE; parse
SyncResponse, decoderemoteDatawhen conflict. - Offline queue: Queue sync when offline; retry when online; optional Core Data / SwiftData for persistence.
- Optional: Face ID / Touch ID for app unlock; certificate pinning for API.
Discovery
- GET
/api/v1/inforeturnsendpoints(sync, delete, pull) andauthfor client discovery.
References
- Backend: backend/README.md
- Platform requirements: docs/reference/PLATFORM-REQUIREMENTS.md