iOSBuilt for iOS (Swift)

Analytics & Monitoring
for iOS (Swift)

One Swift Package Manager dependency. Native crash capture, URLSession network tracing, screen-view tracking, and slow-frame metrics — across SwiftUI and UIKit alike. Apple privacy manifest included.

  • SwiftUI and UIKit — same SDK, single init call
  • Native crash capture via Mach signal handlers
  • URLSession swizzling traces every network request
  • Screen-view tracking for both UINavigationController and SwiftUI NavigationStack
  • Slow-frame and hitch metrics for 60 / 120 Hz displays
  • Apple PrivacyInfo.xcprivacy manifest shipped
swift
1// In AppDelegate or App entrypoint
2import JustAnalytics
3
4@main
5struct MyApp: App {
6 init() {
7 JustAnalytics.start(
8 siteId: "YOUR_SITE_ID",
9 environment: .production
10 )
11 }
12}
Active Users
0+12%
Pageviews
0+8%
Errors
0resolved
Uptime
0%all green

Built for iOS apps

SwiftUI or UIKit, App Store or TestFlight — one SDK covers crash, network, and UX metrics.

Native crash capture

Mach signal handlers (KSCrash-based) catch crashes the way Crashlytics does — including out-of-memory and watchdog kills.

URLSession tracing

Network calls instrumented via URLProtocol so every fetch shows up as a span with timing, status, and host.

Screen view tracking

UINavigationController and SwiftUI NavigationStack observers emit screen views — feeds into funnels and session replay.

Privacy compliant

Ships with PrivacyInfo.xcprivacy declaring required reasons. ATT-friendly — no IDFA collection by default.

Slow-frame metrics

CADisplayLink-based hitch detection on the main thread. Captures slow renders against both 60 and 120 Hz baselines.

Alert rules

Crash-free-session-rate, p95 launch time, and per-screen error alerts. Routes to email, webhook, or PagerDuty.

SwiftUI setup

Swift Package Manager dependency, single `start()` call in your App's init.

// File → Add Package Dependencies…
// https://github.com/justanalyticsapp/ios-sdk

// MyApp.swift
import SwiftUI
import JustAnalytics

@main
struct MyApp: App {
    init() {
        JustAnalytics.start(
            siteId: "YOUR_SITE_ID",
            environment: .production,
            // optional — opt out of features you don't want
            captureNetwork: true,
            captureScreens: true,
            captureCrashes: true
        )
    }

    var body: some Scene {
        WindowGroup { ContentView() }
    }
}

Ready to simplify your stack?

Replace five tools with one platform. Start with the free tier or try Pro free for 7 days.

Start 7-Day Free Trial