Essential session storage is required to sign in. Optional analytics remain off unless you allow them.
Take an app to release quality and distribute it via TestFlight. Deliver: (1) the modern stack — Swift + SwiftUI + Swift Concurrency (async/await, @MainActor, actors where shared state needs protection) + SwiftData; (2) correct runtime permission handling for any sensitive API you use (Info.plist usage strings + graceful denial); (3) accessibility (VoiceOver labels, Dynamic Type) and Dark Mode; (4) a profiled, LEAK-FREE app — verify with Instruments that there are no retain cycles (use [weak self] in escaping closures) and the main thread stays responsive; and (5) a signed RELEASE archive uploaded to App Store Connect and distributed to TestFlight (certificates + provisioning profile set up correctly). Document the signing/release steps.
Swift + SwiftUI + Swift Concurrency + SwiftData wired cleanly; concurrency safe (main-actor UI, actors/Sendable where needed); idiomatic.
No retain cycles (Instruments clean; [weak self] where appropriate); runtime permissions handled; accessibility + Dark Mode supported.
Release archive correctly signed (certificate + provisioning profile); uploaded to App Store Connect; available on TestFlight.
Signing/release steps documented and reproducible; versioning managed.
Use this README structure to make the work reviewable.
DevPath fetches a read-only, size-capped snapshot. Submitted code is never executed.
# A leak-free app signed and sent to TestFlight ## Goal Take an app to release quality and distribute it via TestFlight. Deliver: (1) the modern stack — Swift + SwiftUI + Swift Concurrency (async/await, @MainActor, actors where shared state needs protection) + SwiftData; (2) correct runtime permission handling for any sensitive API you use (Info.plist usage strings + graceful denial); (3) accessibility (VoiceOver labels, Dynamic Type) and Dark Mode; (4) a profiled, LEAK-FREE app — verify with Instruments that there are no retain cycles (use [weak self] in escaping closures) and the main thread stays responsive; and (5) a signed RELEASE archive uploaded to App Store Connect and distributed to TestFlight (certificates + provisioning profile set up correctly). Document the signing/release steps. ## Acceptance criteria - [ ] Modern stack: Swift + SwiftUI + Swift Concurrency + SwiftData wired cleanly; concurrency safe (main-actor UI, actors/Sendable where needed); idiomatic. - [ ] Memory & platform: No retain cycles (Instruments clean; [weak self] where appropriate); runtime permissions handled; accessibility + Dark Mode supported. - [ ] Signing & TestFlight: Release archive correctly signed (certificate + provisioning profile); uploaded to App Store Connect; available on TestFlight. - [ ] Documentation: Signing/release steps documented and reproducible; versioning managed. ## Verification - [ ] Document installation and run commands. - [ ] Record automated checks and their exact commands. - [ ] Add representative output, screenshots, or a short demo where useful. - [ ] Confirm failure paths and known constraints. ## Decision log ### Decision title - Context: - Choice: - Alternatives considered: - Tradeoffs: ## Evidence - Link each rubric criterion to the file, test, or artifact that demonstrates it. ## Known limitations - List what is intentionally out of scope and what should be improved next.