Skip to content

feat: add onboarding experience#33

Closed
zeck00 wants to merge 2 commits intomomenbasel:mainfrom
zeck00:feat/onboarding
Closed

feat: add onboarding experience#33
zeck00 wants to merge 2 commits intomomenbasel:mainfrom
zeck00:feat/onboarding

Conversation

@zeck00
Copy link
Copy Markdown

@zeck00 zeck00 commented Apr 14, 2026

Summary

First-launch onboarding that walks users through granting Full Disk Access. Right now the app just shows a dismissible banner that's easy to ignore — this gives new users a proper guided setup so they don't miss it.

3 screens:

  1. Welcome — app logo with spring animation, tagline, three feature cards (Smart Scan, One-Click Clean, App Uninstaller)
  2. Full Disk Access — explains why it's needed with numbered steps, button to open System Settings, polls every second and updates live when access is granted
  3. Ready — confirmation with access status pill, "Start Scanning" button

Other details:

  • Animated capsule page dots, skip button on pages 1-2
  • Only shows once (persisted via @AppStorage)
  • All strings use LocalizedStringKey for i18n
  • .focusable(false) to prevent tab cycling through buttons

Note: Builds on #31 (UI overhaul) for the theme system. Can be reviewed independently but merges cleanly after #31.

Test plan

  • Delete PureMac.OnboardingComplete from UserDefaults to trigger onboarding
  • Verify welcome page renders with logo animation and feature cards
  • Navigate to FDA page — click "Open System Settings" and grant access
  • Verify shield icon changes to green checkmark live
  • Click "Start Scanning" — verify main app loads
  • Quit and relaunch — verify onboarding doesn't show again
  • Test Skip button from page 1 — should jump to page 3

zeck00 and others added 2 commits April 15, 2026 00:50
- Add adaptive color system with light/dark mode support using NSColor appearance callbacks
- Add appearance picker (System/Light/Dark) in Settings
- Redesign sidebar with selection indicator bars, tinted icon backgrounds, and Smart Scan card
- Redesign SmartScanView with thicker progress rings, staggered live results, and junk breakdown bar
- Redesign Settings with native grouped Form layout and section icons
- Replace heavy gradients with solid colors and subtle borders throughout
- Add custom app icon from logo.png with proper rounded-rect background
- Add SidebarLogo image asset for branding
- Reduce glow and shadow intensity for a cleaner look
- Bump version to 1.1.0 (build 4)
- Update localization strings for zh-Hans and zh-Hant

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
- 3-screen onboarding flow shown on first launch
- Welcome page with app logo, tagline, and feature cards
- Full Disk Access page with step-by-step instructions and live permission polling
- Ready page with access status confirmation
- Animated page dots, skip button, spring-in logo animation
- Persisted via @AppStorage so it only shows once
- All strings use LocalizedStringKey for localization support

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@zeck00
Copy link
Copy Markdown
Author

zeck00 commented Apr 14, 2026

Onboarding Screens:
image
image
image

@momenbasel
Copy link
Copy Markdown
Owner

Hey @zeck00, love this one! First-launch onboarding for Full Disk Access is genuinely important - the dismissible banner is too easy to ignore, and without FDA the app can't scan half the important directories.

We've implemented an onboarding flow inspired by your approach - 3 pages (Welcome with feature cards, FDA setup with live status polling, and Ready confirmation). Shows only on first launch via @AppStorage.

Your implementation details were solid - especially the timer-based FDA polling and the numbered steps in the FDA page. We kept those patterns.

If you'd like to polish the onboarding further (animations, transitions, etc.) on the v2 codebase, contributions are very welcome!

Thanks so much for all four PRs - you clearly care about making PureMac a great app. We really appreciate it.

momenbasel added a commit that referenced this pull request Apr 14, 2026
Inspired by community PRs #29, #30, #32, #33:

- Onboarding: 3-page welcome flow (Welcome, FDA setup, Ready)
  Shows only on first launch via @AppStorage
  Polls FDA status every second with live UI update
- Search: .searchable() in CategoryDetailView for filtering files
- Confirmation: .confirmationDialog before all destructive operations
- Protection: 27 Apple system apps excluded from uninstaller
  (Safari, Finder, Mail, Calendar, Photos, etc.)
  Also skips /System paths entirely
@momenbasel
Copy link
Copy Markdown
Owner

Hey @zeck00! Closing this - v2.0 now has a 3-page onboarding flow inspired by your approach! Welcome page with feature cards, FDA setup with live status polling, and Ready confirmation. Shows only on first launch via @AppStorage, just like your implementation.

Sorry for closing all these PRs at once - we did a full native SwiftUI rewrite for v2.0 which changed everything. Your onboarding design was the best idea from all the PRs though - FDA setup is genuinely critical for first-time users and the banner was way too easy to dismiss.

Would love if you could check out the new codebase and let us know what you think! If you want to polish the onboarding further (animations, transitions, better visual design), contributions are very welcome. Thanks so much for all four PRs - you clearly care about making PureMac great and we really appreciate it!

@momenbasel momenbasel closed this Apr 14, 2026
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.

2 participants