Skip to main content
A minimal SwiftUI sample app demonstrating how to integrate the MetabindContent SDK into an iOS application for building dynamic retail experiences driven by content you manage in Metabind.

Overview

This sample project provides a starting point for building iOS apps whose UI is defined and managed in Metabind. It demonstrates:
  • Initializing a MetabindClient with your API credentials
  • Injecting the client into the SwiftUI environment
  • Displaying content using MetabindView
  • Handling navigation actions between content pages

Download the sample

The sample ships inside the metabind-apple package repository, under Samples/MetabindContent/Retail in release 1.5.0.

Requirements

Configure the sample

1

Clone the repository

Clone the metabind-apple repository and check out tag 1.5.0. The sample lives in Samples/MetabindContent/Retail.
2

Open in Xcode

Open Samples/MetabindContent/Retail/MetabindSampleRetail.xcodeproj in Xcode 26.2 or later. The project references the Metabind package locally within the repository, so dependencies resolve automatically.
3

Add your credentials

In MetabindSampleRetailApp.swift, replace the placeholder values with your credentials from the Metabind dashboard:
  • apiKey — Your project’s API key
  • organizationId — Your organization identifier
  • projectId — Your project identifier
  • contentId — The ID of your root content page
4

Build and run

Build and run the app on a simulator or device running iOS 26.2 or later.

Initialize the client

The MetabindClient connects your app to the Metabind API. Initialize it with your credentials and inject it into the SwiftUI environment:
The client uses two endpoints:
  • GraphQL API (api.metabind.ai) — For fetching content and components
  • WebSocket API (ws-api.metabind.ai) — For real-time updates when content changes

Display content

Use MetabindView to render content by its ID. The view automatically fetches and displays the content defined in your Metabind project:
MetabindView handles:
  • Fetching the content and its associated components
  • Rendering the UI based on your design system
  • Subscribing to real-time updates when you pass enableSubscription: true

Handle navigation

Content can contain actions that navigate to other pages. Listen for the metabind.content action to handle navigation between content pages:
The onMetabindAction modifier receives actions triggered by user interactions with your content. metabind.content is a naming convention the Metabind samples use, not a built-in action; its properties include the target content ID.

Project structure

Next steps

iOS SDK guide

Learn more about the Metabind iOS SDK features.

Build components

Create custom components for your retail app.

Content management

Understand how to structure and manage content.

BindJS reference

Explore the component authoring language.