SwiftUIRatingPopups

main

30+ Plug & Play Rating & Review Popups in SwiftUI for iOS & macOS. Includes 5-star boosters, App Store review prompts, emoji feedback, and NPS meters with SPM support.
aayush-gandhi-ios/SwiftUIRatingPopups

⭐️ SwiftUIRatingPopups: 30+ SwiftUI Rating & Review Popups for iOS & macOS

Swift Platform SPM License

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).


🌟 Why Use SwiftUIRatingPopups?

  • ⚡️ 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.

📸 Screenshots & Visual Gallery

🔥 1. 5-Star Conversion Boosters


Streak Flame Celebration 🔥
.streakFlameCelebration

Indie Developer Note 👨‍💻
.indieDeveloperStory

5,000 Milestone Goal 🎯
.communityGoalMilestone

Magnetic Love Meter 💖
.magneticLoveMeter

Time Saved ROI Impact ⏱️
.timeSavedROI

Reviewer Hall of Fame 🏆
.hallOfFameBacker

Mystery Surprise Chest 🎁
.mysteryDelightChest

Indie vs Big Tech Shield 🛡️
.davidVsGoliathIndie

Social Proof Testimonials 🌟
.socialProofWall

Roadmap Feature Vote 🗳️
.roadmapVoteTicket

Virtual Coffee Tip Jar ☕️
.coffeeTipHighFive

Top 5% Superfan VIP 🎖️
.superfanVIPInvite

Feature Gratitude Priming ✨
.featureComplimentDelight

Celebration Perk Reward 👑
.perkUnlockReward

Founder Support Shield 🛡️
.smartNegativeInterceptor

⭐️ 2. Classic & Sentiment Popups


Classic 5-Star Alert ⭐️
.classicStars

Heart Pulse Meter ❤️
.heartPulse

Minimalist Bottom Sheet 📱
.minimalBottomSheet

Emoji Mood Reaction 😃
.emojiReaction

Thumbs Quick Sentiment 👍
.thumbsQuickSentiment

Swipeable Sentiment Card 🃏
.swipeableTinderCard

📝 3. Reviews, Bento Grid & Metrics


Detailed Review & Tags 🏷️
.detailedReview

Bento Grid Feedback Hub 🍱
.bentoGridFeedback

NPS 0-10 Score Slider 📊
.npsScore

Aspect Breakdown Rating 📈
.aspectBreakdown

Glassmorphic Neon Card 🔮
.glassmorphicModern

Confetti Delight Modal 🎉
.confettiDelight

Compact Floating Toast 💊
.compactPillToast

Milestone Achievement 🏅
.milestoneCelebration

Adaptive Reason Chips 💡
.thumbsQuickSentiment

🚀 Quick Start: How to Show a Rating Popup in SwiftUI

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)")
            }
        )
    }
}

📦 Installation via Swift Package Manager (SPM)

In Xcode:

  1. Select File > Add Package Dependencies...
  2. Paste the repository URL:
    https://github.com/aayush-gandhi-ios/SwiftUIRatingPopups.git
    
  3. Select Exact Version: 1.2.0 (or Up to Next Major) and click Add Package.
  4. Link SwiftUIRatingPopups to your app target.

In Package.swift:

dependencies: [
    .package(url: "https://github.com/aayush-gandhi-ios/SwiftUIRatingPopups.git", from: "1.2.0")
]

⚙️ Customization Options (RatingPopupConfiguration)

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 = true

❓ Frequently Asked Questions (FAQ)

How 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 native SKStoreReviewController 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.

🕹 Interactive Showcase & Demo App

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()
        }
    }
}

📱 Requirements

  • iOS 16.0+ / macOS 13.0+
  • Xcode 15.0+
  • Swift 5.9+ / 6.0
  • Zero third-party dependencies

📄 License

This project is licensed under the MIT License - see the LICENSE file for details.

Description

  • Swift Tools 5.9.0
View More Packages from this Author

Dependencies

  • None
Last updated: Sun Aug 23 2026 06:16:06 GMT-0900 (Hawaii-Aleutian Daylight Time)