QR Scevio — Engineering record

iOS 17+local processingprivacy

APP STORE ↗free · iPhone

role
Product, architecture, implementation, testing, release preparation
platform
iPhone, iOS 17 or later
status
On the App Store · free
stack
Swift, SwiftUI

A QR code hides its destination until it is too late.

Scanning normally hands the decoded content straight to another app. The person never sees the URL, the redirect chain, or the tracking parameters attached to it. QR Scevio separates decoding from acting so the destination is inspected first and the decision stays with the person holding the phone.

Nothing leaves the device.

  • Inspection runs locally. There is no account, analytics, advertising, telemetry, embedded web view, or networking code.
  • Because nothing is fetched, the app cannot visit the site, follow redirects, expand short links, resolve DNS, or query a reputation service. Those limits are stated in the product rather than hidden.
  • Warnings must inform without alarming, and they are warnings, not guarantees.
  • Decoded content stays inert until the user chooses an explicit action.

An explicit-action boundary, enforced in the architecture.

The trust boundary is a product decision and a code structure at the same time: decoding reveals information; only a deliberate tap opens, copies, shares, or saves it. Local checks flag plain HTTP, private network addresses, mixed writing systems in a hostname, and common tracking parameters, and offer a sanitized open that strips utm_, fbclid, gclid, dclid, and msclkid. History is kept on the device, bounded to 30 days or 500 scans, and the app declares its data practices in a privacy manifest.

[ INSPECT ]Inspection flow

example

  1. 01Capture

    Camera frame or a single imported image; up to four codes recognized per frame.

  2. 02Decode locally

    Payload extracted with no network access.

  3. 03Classify

    Scheme, host shape, address range, script mixing, and tracking parameters evaluated on device.

  4. 04Verdict

    No Local Warnings Found, Caution, or High Risk, with the specific findings listed.

  5. trust boundary: nothing happens until the user acts05Explicit action

    Open, open sanitized, copy, share, save, or walk away.

  6. 06Local history

    Stored on device, bounded to 30 days or 500 entries.

interpretation

This flow was drawn for the archive after the fact from the release-candidate architecture. It summarizes; it is not a historical design document.

Evidence before release.

Release verification covered the unit suite and the UI suite on two iOS versions, plus a signed build on physical hardware. The matrix lists only what the release verification report recorded.

[ INSPECT ]Release verification matrix

example

Release candidate verification, v1.0 build 1
ScenarioTargetCoverageResult
Unit suiteiOS 18.5 simulator190+ executionsAll passed
Unit suiteiOS 26.5 simulator190+ executionsAll passed
UI suiteiOS 18.5 simulator50 cases50 of 50 passed
UI suiteiOS 26.5 simulator50 cases50 of 50 passed
Signed device buildiPhone 13 miniInstall and runSigned build recorded
Release archiveXcode archive1.4 MBProduced

interpretation

Values are transcribed from the release report. Internal identifiers, device UDIDs, and signing details are omitted.

[ INSPECT ]The boundary as the user sees it

original

QR Scevio verdict screen reading No Local Warnings Found, showing the decoded destination and the explicit Open, Copy, and Share actions below it
No Local Warnings Found. The destination is still shown before any action.
QR Scevio Caution verdict listing the specific findings for a flagged destination, with the action buttons unchanged and nothing opened
Caution. Findings are named; the choice stays with the user.
QR Scevio showing a sanitized link with tracking parameters removed and an Open Sanitized Link action
Tracking parameters stripped; the sanitized open is offered alongside the original.

interpretation

Three states of the verdict screen. In each, the decoded destination is visible and no action has been taken.

Shipped to the App Store, verified on hardware first.

Version 1.0 build 1 reached release-candidate state with the verification above complete and a signed build running on an iPhone 13 mini. QR Scevio is now on the App Store: free, for iPhone on iOS 17 or later, with privacy details that declare no collected data. No usage or adoption figures are claimed.

Local-only is a limit worth stating.

Refusing network access means the app cannot expand short links or consult a reputation service, so some risky destinations will read as No Local Warnings Found. The product says so plainly instead of implying safety. The lesson carried into later work: a security boundary earns trust only when the interface makes clear what was checked, what was not, and what happens next.

SIGNAL CALIBRATION

Signal lock
0%SEARCHING

SIGNAL LOCKED

CALIBRATION COMPLETE

OPERATOR CONTROL
GRANTED

OPERATOR CONTROL

Phosphor
Signal
Tuning

DIAGNOSTICS

    System log

      Symptom

      Signals
      Evidence
        Diagnostic confidence