# Install the iOS SDK

Install hej in SwiftUI or UIKit, use your app’s configuration and verify a real reply.

Version 0.1.0 · Early pilot · unreleased SDK · Reviewed 4 November 2026

## Choose the guide for your host

This guide covers the Swift package for SwiftUI and UIKit. Separate Expo and Flutter source pilots provide native framework controls for guest foreground text conversations. Their support and verification boundaries differ from Swift; a Swift photo, action, identity or push capability does not establish support in another client.

- [Install the Expo source pilot](/docs/expo)
- [Install the Flutter source pilot](/docs/flutter)

## Start with the source archive

hej 0.1.0 is an early-pilot source archive, not a published Swift Package Manager release. It targets native iOS 17 and later, with SwiftUI and UIKit presentation. Download and unzip the archive, locate the SDK folder containing Package.swift, then choose Add Local Package in Xcode and add its LobbySDK product to your app target. The product is now called hej; this compatible source release retains LobbySDK, LobbyClient and the existing package/download names. Keep those exact identifiers in your integration. There is no public Git package URL to invent or paste.

- [Download the hej iOS 0.1.0 source archive](/downloads/lobby-ios-0.1.0.zip)

## Use your app’s actual configuration

Create an operator account, then use Add app → Connect → Integrations → Plan in your workspace. Find the correct App Store listing or enter an unpublished app manually, and supply a support-email fallback your team monitors. Existing apps keep their configuration and conversations. In Connect, Copy setup prompt produces hej instructions for that exact app/environment; Preview prompt and Set up manually are available beside it. Copy the actual HTTPS origin and public configuration from that panel. The placeholders below must be replaced. A public ID selects an app/environment; it is not a secret or an identity credential. Operator signup, a hosted workspace and a development app have been observed on Vercel with MongoDB Atlas. The SDK archive is still an unreleased source package; your own host integration needs its own two-way test.

```
import SwiftUI
import LobbySDK

@StateObject private var support = LobbyClient(
    options: LobbyOptions(
        baseURL: URL(string: "https://YOUR_LOBBY_HOST")!,
        configID: "YOUR_PUBLIC_DEVELOPMENT_ID"
    )
)
@State private var showHelp = false

// Inside your existing settings view:
LobbyHelpRow(client: support) { showHelp = true }

// Attach to your existing view:
.sheet(isPresented: $showHelp) {
    LobbySupportView(client: support)
}
```

## Keep your host in charge

Retain one LobbyClient in your existing app or coordinator. The host owns navigation, login, appearance, purchase handlers, app-wide badges and notification delegates. Configuration does not register a customer. Opening Help is the default registration point; no extra customer password or automatic notification permission prompt is introduced.

## Prove both sides

Run your host, open Help and send a test question. Open the operator inbox, select that exact app/environment and reply as a named teammate. Observe the reply in the native conversation. Message acceptance, reply commit, SDK fetch and an on-screen display receipt are separate observations. A signed iPhone 17 Pro / iOS 27.0 simulator completed a real native question and named human web-inbox reply against Vercel/Atlas on 31 October 2026. A later expanded canary passed seven individual setup/profile/registry observations, rendered a real Inbox screen card and opened the host’s working editor. Separate native runs verified private photo delivery and actual viewer zoom. These verify the isolated development canaries; your installed build, physical-device push and purchases need their own tests.

## UIKit presentation

Use the same host-owned client and present the native wrapper from your current view controller. Do not replace the app’s notification delegate or embed a second navigation stack around LobbySupportView.

```
present(LobbyViewController(client: support), animated: true)
```

## Contributing from the repository

The full repository also includes a fictional Daylight host and an isolated local API. Its seeded configuration is lobby_daylight_development at http://localhost:4010. Those are local development values, not a public service. On a physical iPhone, localhost refers to the phone; use a reachable API and the host’s real signing/network settings. Do not copy local HTTP exceptions into a production app.

- [Run the contributor workspace](/docs/local-development)
- [Check current release evidence](/docs/release-status)
