Skip to content

feat(ios): add Quick Log widget shortcuts - #2881

Open
Jordan2139 wants to merge 1 commit into
ryanbr:mainfrom
Jordan2139:codex/ios-quick-add-widget
Open

Jordan2139 wants to merge 1 commit into
ryanbr:mainfrom
Jordan2139:codex/ios-quick-add-widget

Conversation

@Jordan2139

@Jordan2139 Jordan2139 commented Oct 30, 2026 •

Copy link
Copy Markdown

NOOP currently requires navigating through the app to log everyday inputs. This adds a Quick Log widget that opens the existing hydration, caffeine, journal, and workout logging screens.

  • Medium Home Screen widgets show all four shortcuts. Small Home Screen and circular/rectangular Lock Screen widgets let the user choose one log type, defaulting to hydration.
  • Routes wait for onboarding, terms, and the automatic What's New sheet. Hydration retains its default-off opt-in; entries are saved through the existing editors.
  • Uses StrandDesign tokens and the app's translated string catalog. Adds translations for the new widget copy in all ten existing locales.
  • iOS-specific navigation: no Android analytics, storage formats, database schema, or BLE behavior changes.

Validation:

  • Generated the Xcode project with xcodegen generate; generated output is excluded from this PR.
  • Built the full NOOPiOS app and its widget extension for the arm64 iOS Simulator with Xcode 27.1. No warnings in the changed Swift files.
  • Built the macOS Strand app and ran 25 focused StrandTests: QuickLogDestinationTests, HydrationEntriesTests, and WidgetSnapshotTests. All passed. New routing tests cover deferred first-run requests, one-time consumption, repeated selections, and malformed/unrelated links.
  • All 338 Tools Python tests passed with TMPDIR=/private/tmp python3 -m unittest discover -s Tools. The canonical temporary directory avoids an existing macOS /var versus /private/var assertion mismatch in the source-reference tests.
  • The i18n regression audit against upstream/main, source-hygiene lint, and git diff checks passed.

Manual validation limitation: simulator tap-through testing could not complete because the local iOS runtime stalled in first-boot OS data migration. Widget gallery configuration, layout, and tapping should still be checked on a physical iPhone. No strap/BLE behavior was changed.

Based on upstream main at 2a1de76, re-fetched after local tests with no newer upstream commits. GitHub's Apple build checks are still running; Android, Linux capture, translation, and source-hygiene checks have passed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant