Analytics for iOS apps, in Swift

A small Swift Package with no dependencies. Add it, and see what people do in your app next to your App Store downloads, reviews and sales.

Free during beta. One email when your spot opens, nothing else.

Add it

// Xcode › File › Add Package Dependencies… › https://github.com/AhmedAshour/apparent-swift

// Start it in the App struct's init, or application(_:didFinishLaunchingWithOptions:)
import Apparent

Apparent.start(app: "my-app", key: "<your key>")

// SwiftUI, on each screen's view:
.apparentScreen("Home")

// The actions that matter
Apparent.track("sign_up")

On Swift Package Manager. Every option: the Swift (iOS) docs.

What you get

  • SwiftUI screens with one modifier; UIKit screens if you turn them on.
  • Purchases, renewals and refunds from StoreKit 2, or through RevenueCat.
  • Crashes caught as the app goes down, sent on the next launch.
  • Opens, visits, updates and time in the app.
  • App Store downloads, ratings and reviews on the same page.

Private by default

  • Ships a PrivacyInfo.xcprivacy: no tracking, no tracking domains.
  • No IDFA, no IDFV, no ATT prompt.
  • The IP address is used to tell the country, then dropped. It's never stored.
  • One random id per install, made by the SDK. A user id only if you set one.
  • optOut() stops it, and it's remembered. Your data is never sold or shared.

Questions

Which iOS versions does it support?

iOS 15 and macOS 12 and later.

Does it need the App Tracking Transparency prompt?

No. It never reads the IDFA or IDFV, and its privacy manifest declares no tracking.

What do I answer in App Store privacy labels?

Product interaction, a device id the SDK makes, crash data and coarse location, used for analytics, not for tracking. The docs list each row.

Can I use it without RevenueCat?

Yes. It reads StoreKit 2 transactions itself: purchases, renewals and refunds.

Other SDKs

Also read

Your app already has a story. Start reading it.

Free during beta. One email when your spot opens, nothing else.