---
title: iOS SDK · Swift
description: Native Swift project API documentation is pending review; start the hackathon with TypeScript or React Native.
---

[!nav:main](/nav/main.md)

**Native Swift setup is pending API review. For the hackathon, start with [TypeScript](typescript.md) or [React Native](react-native.md).**

## Start building now

- Use [React Native](react-native.md) for a mobile app with the project API.
- Use [TypeScript](typescript.md) for a Node app or a web backend.
- Follow the [quickstart](../quickstart.md) to activate your account, create a project, and run a first turn.

## Native API status

Documentation for the native `Croche.open` project API is pending review. Installation and first-turn instructions will be added once the final API is reviewed. Native package availability is not confirmed here.

## Language options

The language contract below does not supply an unreviewed Swift signature or installation command.

| Option | Meaning and default behavior |
| --- | --- |
| `language` on `Croche.open` | The **user's language**, as a BCP-47 tag. Selects `config.languages.<tag>` by exact tag first, then primary subtag; with no match, uses the base config as is. Automatic device-locale selection when omitted is **pending 0.5.1 verification**; do not rely on it in 0.5.0. |
| `config.defaultLanguage` | The base config's authored language (default `"en"`), used only for config-layer selection; **not** the user's language or a fallback for it |
| `config.languages.<tag>` | A translated config branch; without a match, the base config stays unchanged |

An English-only config still serves a Korean user. The model is not told `language`; it replies in the language the user writes unless instructions say otherwise. See [app config and language](../concepts/config.md).

> TODO verify: the reviewed Swift `Croche.open` API, package availability, installation instructions, and first-turn example before adding them here.
