# Mobile SDKs (coming soon)

> Native iOS, Android, Flutter and React Native SDKs are in development; this page lists what they will offer and what works today.

Source: https://docs.nexafone.so/v1/mobile/

:::caution[Coming soon]
The mobile SDKs are not released yet. This page will carry their guides when they ship; nothing below needs code
today.
:::

| Platform | Package | Status |
| --- | --- | --- |
| iOS (Swift) | Nexafon iOS SDK | In development |
| Android (Kotlin) | Nexafon Android SDK | In development |
| Flutter | Nexafon Flutter plugin | In development |
| React Native | Nexafon React Native module | In development |

## What is ready for them already

The server side of a mobile integration works today and does not change when the SDKs ship:

- **Publishable keys** take allowed iOS bundle ids and Android package names (**Developers → API keys**). The session
  exchange checks them from the `X-Ios-Bundle-Identifier` and `X-Android-Package` headers.
- **User tokens** are the same as for the web: your server signs them with a [server helper](/v1/server/).
- **SDK sessions** come from `POST /api/v1/sdk/sessions` and are refreshed with
  `POST /api/v1/sdk/sessions/refresh` ([reference](/v1/api/sdk/)); on mobile they belong in the Keychain or
  Keystore, never in plain storage.

Until the SDKs ship, a mobile app can show the [web SDK](/v1/web/) in a web view for the inbox; calls in the
background need the native SDKs and [mobile push](/v1/calling/mobile-push/).
