Mobile app readiness

Phone and tablet contract map

PWA now, iOS first, iPad/tablet supported, Android later. Native store claims stay blocked until operator approval.

iphone

contract ready

single column touch first

ipad

contract ready

tablet two column where space allows

android

later native wrapper

same responsive web surface

tablet

pwa ready

tablet viewport sweep required

Launch sequence

  1. pwa
  2. ios
  3. ipad
  4. android

The browser/PWA path is the production surface while native packaging remains approval-dependent.

Manifest

Display
standalone
Orientation
any
Tablet friendly
Yes

Core endpoints

manifest: /manifest.webmanifest

service worker: /service-worker.js

deep link resolver: /api/v1/mobile/deep-link/resolve

web open resolver: /app/open

openapi: /api/v1/openapi

capabilities ios: /api/v1/capabilities?profile=ios

ios bootstrap bundle: /api/v1/mobile/ios/bootstrap-bundle

ios bootstrap signed: /api/v1/mobile/ios/bootstrap-bundle/signed

ios universal link diagnostics: /api/v1/public/ios/universal-links/diagnostics

offline queue: /api/v1/mobile/offline-queue

push inbox: /api/v1/mobile/push-inbox

widget summary: /api/v1/mobile/widget/summary

field audit checkin: /api/v1/mobile/field-audit/checkin

camera quality check: /api/v1/mobile/camera-quality-check

marketplace local demand: /api/v1/marketplace/local-demand

marketplace map: /api/v1/marketplace/map

offline queue action: /api/v1/mobile/offline-queue/<operation_uuid>/action

offline conflict resolve: /api/v1/mobile/offline-conflicts/<operation_uuid>/resolve

app readiness: /api/v1/mobile/app-readiness

Tablet layout audit

Dense owner workflows must stay usable on iPad portrait, landscape, and Split View widths before native tablet claims expand.

dashboard

/dashboard

two column summary and next actions where space allows

Phone fallback: single column touch first

item detail

/items/<id>

item summary beside owner actions and evidence

Phone fallback: stacked summary actions evidence

loan detail

/loans/<id>

timeline or messages beside return actions

Phone fallback: stacked loan sections

marketplace requests

/marketplace/requests

request filters beside triage rows

Phone fallback: filters then rows

feedback admin

/admin/feedback-tickets

filters metrics and ticket rows without horizontal overflow

Phone fallback: stacked filters and ticket rows

Offline conflict replay

Phone and tablet clients must let users inspect, retry, cancel, merge, and replay offline operations without silently losing local edits.

list or upsert: /api/v1/mobile/offline-queue

action: /api/v1/mobile/offline-queue/<operation_uuid>/action

resolve: /api/v1/mobile/offline-conflicts/<operation_uuid>/resolve

  1. capture: Queue item/photo/check-in draft locally and mirror it to offline queue when authenticated.
  2. sync attempt: Move operation through in-progress or failed without hiding retry/cancel controls.
  3. detect conflict: Mark conflict_detected or requires_manual_merge and expose server/local choices.
  4. resolve: Persist resolution strategy and field choices on the operation payload.
  5. replay: Return keep-local and merge-fields resolutions to pending for the next sync attempt.

Blocked native items