Skip to content

SwiftUI-native framework that simplifies StoreKit integration with a fluent, chainable API and feature-first approach

License

Notifications You must be signed in to change notification settings

tddworks/InAppKit

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

InAppKit

The simplest way to add premium features to your Swift app

Transform any SwiftUI view into a premium feature with just one line of code. InAppKit handles StoreKit complexity so you can focus on building great features.

ContentView()
    .withPurchases("com.yourapp.pro")

🎨 Visual Showcase

InAppKit Paywall
🚀 Ready-to-use Paywalls
Beautiful, localized paywalls that work out of the box
InAppKit Purchase Options
💳 Smart Purchase Options
Flexible pricing cards with marketing badges and savings indicators

✨ What You Get

  • 🚀 One-line setup - Add premium features instantly
  • 🎯 Type-safe features - Enum-based feature gating prevents errors
  • 💳 StoreKit integration - Handles purchases, receipts, and validation
  • 🎨 Customizable paywalls - Beautiful UI out of the box, fully customizable
  • 🌍 Localization support - Built-in internationalization with fallback safety
  • 📱 iOS 17+ support - Built with latest SwiftUI and StoreKit 2

🚧 Requirements

  • iOS 17.0+
  • Xcode 15.0+
  • Swift 5.9+

📦 Installation

Swift Package Manager

dependencies: [
    .package(url: "https://github.com/tddworks/InAppKit.git", from: "1.0.0")
]

🚀 Quick Start

1. Add InAppKit to any view

import InAppKit

ContentView()
    .withPurchases("com.yourapp.pro")

2. Gate premium features

Text("Premium Content")
    .requiresPurchase()  // Shows paywall if not purchased

3. That's it!

InAppKit automatically:

  • Creates and displays paywalls when needed
  • Handles StoreKit purchases
  • Validates receipts
  • Remembers purchase state

📚 Learn More

Learn core concepts: Products, Features, and Paywalls

Choose the right strategy: Freemium, Premium, or Subscription

Customize UI, add marketing info, and advanced configuration

Multi-language support with 30+ localization keys and fallback safety

Complete API documentation and advanced features

🎯 Real-World Example

enum AppFeature: String, AppFeature {
    case removeAds = "remove_ads"
    case cloudSync = "cloud_sync"
    case exportPDF = "export_pdf"
}

ContentView()
    .withPurchases(products: [
        Product("com.yourapp.pro", features: AppFeature.allCases)
    ])
    .withPaywall { context in
        PaywallView(products: context.availableProducts)
    }

🛠️ Support

🤝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

📄 License

Apache-2.0 License. See LICENSE for details.


🙏 Acknowledgments

  • Built on Apple's StoreKit 2
  • Inspired by SwiftUI's declarative approach
  • Designed for modern iOS development

Ready to add premium features?Start with the Getting Started Guide

InAppKit - Because in-app purchases shouldn't be complicated. 🚀

Made with ❤️ by the TDDWorks team

About

SwiftUI-native framework that simplifies StoreKit integration with a fluent, chainable API and feature-first approach

Resources

License

Stars

Watchers

Forks

Sponsor this project

  •  

Packages

No packages published

Languages