# How to measure the time-to-first-frame on iOS

The time-to-first-frame, also known as the start-up time, is the time between the moment where playback is requested and the moment where the first frame is rendered.

To measure it, measure the time between the `play` event and the `playing` event.

## Usage

```swift
var playEventRegisteredAt: Date?
var playListener: EventListener?
var playingListener: EventListener?

playListener = player.addEventListener(type: PlayerEventTypes.PLAY) { [weak self] _ in
    guard let self, let playListener = self.playListener else { return }
    self.player.removeEventListener(type: PlayerEventTypes.PLAY, listener: playListener)
    self.playEventRegisteredAt = Date()
}

playingListener = player.addEventListener(type: PlayerEventTypes.PLAYING) { [weak self] _ in
    guard let self, let playingListener = self.playingListener, let playEventRegisteredAt = self.playEventRegisteredAt else { return }
    self.player.removeEventListener(type: PlayerEventTypes.PLAYING, listener: playingListener)
    let timeToFirstFrame = Date().timeIntervalSince(playEventRegisteredAt)
    print("Time-to-first-frame:", timeToFirstFrame, "second(s)")
}
```
