Loading skill
Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Generates a complete settings screen for iOS/macOS apps with common sections. Use when user wants to add settings, preferences, or configuration UI.
.claude/skills/rshankras-settings-screen/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-10 | ✗→✓ | ▲ Improved | 34% | 0% |
| case-14 | ✗→✓ | ▲ Improved | -1% | 0% |
| case-17 | ✗→✓ | ▲ Improved | 46% | 0% |
| case-19 | ✗→✓ | ▲ Improved | 219% | 0% |
| case-04 | ✓→✓ | = Same ✓ | 16% | 0% |
Generates a production-ready settings screen with modular sections for iOS and macOS apps.
Before generating, ALWAYS check:
# Find existing settings implementations
rg -l "SettingsView|PreferencesView|SettingsScreen" --type swift
# Check deployment target
cat Package.swift | grep -i "platform"
# Or check project.pbxproj for deployment target
# Detect architecture pattern
rg -l "Observable|ObservableObject|@EnvironmentObject" --type swift | head -5
# Check platform (iOS vs macOS)
rg "UIKit|UIApplication" --type swift | head -1 # iOS
rg "AppKit|NSApplication" --type swift | head -1 # macOSIf existing settings implementation found:
Ask user via AskUserQuestion:
Generate these files (customize based on answers):
Sources/Settings/
├── SettingsView.swift # Main container
├── AppSettings.swift # @AppStorage wrapper
├── Components/
│ └── SettingsRow.swift # Reusable row component
└── Sections/
├── AppearanceSettingsView.swift
├── AccountSettingsView.swift
├── NotificationsSettingsView.swift
├── AboutSettingsView.swift
└── LegalSettingsView.swiftRead templates from this skill:
templates/SettingsView.swifttemplates/AppSettings.swifttemplates/SettingsRow.swifttemplates/AppearanceSettingsView.swifttemplates/AccountSettingsView.swifttemplates/NotificationsSettingsView.swifttemplates/AboutSettingsView.swifttemplates/LegalSettingsView.swiftAdapt templates to match:
iOS Integration:
swift// In any view NavigationLink("Settings") { SettingsView() } // Or as sheet .sheet(isPresented: $showSettings) { NavigationStack { SettingsView() } }
macOS Integration:
swift// In App.swift @main struct MyApp: App { var body: some Scene { WindowGroup { ContentView() } Settings { SettingsView() } } }
NavigationStack with ListForm for grouped appearanceUIApplication.openSettingsURLStringSettings scene for standard preferences windowTabView for multiple sectionsForm with appropriate stylingswift@Observable final class AppSettings { static let shared = AppSettings() @AppStorage("appearance") var appearance: Appearance = .system @AppStorage("notificationsEnabled") var notificationsEnabled = true enum Appearance: String, CaseIterable { case system, light, dark } }
swiftstruct SettingsRow<Content: View>: View { let icon: String let iconColor: Color let title: String let content: () -> Content var body: some View { HStack { Image(systemName: icon) .foregroundStyle(iconColor) .frame(width: 28) Text(title) Spacer() content() } } }
After generation, verify:
swift// In SettingsView Section("Custom") { NavigationLink("My Feature") { MyFeatureSettingsView() } }
swift#if DEBUG Section("Debug") { DebugSettingsView() } #endif
swiftif !subscriptionStatus.hasAccess { Section { Button("Upgrade to Pro") { showPaywall = true } } }
paywall-generator - For subscription upgrade prompts in settingsauth-flow - For account management integrationreview-prompt - Trigger review from settings (sparingly)Other measured skills in the registry, with their headline benchmark lift.