Availability from... Learn more

EventFlow: A Platform-Independent Analytics Framework

Analytics implementation in mobile apps often becomes tightly coupled to specific providers, making it painful to switch services or maintain consistent tracking across platforms. EventFlow solves this with a provider-agnostic approach built on three core components: the Framework, SDK, and Studio.

The EventFlow Ecosystem

EventFlow isn’t just a library - it’s a complete analytics implementation strategy comprising three integrated tools:

  1. EventFlow Framework - The conceptual foundation defining how events are structured
  2. EventFlow SDK - The implementation layer for mobile apps
  3. EventFlow Studio - A visual tool for designing and exporting event taxonomies

EventFlow Framework

The Framework establishes a taxonomy-based structure for event tracking. Rather than arbitrary event names scattered throughout your codebase, events are composed from three building blocks:

  • Objects - What is being tracked (e.g., Product, User, Cart)
  • Actions - What happened (e.g., Added, Viewed, Purchased)
  • Properties - Additional context (e.g., productId, quantity, price)

This approach eliminates naming inconsistencies and duplication issues that plague most analytics implementations.

Provider Independence

The Framework’s key advantage is platform independence. Instead of writing provider-specific code throughout your app, you define events once and connect them to any analytics service: Firebase, PostHog, Mixpanel, Amplitude, Segment, TelemetryDeck, Heap, and Rudderstack.

A single event call can trigger multiple providers simultaneously, making comparison testing between services trivial.

EventFlow SDK

The SDK is the practical implementation of the Framework, currently available for Swift with React Native and Flutter on the roadmap.

Core Functions

The SDK provides six standard functions for comprehensive tracking:

FunctionPurpose
trackEventTrack standard and custom events
trackScreenTrack screen views
trackPropertyTrack individual or grouped properties
trackPurchaseTrack revenue with amount and currency
identifyUserTrack user identity and properties
registerProviderConnect analytics services

Implementation Example

Events follow the Object + Action + Properties pattern:

trackEvent(.ProductAdded(productTitle: item.name))

Configuration involves importing the EventFlow package, defining your event taxonomy through EventObject, EventAction, EventProperty, and Event classes, then integrating tracking calls in your AppDelegate.

Switching Providers

The primary benefit is provider flexibility. To change your analytics provider, you simply modify registerProvider - no need to touch tracking code throughout your application.

EventFlow Studio

Studio is the visual design tool for analytics planning, serving both product owners and developers.

For Product Owners

  • Map user flows and journeys visually
  • Design event structures collaboratively
  • Create scenarios combining multiple events

For Developers

  • Define Event Objects, Actions, and Properties as a taxonomy
  • Export events as tracking code compatible with EventFlow SDK
  • Maintain consistency between design and implementation

Key Features

Canvas: A visual design space for collaborative discussions about event structures. Perfect for whiteboarding sessions with stakeholders.

Scenarios: Combine events into user flows and journeys. Track complete user paths rather than isolated interactions.

Screens: Designate where specific events occur within your app, maintaining clear documentation of your tracking implementation.

Why EventFlow?

Traditional analytics implementations suffer from common problems:

  • Provider lock-in - Switching services means rewriting tracking code
  • Inconsistent naming - Different developers use different conventions
  • Scattered implementation - Tracking code spread throughout the codebase
  • Poor documentation - No single source of truth for what’s tracked

EventFlow addresses each of these by providing:

  • Provider abstraction - Change services with a single line of code
  • Taxonomy structure - Enforced consistency through Objects and Actions
  • Centralised SDK - All tracking flows through standard functions
  • Visual documentation - Studio serves as the source of truth

Getting Started

The EventFlow ecosystem works best when adopted holistically:

  1. Use Studio to design your event taxonomy with stakeholders
  2. Export the taxonomy and implement using the SDK
  3. Leverage the Framework’s provider abstraction to connect your analytics services

This approach ensures your analytics implementation is maintainable, consistent, and flexible enough to evolve with your product.