Screen API in Mobile SDKs

Learn about the screen API call in the Android (Kotlin) and iOS (Swift) SDKs.

This guide explains how to use the screen API in the RudderStack Android (Kotlin) and iOS (Swift) SDKs.

Overview

The RudderStack Android (Kotlin) and iOS (Swift) SDKs provide a screen API that lets you record whenever your user views their mobile screen, along with any additional relevant information about the screen.

Android (Kotlin)

The screen method definition in the Android (Kotlin) SDK is as follows:

kotlin
analytics.screen(
    screenName = "<name>",
    category = "<category>",
    properties = buildJsonObject {
        put("key", "value")
    },
    options = RudderOption(),
)

The corresponding Java snippet is shown below:

java
HashMap<String, Object> properties = new HashMap<>();
properties.put("key", "value");

analytics.screen("<name>", "<category>", properties, new RudderOption());

Method signature

The below table describes the screen method signature in detail:

FieldData typeDescription
screenNameStringName of the screen viewed by the user.
categoryStringScreen category.
propertiesPropertiesAdditional properties describing the screen to be sent along with the event.

Note: The properties type in Java is Map<String, Object>.
optionsRudderOptionAdditional event options.

Example

A sample screen event sent from the Android (Kotlin) SDK is shown below:

kotlin
analytics.screen(
    screenName = "Main Screen",
    category = "Main",
    properties = buildJsonObject {
        put("type", "application")
    },
    options = RudderOption(
        customContext = buildJsonObject {
            put("key", "value")
        },
        integrations = buildJsonObject {
            put("Amplitude", true)
            put("INTERCOM", buildJsonObject {
                put("lookup", "phone")
            })
        },
        externalIds = listOf(
            ExternalId(type = "brazeExternalId", id = "value1234"),
        ),
    ),
)

iOS (Swift)

The screen method definition in the iOS (Swift) SDK is as follows:

swift
analytics.screen(
    screenName: "<name>",
    category: "<category>",
    properties: [
        "key": "value"
    ],
    options: RudderOption()
)
Make sure to include the import RudderStackAnalytics statement before making the call.

The corresponding Objective-C snippet is shown below:

objectivec
[analytics screen:@"<name>" category:@"<category>" properties:@{@"key": @"value"} options:[[RSSOptionBuilder new] build]];
RSSOptionBuilder is an Objective-C–only helper class. It uses the builder pattern to create an RSSOption instance and lets you set custom context, configure integrations, and attach external IDs in a structured way.

Method signature

The below table describes the screen method signature in detail:

FieldData typeDescription
screenNameStringName of the screen viewed by the user.
categoryStringScreen category.
propertiesPropertiesAdditional properties describing the screen to be sent along with the event.
optionsRudderOptionAdditional event options.

Example

A sample screen event sent from the iOS (Swift) SDK is shown below:

swift
analytics.screen(
    screenName: "Main Screen",
    category: "Main",
    properties: [
        "key-1": "value-1"
    ],
    options: RudderOption(
        integrations: [
            "Amplitude": true,
            "INTERCOM": [
                "lookup": "phone"
            ]
        ],
        customContext: [
            "key-1": "value-1"
        ],
        externalIds: [
            ExternalId(type: "brazeExternalId", id: "value1234")
        ]
    )
)

Questions? Let's figure it out together.

Join the RudderStack Slack community to connect with other users, customers, and the RudderStack team — or reach out for direct support.