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

# Build an iOS app with Devin

> Building an iOS app with Devin on a macOS VM: building SwiftUI code, testing in the iOS Simulator, and shipping to TestFlight

<Frame>
  <img src="https://mintcdn.com/cognitionai/nOB7SYTW-6Ix7PWT/images/tutorial-library/flappy-otter.gif?s=f4420a342ae777c12163940807959804" alt="Devin building an iOS game on a macOS VM" width="1864" height="1080" data-path="images/tutorial-library/flappy-otter.gif" />
</Frame>

## Before you start

<Tabs>
  <Tab title="Pro or Teams">
    Make sure you have a Devin [Pro or Teams](/admin/billing/self-serve) account. macOS sessions are available by default.
  </Tab>

  <Tab title="Enterprise">
    * **Enable macOS VMs**: ask your account team to turn on macOS VMs for your organization. See [macOS support](/onboard-devin/environment/macos-support).
    * **Enable Computer Use**: turn on **Computer use** under [Settings > Devin](https://app.devin.ai/settings/devin) > **Sessions** so Devin can interact with the Simulator and record its testing. See [Computer Use](/work-with-devin/computer-use).
  </Tab>
</Tabs>

## Step 1: Prompt Devin to build the app

Open [Devin](https://app.devin.ai/) and choose **macOS** from the platform menu below the prompt box. Xcode, the iOS Simulator, and Homebrew are preinstalled.

<Frame>
  <img src="https://mintcdn.com/cognitionai/qTeOZiARn3g19g1z/images/tutorial-library/ios-app-choose-macos.png?fit=max&auto=format&n=qTeOZiARn3g19g1z&q=85&s=d7903bb01d581b1d034e5edaf9a8526b" alt="Choosing macOS from the platform menu below the Devin prompt box" width="1964" height="1064" data-path="images/tutorial-library/ios-app-choose-macos.png" />
</Frame>

Type what you want Devin to build:

```text theme={null}
build a flappy otter game for iphone, like flappy bird but a cute otter instead
```

## Step 2: Watch Devin build and test

Devin works through the task much like an iOS developer would:

<Frame>
  <img src="https://mintcdn.com/cognitionai/icmftsHrCf6R13_9/images/tutorial-library/ios-app-session.png?fit=max&auto=format&n=icmftsHrCf6R13_9&q=85&s=1c1490a6a419957ea3725140fd7711e9" alt="Devin building Flappy Otter in a macOS session" width="2974" height="1712" data-path="images/tutorial-library/ios-app-session.png" />
</Frame>

1. **Creates the project in Xcode**
2. **Builds and fixes errors**
3. **Runs the game in the Simulator**
4. **Plays the game**: taps to make the otter jump with [Computer Use](/work-with-devin/computer-use), checks that scoring and collisions work, and [records](/work-with-devin/testing-and-recordings) the run.
5. **Shares the result**: sends you the recording and opens a pull request if the session has a repository.

<Frame>
  <img src="https://mintcdn.com/cognitionai/icmftsHrCf6R13_9/images/tutorial-library/otter-recording.gif?s=38ade049944bcc5fbf33842c899cb3ba" alt="Devin's recording of Flappy Otter running in the iOS Simulator" width="1000" height="579" data-path="images/tutorial-library/otter-recording.gif" />
</Frame>

You can open the **Computer** tab in the session workspace to watch the booted simulator live while Devin taps through the app.

<Frame>
  <img src="https://mintcdn.com/cognitionai/gGes9NNzAQ-H2nvl/images/tutorial-library/ios-app-computer.png?fit=max&auto=format&n=gGes9NNzAQ-H2nvl&q=85&s=8d6634f21671ae08b862cec93cd21833" alt="The Computer tab showing Flappy Otter in the iOS Simulator" width="1600" height="918" data-path="images/tutorial-library/ios-app-computer.png" />
</Frame>

## Step 3: Review and iterate

Continue building in the same session with more features:

<Frame>
  <img src="https://mintcdn.com/cognitionai/gGes9NNzAQ-H2nvl/images/tutorial-library/ios-app-more-features.png?fit=max&auto=format&n=gGes9NNzAQ-H2nvl&q=85&s=0396d2676a466e2091f48b0821629ee3" alt="Asking Devin for more Flappy Otter features in the same session" width="1600" height="922" data-path="images/tutorial-library/ios-app-more-features.png" />
</Frame>

## Optional: Ship a beta to TestFlight

To test on a real iPhone, see [Upload iOS builds to TestFlight](/onboard-devin/environment/testflight).

See [macOS support limitations](/onboard-devin/environment/macos-support#limitations) to learn more about Devin macOS support.

## Next steps

<CardGroup cols={2}>
  <Card title="TestFlight uploads" icon="paper-plane" href="/onboard-devin/environment/testflight">
    App Store Connect setup, API keys, and secrets for uploading builds
  </Card>

  <Card title="macOS support" icon="apple" href="/onboard-devin/environment/macos-support">
    Blueprint options, preinstalled tools, and troubleshooting for macOS sessions
  </Card>

  <Card title="Testing and recordings" icon="video" href="/work-with-devin/testing-and-recordings">
    How Devin tests your app and records the results
  </Card>
</CardGroup>


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.