Skip to content

Revisit Settings information architecture and section hierarchy #140

Description

@muhiro12

Priority assessment — 2026-09-29

  • Owner priority: 2/5
  • Final priority: 2/5
  • Rationale: The Settings information architecture would benefit from cleanup, but the current structure is functional and this is not a release, security, privacy, or data-safety blocker.
  • Sequencing: Defer unless a very small low-risk cleanup naturally fits before release.

Context

Cookle's Settings screen is already built with native SwiftUI List / Section semantics and MHUI chrome. The goal is to keep that native foundation, not redesign Settings into custom cards.

The current SettingsSidebarView has grown incrementally and now presents:

  • subscription,
  • iCloud,
  • recipe-suggestion notifications,
  • data management,
  • Debug / Licenses / Show tips again,
  • Shortcuts.

Some section boundaries and labels are historical rather than obviously task-oriented. For example, the subscribed iCloud section uses a generic "Settings" header, the subscription row is an unlabeled standalone section, and Debug/Licenses/tip reset are grouped in an unlabeled general section.

Goal

Review the Settings information architecture now that the app has grown, and make the ordering/grouping feel intentional while preserving native platform behavior.

Proposed scope

  • Inventory all current Settings rows, actions, conditional states, headers, and footers.
  • Group related settings by user task rather than by the order features were added.
  • Re-evaluate whether subscription and iCloud belong together or should remain conditionally separate.
  • Keep notification controls and their explanatory footer semantically grouped.
  • Give low-frequency app/support actions (Licenses, Show tips again, Debug when enabled) a deliberate location.
  • Keep Shortcuts discoverable without making it visually compete with core preferences.
  • Preserve native List, Section, controls, Dynamic Type, VoiceOver order, and localization.
  • Avoid changing persistence, subscription, notification, backup, or routing behavior as part of the layout cleanup.

Acceptance criteria

  • The final section order and grouping have a documented rationale.
  • Generic or ambiguous section labels are replaced or removed where appropriate.
  • Conditional subscribed/unsubscribed states remain coherent.
  • Notification and data-management sections preserve their current functional behavior.
  • Debug-only controls remain available without dominating production Settings.
  • iPhone and iPad Settings remain readable at representative Dynamic Type sizes.
  • No custom settings-card system is introduced solely for this cleanup.

Related: #110 established broader screen hierarchy and is complete; this issue is a focused follow-up for the current Settings surface.

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions