Appendix U: Snap & ScanKeeper (Shop Manual)

Status: Live on the App Store. v1.1 approved Apr 6 2026. App Apple ID 6755695364. Bundle ID com.NightGard.Snap-ScanKeeper. Universal iPhone + iPad. iOS 16.0+. GPL v3. Public repo at github.com/fluhartyml/Snap-ScanKeeper. Snap & ScanKeeper is a focused VisionKit-powered document scanner that turns iPhone or iPad camera captures into PDFs and saves them to the user's Photos library. Privacy-first: everything happens on-device, no network, no cloud, no tracking. Book 11 (FileManager and Documents) Live Reference points at this app for the FileManager-driven save flow.

What it is

One screen: a scan button, a share button, and a settings gear. Tapping scan opens VisionKit's document camera; the user captures one or more pages with automatic edge detection and perspective correction; the app generates a PDF (or images, per the save-format setting) with a timestamp filename and writes it to a custom Photos album. Multi-page scans become multi-page PDFs. That's the whole product.

Architecture overview

Small, sharp, no SwiftData — the app doesn't model documents internally. The Photos library is the source of truth.

The scan pipeline

  1. User taps Scan. SwiftUI presents DocumentScannerView as a full-screen cover.
  2. VNDocumentCameraViewController handles capture — live edge detection overlay, manual capture button, multi-page mode, retake / done flow. All Apple-provided.
  3. On done, the delegate receives a VNDocumentCameraScan with one or more UIImages.
  4. PhotosManager walks the images, generates a single PDF via UIKit's UIGraphicsPDFRenderer, and writes it (plus optional per-page images) to the custom Photos albums.
  5. The share button then surfaces the most-recent PDF via UIActivityViewController.

Save modes (four)

The Settings screen offers four save-format options:

  1. PDF only — writes a single multi-page PDF to Snap&ScanKeeper PDFs album.
  2. Images only — writes one image per page to Snap&ScanKeeper Images album.
  3. Both — writes the PDF and the per-page images to their respective albums.
  4. Share only (no save) — skips Photos entirely; the share sheet is the only way to get the scan out of the app. Useful for scans the user doesn't want to leave on the device.

Privacy posture

Everything happens on the device:

Build + deployment

History — the rename trail

This app reached the App Store after three failed names: SnazzyScan, Swift-Scan, SnapKeeper. Each was submitted, rejected for various reasons (App Review issues, name conflicts, scope mismatches), and abandoned before this version was rebuilt under the current name. Mentioned here because the project on disk and the GitHub repo carry traces of the earlier names — old screenshots, old commit messages, old assets — that don't match the current product. When reading the source against this manual, expect occasional historical drift in comments and asset filenames.

Known gotchas

Sources