diff options
Diffstat (limited to 'README.md')
| -rw-r--r-- | README.md | 13 |
1 files changed, 11 insertions, 2 deletions
@@ -1,8 +1,12 @@ +<!-- + Author: cirakg & claude ai + Summary: Project overview, design and build plan for the OTP Wallet Connect IQ app. +--> # OTP Wallet for Connect IQ A Garmin Connect IQ watch app that shows one-time passwords (TOTP, HOTP, and optional Steam Guard codes) and stores barcodes and QR codes (loyalty cards, tickets) to show at a scanner. Everything lives encrypted on the watch. There is no cloud, no backend and no analytics, and the app requests no permissions, so it cannot use the network. -> **Status: Phase 1 (plan), waiting for your approval.** Nothing is built yet. This README is the design and the build plan. The Phase 0 research, with sources, is in [docs/FEASIBILITY.md](docs/FEASIBILITY.md). +> **Status: M0 (scaffolding) done.** The plan below was approved on 2026-10-18. The Docker toolchain, the build, test, screenshot, performance and packaging pipeline, and a placeholder app are in place and pass `make ci`. Next: M1, the settings spike (needs your phone and watch), alongside M2, crypto and OTP. The Phase 0 research, with sources, is in [docs/FEASIBILITY.md](docs/FEASIBILITY.md); the daily workflow is in [docs/DEVELOPER_GUIDE.md](docs/DEVELOPER_GUIDE.md). "OTP Wallet" is a working title. @@ -719,6 +723,8 @@ The Garmin SDK and device files are never baked into an image (Garmin's licence) | `make test` | Unit tests in the headless simulator on the 3 test devices | no | | `make sim` | Run the app in the simulator; view it at http://127.0.0.1:6080/vnc.html | localhost only | | `make screenshots` | UI screenshot tests and barcode decoding from screenshots | no | +| `make screenshots-approve` | Save the current screens as the approved images, after you've reviewed them | no | +| `make icons` | Regenerate the per-size launcher icons after the product list changes | no | | `make perf` | Performance measurements against the budgets | no | | `make memtest` | Peak memory on Forerunner 255S, app and glance | no | | `make lint` | Strict type check (`-l 3`) with warnings as errors, project lint rules, settings XML schema check, Python lint for the tools | no | @@ -1019,13 +1025,16 @@ The simulator runs on your PC's CPU, so its timings don't represent a watch. In │ ├── Dockerfile garmin-otp/dev │ ├── docs.Dockerfile garmin-otp/docs │ └── scripts/ SDK setup, headless simulator, test runner, VNC +├── icons.jungle generated: each product's launcher-icon folder ├── source/ │ ├── app/ crypto/ otp/ codes/ storage/ import/ settings/ ui/ util/ ├── test/ Monkey C (:test) modules, mirroring source/ -│ └── data/ generated vectors and fake fixtures +│ ├── data/ generated vectors and fake fixtures +│ └── golden/ approved simulator screenshots ├── resources/ │ ├── settings/ properties.xml, settings.xml │ ├── strings/ drawables/ fonts/ +├── resources-icons/ generated: launcher icon at each size the products need ├── tools/ Python: vector generation, reference encoders, decoding, screenshots, reports, lint ├── docs/ └── .cache/ build/ git-ignored: SDK, device files, keys, outputs |
