Skip to content

About

Offline iPhone and iPad inspections with photos, signatures, PDF reports, and revision-aware sync.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

Offline Field Inspector icon

Offline Field Inspector

Create inspection reports without a connection, then upload them with explicit revision-conflict handling.

iOS 15+ · iPhone and iPad · Swift · MIT License

Offline Field Inspector running in the iOS simulator with example data

What it does

  • Record site details, checklist outcomes, notes, and up to four photos.
  • Capture a handwritten signature and export a multipage PDF.
  • Save reports atomically on the device and retain pending uploads across launches.
  • Resolve server conflicts by keeping local edits or accepting the remote report.

Run

Open Offline Field Inspector.xcodeproj in Xcode 16 or later. The shared scheme has the same name. No third-party Swift packages are required. Builds were checked with Xcode 27; minimum OS declarations are not a claim that every older OS was runtime-tested.

Select an iPhone or iPad simulator and run the shared scheme. Creating, editing, and exporting inspections work without a server.

To test uploads, follow Server/README.md. The reference Python/SQLite server must sit behind HTTPS. Enter its URL and token in Sync. No production server, user credentials, or hosted storage are included.

Bundle identifier: com.dd.fieldinspector.

Try it

Create an inspection, mark a failed check, attach a photo, and add a signature. Save, relaunch, and export the PDF. Then configure the reference server and upload the pending report.

Implementation

Inspection is the Codable report and sign-off model. InspectionStore owns persistence, pending uploads, and revision reconciliation. Image attachment, signature capture, and PDF export live in the app layer. The reference server performs the revision check and update in one SQLite transaction.

Verification

Run swift test for report completeness and serialization. Run cd Server && python3 -m unittest -v for HTTP authorization, stale revisions, and retry behavior.

Scope and limitations

Sync is an upload queue for reports already on the device, not full workspace replication. Conflicts replace whole reports rather than merging individual fields. The reference server represents one workspace and needs additional deployment controls for real teams. Signatures are drawing capture, not a digital-signature certification system.

Data and privacy

See PRIVACY.md for storage and network behavior. Sample data is fictional.

License

MIT. Original source and app artwork are included under the same license.

About

Offline iPhone and iPad inspections with photos, signatures, PDF reports, and revision-aware sync.

Topics

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages