DEV Community

Cover image for Logging Events using PostHog - #30DaysOfSwift
Vaibhav Dwivedi
Vaibhav Dwivedi

Posted on • Edited on

Logging Events using PostHog - #30DaysOfSwift

Day 6: Know Thyself with A Hog! 📊

In the sixth post of #30DaysOfSwift series, we’ll learn how to implement PostHog Analytics in your iOS app.

Understanding user behavior is key to improving your app, and PostHog makes it easy to track events and gather insights.

These are the steps to integrate PostHog into your Swift app and start logging events.

Steps to Add PostHog Analytics:

1. Install the PostHog SDK:

  • Open your Package.swift file or go to File > Swift Packages > Add > Package Dependency in Xcode.
  • Add the PostHog SDK by using this URL:

https://github.com/PostHog/posthog-ios

  • Follow the prompts to add it to your project.

2. Initialize PostHog:

  • In your AppDelegate.swift (or SceneDelegate.swift depending on your project), import PostHog and initialize it with your project API key.
import PostHog

@main
class AppDelegate: UIResponder, UIApplicationDelegate {

    var window: UIWindow?

    func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {

        PostHog.configure(with: PHGPostHogConfiguration(
            apiKey: "your_api_key",  // Replace with your actual API key
            host: URL(string: "https://app.posthog.com")!
        ))

        return true
    }
}
Enter fullscreen mode Exit fullscreen mode

3. Track an Event:

  • Now that PostHog is set up, let’s log an event when a user performs a specific action (e.g., completing a lesson).
import PostHog

struct ContentView: View {
    var body: some View {
        Button("Complete Lesson") {
            trackEvent()
        }
    }

    func trackEvent() {
        PostHog.shared().capture("lesson_completed", properties: ["lesson_id": 123, "user_level": "intermediate"])
    }
}
Enter fullscreen mode Exit fullscreen mode

Start tracking those actions and level up your app! 📈

Happy Coding!

Top comments (0)