Files
CheapRetouch/specs/12-image-import.md
jared 1049057d7d Add Ralph Wiggum agent setup and project specifications
- Add project constitution with vision, principles, and autonomy settings
- Add 15 feature specifications covering full app scope
- Configure agent entry points (AGENTS.md, CLAUDE.md)
- Add build prompt and speckit command for spec creation
- Include comprehensive .gitignore for iOS development

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-23 23:19:41 -05:00

1.2 KiB

Image Import

Description

Import photos from Photo Library or Files app.

Acceptance Criteria

  • Import button opens PHPickerViewController
  • Limited photo library access supported (no full access required)
  • Selected photo loaded into editor
  • PHAsset localIdentifier stored for Photos-sourced images
  • Files app import supported via document picker
  • File-imported images embedded in project data
  • Supported formats: JPEG, PNG, HEIC
  • Large images (>12MP) handled with appropriate warnings
  • Loading indicator shown during import
  • Import errors handled gracefully with user feedback
  • Privacy: no photo library write permission requested at import time

Technical Notes

  • Use PHPickerViewController (not UIImagePickerController) for modern API
  • Configure picker: filter: .images, selectionLimit: 1
  • For Files: use UIDocumentPickerViewController with UTType.image
  • Store original at full resolution, generate preview separately

Edge Cases

  • User cancels picker: return to previous state, no error
  • Corrupted/unreadable image: show "Unable to load image" error
  • Very large image (48MP+): warn about potential memory issues
  • Permission denied: show guidance to enable in Settings