aboutsummaryrefslogtreecommitdiff
path: root/docs/STORE_LISTING.md
diff options
context:
space:
mode:
authorcirakg <cirakg@cirakg.xyz>2026-10-28 00:03:01 +0100
committercirakg <cirakg@cirakg.xyz>2026-10-28 00:03:01 +0100
commit9e5a85fe01e94489198a64a458f9b09584594f80 (patch)
tree9b3668b4c42dc30dbfe65db734987663de2bdfbb /docs/STORE_LISTING.md
parente5172350151043050098d37b728054eb2e2be9f8 (diff)
chore(release): 1.0.0, with the Connect IQ Store listingv1.0.0
The second real-watch round on the Forerunner 70 passed: codes from otpauth:// links, the 4-digit PIN, touch scrolling and Aegis JSON import. Version 1.0.0 ships the fixes of the 0.9.0 review. - docs/STORE_LISTING.md: title, description and What's New for the Garmin developer page, with measured character counts. - docs/store/: hero (1440x720), cover (500x500) and seven round screen images, built by tools/store_assets.py from the fr70 goldens. - CHANGELOG 1.0.0, README status, TESTING round 2 results, YOUR_STEPS marked done, fr70 about.png golden at 1.0.0. make ci green on fr70. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Diffstat (limited to 'docs/STORE_LISTING.md')
-rw-r--r--docs/STORE_LISTING.md84
1 files changed, 84 insertions, 0 deletions
diff --git a/docs/STORE_LISTING.md b/docs/STORE_LISTING.md
new file mode 100644
index 0000000..8317138
--- /dev/null
+++ b/docs/STORE_LISTING.md
@@ -0,0 +1,84 @@
+<!--
+ Author: cirakg & claude ai
+ Summary: Text and images for the Connect IQ Store listing, ready to paste into the Garmin developer page.
+-->
+# Connect IQ Store listing
+
+Copy each block into the matching field of the app page on the Garmin developer site. The text inside each block is plain text: the Store shows line breaks but no Markdown. The character counts were measured when the text was written: title 32, description 2385, What's New 755.
+
+## Title (max. 50 characters)
+
+```text
+OTP Wallet: 2FA Codes & Barcodes
+```
+
+## Description (max. 4000 characters)
+
+```text
+Your two-factor codes and your loyalty cards on your wrist, with no phone and no network.
+
+OTP Wallet shows one-time passwords (TOTP, HOTP and Steam Guard) and stores barcodes and QR codes to show at a scanner. Everything is encrypted on the watch. There is no cloud, no account and no analytics, and the app requests no permissions, so it cannot use the network.
+
+ONE-TIME CODES
+- TOTP (SHA-1, SHA-256, SHA-512; 6 to 8 digits; any period), HOTP and Steam Guard.
+- A ring shows the seconds left; the next code is shown before the current one expires.
+- Optional glance with your favourite code.
+- Codes use the watch's clock. Keep the watch synced with your phone for the right time.
+
+BARCODES AND QR CODES
+- QR, Aztec, Data Matrix, PDF417, Code 128, Code 39, EAN-13, EAN-8, UPC-A, UPC-E, ITF and Codabar, all drawn on the watch.
+- Black on white with full brightness on AMOLED watches (backlight on MIP watches) for easy scanning.
+- The watch tells you if a code is too large for its screen.
+
+SECURITY
+- Secrets and codes are stored encrypted on the watch.
+- Optional 4-digit app PIN: entries marked "Require PIN" are encrypted with a key only the PIN opens.
+- Auto-lock, a growing wait after wrong PINs, and an option to erase the locked entries after 10 wrong PINs.
+- A 4-digit PIN stops someone using your watch, not someone who copies its storage to a computer.
+- Secrets only flow into the watch. The app never exports them.
+
+ADDING ENTRIES
+Open the app settings in Garmin Connect on your phone:
+- Paste otpauth:// links (from most authenticator apps' export or "show secret" screens).
+- Or paste an unencrypted Aegis export (JSON).
+- Or fill in the "Add OTP" and "Add code" forms by hand.
+The watch parses the text itself and shows an import report. Changes to entries marked "Require PIN" wait on the watch until you confirm them with your PIN.
+
+GOOD TO KNOW
+- App settings work with the Store version only.
+- Garmin Connect refuses text that contains a backslash. If an Aegis export is refused, replace every \/ with / in a text editor, or use otpauth:// links.
+- Encrypted Aegis exports and Google Authenticator export links are not supported.
+- Keep a backup of your secrets in your phone authenticator. The watch is not a backup.
+
+Needs a watch with Connect IQ API 5.0 or newer and enough app memory (72 models, including Forerunner, fenix, epix, Venu and Instinct models).
+```
+
+## What's New (max. 4000 characters)
+
+```text
+1.0.0: first public release.
+
+Tested on a Forerunner 70: one-time codes, the PIN, touch scrolling, otpauth:// import and Aegis JSON import.
+
+Since the beta (0.9.0):
+- On touch screens, START no longer submits an old-style PIN by accident.
+- "Change PIN" after an old-style PIN asks for the new PIN once, not twice.
+- Entering the PIN with many waiting phone changes no longer stops the app; the changes are applied in small steps.
+- Large waiting changes no longer stop the app at start.
+- A replacement secret or code is checked as soon as it arrives.
+- "Confirm all" and "Reject all" act only on the changes shown.
+- A full storage reports "Storage full" instead of stopping the app.
+- Pasting about 100 otpauth:// links at once no longer stops the app.
+```
+
+## Images
+
+Built by `python3 tools/store_assets.py` from the Forerunner 70 goldens (`test/golden/fr70/`) into [docs/store/](store/). Re-run it after the goldens change.
+
+| Store field | File | Size limit |
+| --- | --- | --- |
+| Hero image (1440 × 720) | [hero-1440x720.png](store/hero-1440x720.png) | 2048 KB |
+| Cover image (500 × 500) | [cover-500.png](store/cover-500.png) | 300 KB |
+| Screen images (390 × 390, round, transparent corners) | [screen-1-list.png](store/screen-1-list.png), [screen-2-otp.png](store/screen-2-otp.png), [screen-3-qr.png](store/screen-3-qr.png), [screen-4-glance.png](store/screen-4-glance.png), [screen-5-pin.png](store/screen-5-pin.png), [screen-6-pdf417.png](store/screen-6-pdf417.png), [screen-7-import.png](store/screen-7-import.png) | 150 KB each |
+
+All images show fake data only.