What problem does it solve?
Modern iOS apps need correct, performant, and privacy-conscious patterns for picking photos, capturing from the camera, loading large images, and handling media playback; this Skill consolidates best practices, common pitfalls, and production-ready architectures so engineers avoid memory, permission, and lifecycle mistakes.
Core Features & Use Cases
- Photo picking: PhotosPicker and PHPickerViewController patterns for single and multi-selection without unnecessary permission prompts.
- Camera capture: AVCaptureSession ownership patterns, async photo capture bridging, video recording, torch/flash control, focus/exposure, and orientation handling.
- Image loading & performance: Downsampling with ImageIO, in-memory and URLCache strategies, prefetching for grids, HEIF/HEIC handling, and compression-before-upload guidelines.
- Permissions & privacy: Explicit checks and Info.plist requirements, denial handling with Settings deep links, and guidance for add-only vs read-write access.
- Playback & audio: AVPlayer, AVAudioSession, background audio, Now Playing integration, and Picture-in-Picture support.
Quick Start
Implement a PhotosPicker-backed selection flow, downsample selected images before display, and add camera capture using a dedicated camera manager with permission checks and start/stop lifecycle handling.