Back to AtesKit
UI Components

Settings Components

AtesKit provides production-ready settings screens with premium UI, notification management, email integration, and extensive customization options.

Key Features

Complete Settings: Full-featured settings screen out of the box
Notification Management: Permission handling with granular controls
Email Integration: In-app feedback and support emails
Customizable: Add custom sections and branding

AKSettingsView

A complete, production-ready settings screen with premium banner, profile section, membership management, support options, and custom sections support.
FEATURES
Premium upgrade banner with gradient
User profile display
Membership status & credit display
Rate app integration
Email feedback composer
Restore purchases
Terms & Privacy links
Custom sections support
Mystical background
USAGE EXAMPLES
Swift
// Basic usage
AKSettingsView()
    .environmentObject(config)

// With custom sections
AKSettingsView {
    Section("Custom") {
        NavigationLink("My Feature") {
            MyFeatureView()
        }
    }
}
.environmentObject(config)

// With user profile
AKSettingsView(user: currentUser)
    .environmentObject(config)

AKNotificationSettingsView

A premium notification settings screen with permission management, status display, and granular notification type controls (alerts, badges, sounds).
FEATURES
Permission status detection
Request permission flow
Deep link to iOS Settings
Alerts toggle
Badges toggle
Sounds toggle
Decorative header with icon
Auto-refresh on app activation
USAGE EXAMPLES
Swift
// Basic usage
NavigationStack {
    AKNotificationSettingsView()
}

// Custom title
AKNotificationSettingsView(
    title: "Bildirimler",
    showHeader: true
)

// Without decorative header
AKNotificationSettingsView(showHeader: false)

AKMailView

A UIViewControllerRepresentable wrapper for MFMailComposeViewController, enabling in-app email composition with pre-filled content.
USAGE EXAMPLES
Swift
// Email feedback
.sheet(isPresented: $showEmail) {
    AKMailView(
        content: "I would like to give feedback.",
        to: "support@example.com",
        subject: "Feedback"
    )
}

// Bug report
AKMailView(
    content: "Bug description...",
    to: "bugs@example.com",
    subject: "Bug Report"
)

Best Practices

AKConfig Required: Always provide AKConfig via environmentObject
Email Capability: Check MFMailComposeViewController.canSendMail() before showing
Notifications: Handle all permission states (notDetermined, denied, authorized)
Custom Sections: Use ViewBuilder for flexible settings extensions