DevPortfolio — Hardening Checklist
1. Functional correctness
- Resume parsing works on 5 different real resumes (PDF + image)
- Classifier accuracy ≥ 80% on held-out test set
- Manual label editing persists
- Sharing flow generates a valid QR + universal link
- AR mode detects a plane within 5 s and places 3+ cards
- AR mode degrades gracefully on devices without AR (shows alert + non-AR project list)
- Universal link opens the app or web fallback correctly
2. ML / privacy
- CoreML model is bundled, not downloaded
- Resume PDF never leaves the device
- No telemetry on user resume content
- Privacy Nutrition Label: User Content (Linked, Not used for tracking)
-
PrivacyInfo.xcprivacydeclares Required Reason APIs (file timestamp for PDF, user defaults)
3. ARKit
-
NSCameraUsageDescriptionis specific: “Used for AR mode to place your portfolio cards in the room.” - AR session is paused when the app backgrounds
-
AR mode is gated on
ARWorldTrackingConfiguration.isSupported - No crashes when AR mode is entered then exited rapidly
- Memory peak in AR mode < 200 MB
-
Thermal state monitored; AR mode dims rendering if
.seriousor.critical
4. Architecture
- TCA store mutations are deterministic — same actions produce same state
- Effects are cancellable on view dismissal
-
_printChanges()removed from Release builds - No circular dependencies between features
5. Performance
- Cold launch < 1.5 s
- Resume parsing < 3 s for 1-page PDF
- AR mode ≥ 30 FPS sustained
- App size including model < 50 MB
6. Accessibility
- VoiceOver describes each portfolio section
- Dynamic Type accessibility5 doesn’t break layout
- AR mode includes a “list mode” toggle for users who can’t use AR
-
All actionable elements have
.accessibilityLabel
7. App Store Review
- App Review Notes include: sample resume PDF link, AR demo instructions, how to test sharing
- Screenshots show ML classification result and AR mode
- App Preview video (highly recommended for AR apps — increases approval rate)
- Privacy policy URL live
- No mention of “AI” without backing model description (some reviewers are skeptical)
8. Documentation
- README with screenshots + AR demo GIF
- ML training script committed (so reviewers can reproduce)
- TCA architecture diagram
- App Review journey documented (rejection emails + responses)
- Interview talking points rehearsed