App Store prep: privacy manifests, 1.0.1 (2), OGL attribution, UK empty state, screenshot harness
- PrivacyInfo.xcprivacy in app + widget targets (UserDefaults 1C8F.1; app declares Location linked + Diagnostics not-linked, no tracking) - Version bump 1.0.1 (2) in App + Widget plists - Settings → Data source footer: OGL attribution + 'refresh up to twice a day' - Stations empty state: friendly UK-only explainer + 'Browse all UK stations' - ContentView launch-arg harness (pattern of -showKeySheet): -skipOnboarding and -tab stations|favourites|alerts|settings for screenshot capture - APPSTORE.md updated (blockers struck, tasks done, yuzu-hub workflow) - BACKLOG.md hygiene: GitHub-first header, Trends merged note, offline-first-run DONE
This commit is contained in:
+12
-10
@@ -1,8 +1,10 @@
|
||||
# FuelBoard Backlog
|
||||
|
||||
FuelBoard — England-wide petrol-station price widget + app.
|
||||
Relay mirrors the UK gov data (hourly CSV); app fetches the full-UK dump
|
||||
(~8,038 stations, all prices) once per 12 h and filters/sorts on-device.
|
||||
GitHub mirror (`aptonline/fuelboard-data`, daily) holds the full-UK dump
|
||||
(~8,022 stations, all prices); app fetches it once per 12 h and filters/
|
||||
sorts on-device, with a bundled snapshot as the no-network last resort.
|
||||
LAN relay is dev-only (hidden `fuelboard.relayFallback` flag).
|
||||
|
||||
Priority guide: P0 = next build, P1 = soon, P2 = later, P3 = maybe/idea.
|
||||
Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
||||
@@ -15,9 +17,8 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
||||
(App Intents, iOS 16+), dialog + price-card snippet, cached full-UK dump first
|
||||
with freshness label ("as of 6am"), last-known-location fallback. Constraint:
|
||||
fresh-data path needs a reachable source off-LAN — cached answers work anywhere
|
||||
the app has previously fetched (see P3 data mirror). Interim: the relay on
|
||||
Tailscale (100.120.217.98:8789) is reachable off-LAN for testing; relay will
|
||||
move to a permanent box or the GitHub mirror long-term. *DONE — radius-scoped
|
||||
the app has previously fetched (the GitHub mirror serves this now). *DONE —
|
||||
radius-scoped
|
||||
lookup `037c241` (real-data regression: GULF HISTON 100.9p 132 mi away),
|
||||
per-fuel literal-word shortcuts `e55078c`, names = app words `a3b6f37`, plus
|
||||
Directions-to-cheapest `caadf18` + spoken hand-off `aed99e3`.*
|
||||
@@ -31,7 +32,7 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
||||
capsule fuel picker; range control 7/30/90 days; respects the price-display
|
||||
toggle; honest empty-state copy in Localizable.strings ("Prices are recorded from
|
||||
each refresh — check back in a few days"). No widget in v1 (one-kind rule).
|
||||
Depends on the P0 archive. *DONE 2026-08-15 on feature/trends-history (unmerged):
|
||||
Depends on the P0 archive. *DONE 2026-08-15, merged to main 2026-08-16:
|
||||
`Shared/FuelHistory.swift` (FuelHistoryStore: day math, slim day decode w/ shared
|
||||
band, series + deltaSeries, app-group favourites-only cache, parallel per-day
|
||||
fetches) + `FuelBoard/TrendsView.swift` (chart, fuel capsule, 7/30/90, Price/vs
|
||||
@@ -39,8 +40,8 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
||||
FavouritesView + strings. 83 tests incl. URL regression (appendingPathComponent
|
||||
— URL(string:relativeTo:) dropped /main, all fetches 404'd). Sim-verified:
|
||||
favourites rows + TOP/deltas; sheet controls + honest empty state w/ live first-
|
||||
snapshot date. Pending: merge to main after device sideload test; lines render
|
||||
once ≥2 snapshots (archive warming daily).*
|
||||
snapshot date. Pending: lines render once ≥2 snapshots (archive warming daily,
|
||||
~Aug 17).*
|
||||
|
||||
## P2 — Later
|
||||
|
||||
@@ -82,8 +83,9 @@ Status: TODO / IN PROGRESS / DONE / BLOCKED.
|
||||
user-configurable (currently fixed 300 m trigger / 1 per station per hour).
|
||||
- [ ] **Pull-to-refresh spinner state** — surface refresh in-flight state
|
||||
(currently `refreshable` fires but no visible progress in the row list).
|
||||
- [ ] **Offline first-run** — first launch without network currently shows empty
|
||||
states; bundle a sample dump so the app demos offline.
|
||||
- [x] **Offline first-run** — bundled REAL 8,022-station dump (`FuelBoardDump`,
|
||||
refreshed by `scripts/refresh_bundled_dump.sh`) is the no-network last resort
|
||||
in the live chain (P0, 2026-08-16); first launch demos the full dataset offline.
|
||||
- [ ] **Localization** — UK English only today; audit string catalog for l10n.
|
||||
- [ ] **Dark mode polish** — verify brand logos (white-circle clips) and RAG dot
|
||||
contrast under dark appearance on-device.
|
||||
|
||||
Reference in New Issue
Block a user