---
title: "iOS and SwiftUI demo"
description: "Explore a native SwiftUI checkout built with the Inttegro payment sheet."
canonical: "https://studio.inttegro.com/demos/ios-swiftui"
format: inttegro-machine-docs/v1
language: "cURL"
reader_profile: optional
reader_manifest: "https://studio.inttegro.com/machine/curl/readers/index.json"
reader_identification: "Optional: declare your client only if known and your current-session capabilities; use reader_manifest for supplemental recommendations."
preamble_estimated_tokens: 340
model_token_report: "https://studio.inttegro.com/machine/token-report.json"
preamble_questions: 5
preamble_source: "general"
recommended_mcp_tools: []
estimated_tokens: 1022
token_estimate_method: "utf8_bytes_divided_by_4"
---

## Machine preamble

**Summary:** Explore a native SwiftUI checkout built with the Inttegro payment sheet. This cURL representation preserves HTTP paths and JSON wire names.

### Five questions

#### Q1. When should the reader use iOS and SwiftUI demo?

Use this demo guide to inspect a complete working integration and compare it with the application being built.

#### Q2. What is authoritative on this page?

The demo proves one working composition, not the only supported architecture. Follow its linked SDK and API pages for current contracts.

#### Q3. What page-specific constraint matters most?

Do not copy demo credentials, identifiers, or deployment assumptions. Recreate configuration through supported public setup paths.

#### Q4. Can Inttegro MCP materially help with this task?

No catalog ability is sufficiently specific to recommend for this page. Use the documentation directly; consult the MCP catalog only if the task later requires governed live account context or a supported operation.

#### Q5. How should the reader verify the answer and continue?

Open the hosted experience, trace the corresponding source, and verify that its SDK and API usage still matches the current linked documentation. Continue with [Set up the Next.js demo backend](https://studio.inttegro.com/machine/curl/demos/nextjs.md) when those concerns enter scope.

## Document content

# iOS and SwiftUI demo

Build a SwiftUI storefront that opens Inttegro’s native payment sheet. The app
receives an order ID from your backend—never an API key.

> Demo Release is interactive content. Use the canonical page to view it.

## See the flow

These captures show the payment-ready and completed states on iOS.

> Mobile Sdk Screenshots is interactive content. Use the canonical page to view it.

## What you’ll build

- A native [SwiftUI](https://developer.apple.com/xcode/swiftui/) product detail
  experience
- An Inttegro SDK dependency resolved with
  [Swift Package Manager](https://docs.swift.org/package-manager/)
- Native payment-sheet presentation and return handling
- A backend boundary that keeps credentials off-device

## Run the demo

Install [Xcode](https://developer.apple.com/xcode/) and
[XcodeGen](https://github.com/yonaskolb/XcodeGen), generate the project, set the
backend URL, and run an iPhone simulator. The
[released README](https://github.com/inttegro/inttegro-demos/blob/ios-swiftui-v1.8.3/ios-swiftui/README.md)
has the exact commands.

## Key files

1. [`DemoBackend.swift`](https://github.com/inttegro/inttegro-demos/blob/ios-swiftui-v1.8.3/ios-swiftui/InttegroSwiftUIDemo/DemoBackend.swift)
   requests the order ID from your backend.
2. [`CheckoutView.swift`](https://github.com/inttegro/inttegro-demos/blob/ios-swiftui-v1.8.3/ios-swiftui/InttegroSwiftUIDemo/CheckoutView.swift)
   presents the payment sheet and handles its lifecycle.

## Before you ship

Authenticate calls to your backend and create the complete order there. Verify
payment on the server before fulfillment.

## Next

- [Browse the released source](https://github.com/inttegro/inttegro-demos/tree/ios-swiftui-v1.8.3/ios-swiftui)
- [Set up the Next.js demo backend](https://studio.inttegro.com/machine/curl/demos/nextjs.md)
- [Review the mobile checkout boundary](https://github.com/inttegro/inttegro-demos/blob/v1.8.3/MOBILE.md)
