Overview
This sample project provides a starting point for building iOS apps whose UI is defined and managed in Metabind. It demonstrates:- Initializing a
MetabindClientwith 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.Requirements
Configure the sample
1
Clone the repository
Clone the metabind-apple repository. The sample lives in
Samples/MetabindContent/Retail.2
Open in Xcode
Open
Samples/MetabindContent/Retail/MetabindSampleRetail.xcodeproj in Xcode 15 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 keyorganizationId— Your organization identifierprojectId— Your project identifiercontentId— The ID of your root content page
4
Build and run
Build and run the app on a simulator or device running iOS 17 or later.
Initialize the client
TheMetabindClient connects your app to the Metabind API. Initialize it with your credentials and inject it into the SwiftUI environment:
- 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
UseMetabindView 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 for live content changes
Handle navigation
Content can contain actions that navigate to other pages. Listen for themetabind.content action to handle navigation between content pages:
onMetabindAction modifier receives actions triggered by user interactions with your content. The metabind.content action is built-in and includes the target content ID in its properties.
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.