> ## Documentation Index
> Fetch the complete documentation index at: https://docs.pnlight.app/llms.txt
> Use this file to discover all available pages before exploring further.

# Обзор SDK

> Сравните SDK PNLight для Swift, React Native и Flutter, выберите вариант для стека приложения и изучите основные возможности каждого SDK на iOS.

Установите PNLight в приложение, чтобы идентифицировать пользователей, отправлять атрибуцию и необязательные события, а также запрашивать конфигурации Remote UI.

## Поддерживаемые SDK

<Columns cols={3}>
  <Card title="Swift" icon="apple" href="/ru/sdk/ios-swift">
    Нативные приложения iOS. Требуются iOS 13.0+ и Swift 5.7+.
  </Card>

  <Card title="React Native" icon="smartphone" href="/ru/sdk/react-native">
    Приложения React Native для iOS. Пакет: `@pnlight/sdk-react-native`.
  </Card>

  <Card title="Flutter" icon="smartphone" href="/ru/sdk/flutter">
    Приложения Flutter для iOS. Пакет: `pnlight_sdk`.
  </Card>
</Columns>

## Ссылки на пакеты SDK

<Columns cols={3}>
  <Card title="Пакет Swift" icon="github" href="https://github.com/pnlight-dev/sdk-swift">
    Откройте репозиторий Swift Package Manager.

    ![Версия SDK для Swift](https://img.shields.io/github/v/tag/pnlight-dev/sdk-swift?label=Swift%20SDK\&sort=semver)
  </Card>

  <Card title="Пакет React Native" icon="package" href="https://www.npmjs.com/package/@pnlight/sdk-react-native">
    Откройте страницу пакета npm.

    ![Версия SDK для React Native](https://img.shields.io/npm/v/%40pnlight%2Fsdk-react-native?label=React%20Native)
  </Card>

  <Card title="Пакет Flutter" icon="package" href="https://pub.dev/packages/pnlight_sdk">
    Откройте страницу пакета на pub.dev.

    ![Версия SDK для Flutter](https://img.shields.io/pub/v/pnlight_sdk?label=Flutter)
  </Card>
</Columns>

## Возможности SDK

* Инициализирует PNLight с токеном SDK проекта.
* Создаёт или возвращает стабильный идентификатор пользователя.
* Сообщает о первых установках и повторных открытиях приложения.
* Отправляет необязательные события приложения.
* Отправляет данные атрибуции от поставщиков, например AppsFlyer.
* Запрашивает и отображает Remote UI.

<Note>
  Текущие общедоступные пакеты SDK ориентированы на iOS. Если приложение работает на нескольких платформах, добавьте проверки, чтобы вызовы PNLight для iOS не выполнялись на неподдерживаемых платформах.
</Note>

## Рекомендуемый порядок интеграции

<Steps>
  <Step title="Инициализируйте SDK">
    Один раз вызовите инициализацию при запуске приложения.
  </Step>

  <Step title="Проверьте идентификатор пользователя">
    Получите идентификатор пользователя SDK и последовательно используйте его в процессах атрибуции и Remote UI.
  </Step>

  <Step title="Отправьте атрибуцию">
    Отправьте данные атрибуции после того, как AppsFlyer или другой поставщик вернёт данные конверсии.
  </Step>

  <Step title="Обновите IDFA после ATT">
    Если приложение запрашивает разрешение App Tracking Transparency после инициализации PNLight, вызовите `updateIdfa()` после завершения запроса.
  </Step>

  <Step title="Добавьте Remote UI">
    Отобразите плейсмент и обработайте пользовательские действия из возвращённого UI.
  </Step>
</Steps>
