Get a quote
Mobile

ProofPair — Branded PDF job reports from before and after photos

Our own iPhone app for small trade businesses. A painter or handyman pairs a before photo and an after photo with a note for each task, and the app lays them out as a PDF carrying the business logo and license line. Everything happens on the phone: no account, no server, no network calls.

Category Mobile
Client Algoriel product
Services Mobile App, Software Consulting
Year 2026
Status In App Store review
Role Design & development

The context

A gutter cleaner finishes the job, and the proof is scattered across the camera roll and a text thread. Months later the client says the stain was already there. Nothing on hand ties those photos to a job or a date.

We built ProofPair as our own product for solo tradespeople and small crews in the US, UK, Canada and Australia. The app is in English. The hard part was the document: notes that never get cut off, photos stripped of location, all produced on the phone.

How we work on every project

Planning

We go through how the work runs today and what you expect from the software; the scope comes out of that.

Architecture

We decide what the system is made of and where its information is kept.

Modelling

We draw the screens and the flow before any code, and start building once you have approved them.

Development

We write and hand over the software so another team could carry it on.

See our process →

What we built

  • PDF layout done on the phone

    A planning pass decides what lands on each page before anything is drawn. Notes flow through TextKit, one text container per page's remaining height.

  • Searchable text, repeatable output

    Reports use Helvetica: the system font lost Unicode mapping for some glyphs and broke search. The same input yields the same page layout.

  • Local storage that survives a bad write

    One versioned JSON file holds everything. Each write backs up the last valid copy first; files from a newer app version stay untouched.

  • No network, no third-party code

    Pre-release checks fail if network APIs or unlisted imports appear. The first job's report is free; a one-time Pro purchase opens the rest.

How we built it

  • Swift 6.0
  • SwiftUI
  • Observation
  • PDFKit
  • PhotosUI
  • ImageIO
  • StoreKit
  • UIKit
  • UniformTypeIdentifiers
  • XCTest
  • StoreKitTest
  • XcodeGen

Challenge and result

Each row is a pair: the challenge the work had to solve on the left, and how the system answers it on the right.
Challenge Result
A long task note hits the bottom of the page and gets clipped in the PDF Overflow carries onto the next page; each before and after block stays on one page
Phone photos carry GPS and camera metadata, and their capture date is not always known Photos are re-encoded on import without location data; reports label dates 'Taken' or 'Added'
One interrupted save or a corrupted file could wipe months of job history Saves are atomic; an unreadable file is quarantined and the last good backup loads
A one-time purchase stored as a local flag can outlive a refund Pro access is recomputed from StoreKit-verified transactions; refunds and revocations take it back

Have a question about ProofPair?

ProofPair is in App Store review and cannot be downloaded until Apple signs it off. You can send us your question about it.