Documentation Index
Fetch the complete documentation index at: https://docs.swiftaiboilerplate.com/llms.txt
Use this file to discover all available pages before exploring further.
Complete technical documentation: See
/docs/modules/Feature.Settings.md in the projectWhat’s new in v2.0
SettingsView.swiftis now a ≤ 125-line composition root. Every section lives in its own file underViews/Settings/*.swift(appearance, privacy, account, legal, and so on). The public entry point is unchanged; downstream customisations that used to edit one giant file now edit the matching section file.- Paywall CTAs use the standard system styles:
.buttonStyle(.borderedProminent)for the primary CTA and.borderedfor the secondary. If you were styling paywall buttons via.background(), switch to.tint(YourColor)on the standard styles so Liquid Glass handles the surface correctly on iOS 26. - Profile, EmailSignUp, and related screens were split the same way. Check the
Views/subfolders if a previous customisation disappears from the top-level file.
Purpose
FeatureSettings module handles:- Settings UI - User preferences management
- Paywall - Beautiful subscription screen
- Theme Selection - 5 built-in themes
- Privacy Controls - Diagnostics, notifications
- Account Management - Sign out, delete account
Key Components
SettingsViewModel
Manages app-wide settings:PaywallViewModel
Manages subscription purchases:Settings Categories
Appearance
Appearance
Theme Selection:
- System (follows iOS)
- Light (always light)
- Dark (always dark)
- Aurora (teal/purple)
- Obsidian (charcoal/amber)
Privacy
Privacy
User Controls:
- Share diagnostics (opt-in crash reporting)
- Notification permissions
- Data export (GDPR)
- Account deletion
Account
Account
Management:
- Subscription status
- Manage subscription (App Store)
- Sign out
- Delete account
Legal
Legal
Links:
- Privacy Policy
- Terms of Service
- Subscription Terms
- App version display
Paywall UI
Beautiful subscription screen with:- ✅ Feature comparison
- ✅ Pricing display
- ✅ Monthly and annual options
- ✅ Clear CTAs
- ✅ Terms and privacy links
- ✅ Restore purchases button
Customization Examples
Add New Setting
Customize Paywall
Add Custom Theme
Paywall Best Practices
Clear Value
Show exactly what users get:
- List specific features
- Highlight most popular plan
- Show savings (annual vs monthly)
Transparent Terms
- Link to subscription terms
- Link to privacy policy
- Cancellation policy clear
- Auto-renewal explained
Key Files
| Component | Location |
|---|---|
| ViewModels | Packages/FeatureSettings/Sources/FeatureSettings/ViewModels/ |
| Settings UI | Packages/FeatureSettings/Sources/FeatureSettings/Views/SettingsView.swift |
| Paywall UI | Packages/FeatureSettings/Sources/FeatureSettings/Views/PaywallView.swift |
Dependencies
- Core - Error handling, logging, theme types
- Payments - Subscription management
- DesignSystem - UI components
Used By
- Main App - Settings tab
- All features - Theme observation
- Profile - Subscription status
Best Practices
Settings Persistence
Settings Persistence
- Save immediately on change
- Use repository pattern
- Handle errors gracefully
- Provide feedback
Paywall UX
Paywall UX
- Make it beautiful
- Highlight value
- Easy to dismiss
- Test purchase flow
Privacy
Privacy
- Opt-in for tracking
- Clear data policies
- Easy account deletion
- GDPR compliance
Learn More
Full Documentation
Find complete FeatureSettings guide in your project
Payments Module
Subscription management
Design System
Theme system
Building Guide
Customize settings
Build with AI (fast)
You can customize this module in minutes using our ready-to-paste LLM prompts.Example Prompt
Context:SwiftAIBoilerplatePro/AppShell/Onboarding*
Prompt:
“Add a Privacy step to onboarding that links to the policy page and a ‘Continue’ CTA.”
See all prompts → /docs/prompts/OnboardingModule.prompts.mdSee in project:
docs/modules/OnboardingModule.md
Test Coverage
75%+ - Settings and paywall testing Tests include:- Settings persistence
- Theme switching
- Paywall display
- Purchase flows
- Error handling
