SwiftUIRatingPopups is a comprehensive, production-ready library to present customizable in-app rating dialogs, review prompts, and customer feedback modals in SwiftUI.
Designed for indie developers and iOS teams to increase App Store ratings with 30 distinct popup designs—including 15 high-converting 5-Star Boosters engineered with proven psychological triggers (habit streaks, developer reciprocity, ROI value demonstration, variable mystery rewards, and negative review shields).
- ⚡️ Plug & Play: Show any custom rating popup with just
.ratingPopup(isPresented: $showRating, style: .streakFlameCelebration) - 🔥 15 5-Star Boosters: Boost App Store 5-star conversion using psychological triggers (social proof, goal gradient, habit loops).
- 🛡️ Rating Shield: Automatically redirect negative feedback (< 4 stars) to internal support to protect your App Store reputation.
- 📱 Zero Dependencies: Pure SwiftUI & StoreKit built for iOS 16+ and macOS 13+.
- 🎨 Deep Customization: Adjust colors, haptics, thresholds, tags, and animations with
RatingPopupConfiguration.
Present any rating or review popup anywhere in your SwiftUI hierarchy using the .ratingPopup(...) view modifier:
import SwiftUI
import SwiftUIRatingPopups
struct ContentView: View {
@State private var showRating = false
var body: some View {
Button("Rate App") {
showRating = true
}
.ratingPopup(
isPresented: $showRating,
style: .streakFlameCelebration, // Or .indieDeveloperStory, .timeSavedROI, .mysteryDelightChest, etc.
config: RatingPopupConfiguration(
title: "Loving the app?",
accentColor: .orange,
appStoreThreshold: 4,
appStoreId: "YOUR_APP_ID",
streakDaysCount: 7,
hoursSavedCount: 4.5
),
onRate: { rating in
print("User rated: \(rating) stars")
},
onReviewSubmitted: { result in
print("Feedback summary: \(result.formattedSummary)")
}
)
}
}- Select File > Add Package Dependencies...
- Paste the repository URL:
https://github.com/aayush-gandhi-ios/SwiftUIRatingPopups.git - Select Exact Version: 1.2.0 (or Up to Next Major) and click Add Package.
- Link
SwiftUIRatingPopupsto your app target.
dependencies: [
.package(url: "https://github.com/aayush-gandhi-ios/SwiftUIRatingPopups.git", from: "1.2.0")
]var config = RatingPopupConfiguration()
config.title = "Enjoying our App?"
config.accentColor = .indigo
config.secondaryAccentColor = .purple
config.appStoreThreshold = 4 // Ratings >= 4 trigger App Store prompt
config.appStoreId = "YOUR_APP_ID" // Direct write-review App Store link
config.developerName = "Aayush"
config.communityCurrentCount = 4872
config.communityTargetCount = 5000
config.rewardBadgeTitle = "VIP Gold Supporter"
config.enableHaptics = trueHow does SwiftUIRatingPopups protect my app from negative ratings?
The library provides smart two-step routing. When a user rates 4 or 5 stars, it prompts them to post their review on the App Store via StoreKit or a direct review deep link. If the user provides a lower rating (1-3 stars), it gracefully directs them to an internal feedback form or 1-tap direct founder support so you can resolve the issue privately without hurting your public App Store score.Is StoreKit SKStoreReviewController integrated?
Yes! High ratings automatically request review via Apple's nativeSKStoreReviewController or open the direct App Store review URL if appStoreId is configured.
Which iOS and macOS versions are supported?
Supports iOS 16.0+ and macOS 13.0+ with modern SwiftUI animations, Layout protocols, and haptic feedback.To test and preview all 30 designs with live customization and callback console:
import SwiftUI
import SwiftUIRatingPopups
@main
struct RatingApp: App {
var body: some Scene {
WindowGroup {
RatingPopupsDemoView()
}
}
}- iOS 16.0+ / macOS 13.0+
- Xcode 15.0+
- Swift 5.9+ / 6.0
- Zero third-party dependencies
This project is licensed under the MIT License - see the LICENSE file for details.



























