RevenueCat vs Adapty
SaaS de gestion d'abonnements iOS + Android — RevenueCat (leader du marché) contre Adapty (focus paywall + A/B testing). Parité fonctionnelle, tarification, intégration.
Louer l'infrastructure d'abonnement multi-boutiques sous forme de SDK + backend
Le framework de première partie d'Apple, mais vous écrivez vous-même le côté serveur
Le seuil est net : si vos revenus suivis mensuels (MTR) sont sous les 2 500 $, RevenueCat est pratiquement gratuit ; à ce niveau, ce n'est pas 1 % que vous comparez, mais un coût nul — votre propre infrastructure reste toujours plus chère en comparaison. Seul le StoreKit 2 pur est défendable pour un produit mono-boutique (App Store uniquement), à produit unique, sensible sur le plan RGPD. Si vous êtes multi-boutiques, synchroniser en parallèle les 18 types de notifications de RTDN avec les notifications V2 de l'App Store devient coûteux ; règle empirique grossière : au-delà de 50 000 $ de MTR, réévaluez la décision.
| Catégorie | RevenueCat | StoreKit 2 (kendi altyapın) |
|---|---|---|
| Performance | 8/10 | 8/10 |
| Facilité d'apprentissage | 8/10 | 5/10 |
| Écosystème | 8/10 | 6/10 |
| Communauté | 6/10 | 5/10 |
| Marché de l'emploi | 5/10 | 6/10 |
| Pérennité | 8/10 | 8/10 |
// RevenueCat - Vérification d'entitlement et achat (iOS SDK 5.x)
import RevenueCat
func configureRevenueCat() {
Purchases.logLevel = .debug
Purchases.configure(withAPIKey: "appl_XXXXXXXXXXXX")
}
func unlockProIfEntitled() async {
do {
let customerInfo = try await Purchases.shared.customerInfo()
if customerInfo.entitlements["pro"]?.isActive == true {
print("Entitlement pro actif")
}
} catch {
print("Erreur customerInfo : \(error)")
}
}
func purchasePro() async {
do {
let offerings = try await Purchases.shared.offerings()
guard let package = offerings.current?.availablePackages.first else { return }
let result = try await Purchases.shared.purchase(package: package)
if result.customerInfo.entitlements["pro"]?.isActive == true {
print("Achat réussi, pro actif")
}
} catch {
print("Erreur d'achat : \(error)")
}
}// StoreKit 2 - Écoute des transactions et vérification d'entitlement (votre propre infrastructure)
import StoreKit
func listenForTransactions() -> Task<Void, Error> {
Task.detached {
for await result in Transaction.updates {
switch result {
case .verified(let transaction):
await grantEntitlement(for: transaction)
await transaction.finish()
case .unverified(_, let error):
print("Échec de la vérification : \(error)")
}
}
}
}
func checkCurrentEntitlement() async -> Bool {
for await result in Transaction.currentEntitlements {
guard case .verified(let transaction) = result else { continue }
if transaction.productID == "pro_monthly" {
return true
}
}
return false
}
func purchase(product: Product) async throws {
let result = try await product.purchase()
switch result {
case .success(let verification):
guard case .verified(let transaction) = verification else { return }
await grantEntitlement(for: transaction)
await transaction.finish()
case .userCancelled, .pending:
break
@unknown default:
break
}
}
func grantEntitlement(for transaction: Transaction) async {
// Envoyer le JWS à votre serveur, vérifier de manière croisée avec l'App Store Server API
}Le seuil est net : si vos revenus suivis mensuels (MTR) sont sous les 2 500 $, RevenueCat est pratiquement gratuit ; à ce niveau, ce n'est pas 1 % que vous comparez, mais un coût nul — votre propre infrastructure reste toujours plus chère en comparaison. Seul le StoreKit 2 pur est défendable pour un produit mono-boutique (App Store uniquement), à produit unique, sensible sur le plan RGPD. Si vous êtes multi-boutiques, synchroniser en parallèle les 18 types de notifications de RTDN avec les notifications V2 de l'App Store devient coûteux ; règle empirique grossière : au-delà de 50 000 $ de MTR, réévaluez la décision.
Obtenir une consultation gratuiteSi vos revenus suivis mensuels (MTR) sont sous les 2 500 $, RevenueCat est pratiquement gratuit et prend en charge la vérification serveur multi-boutiques, les webhooks et la gestion des remboursements — dans ce cas, RevenueCat est généralement judicieux. Pour une application mono-plateforme, à produit unique simple, qui ne veut transmettre ses données de revenus à aucun tiers, le StoreKit 2 pur reste une option défendable. Pour un produit multi-boutiques en croissance, écrire sa propre infrastructure revient généralement plus cher.