Skip to content

Settings screen (notifications, data export, about) #33

@ryanabooth

Description

@ryanabooth

The app has no Settings surface today. Add one.

Scope

Gear icon on every tab's nav bar (or a dedicated tab if we want to invest). Sections:

Notifications

  • Master toggle (mirrors system permission)
  • Per-type toggles:
    • Habit reminders
    • Plot wither / death alerts
    • Streak milestone celebrations
  • Deep-link to system Settings if permission denied

Data

  • Export all data as JSONUIActivityViewController share sheet with a .json file: every model except FarmState derived state, suitable for backup. Includes a schema version so future imports can migrate.
  • Import from JSON — read a file, merge or replace (warn user). Defer if scope balloons.
  • Reset farm — destructive, requires double-confirmation. Wipes the model store and re-bootstraps.

About

  • App version + build number (read from Info.plist)
  • Link to docs/asset-spec.md (when hosted)
  • Link to roadmap / GitHub issues
  • Acknowledgements

Implementation notes

  • New SettingsView under LifePlanner/UI/Settings/
  • New SettingsInteractor for the destructive operations (export, import, reset) — or extend an existing one
  • JSON export: JSONEncoder against a flat DTO struct; don't try to encode @Model types directly

Acceptance criteria

  • Settings reachable from at least one tab
  • Each notification toggle persists across launches
  • Export produces a valid JSON file the user can read
  • Reset farm restores the app to first-launch state (FarmState reseeded, all data gone)

Metadata

Metadata

Assignees

No one assigned

    Labels

    enhancementNew feature or requestphase-7Polish & retention

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions