How adobe/aepsdk-concierge-ios works
AEPBrandConcierge is an iOS extension that embeds Adobe Brand Concierge conversational discovery in host apps. The main workflow begins when the host requests the chat UI through the SDK; Concierge handles the request and presents a chat session. The chat controller coordinates text and speech input, streams conversation results through the chat service, and renders messages and product cards. Supporting branches cover session persistence, URL handling, feedback/data handoff, and theming. Several subsystem paths are based on the file tree and SOURCE INDEX; where runtime wiring was not shown, relationships are omitted rather than inferred.
Main entry points: ChatController.swift Chat controller · Concierge.swift Concierge API · SpeechController.swift Speech controller · ConciergeChatService.swift Chat service
Components 22
SDK integration
- Concierge API
AEPBrandConcierge/Sources/Core/Concierge.swift - Chat configuration
AEPBrandConcierge/Sources/Models/Configuration/ConciergeConfiguration.swift - Chat session
AEPBrandConcierge/Sources/Presentation/ConciergeChatSession.swift
Conversation
- Chat controller
AEPBrandConcierge/Sources/Controllers/ChatController.swift - Input state
AEPBrandConcierge/Sources/Controllers/InputController.swift - Speech controller
AEPBrandConcierge/Sources/Controllers/SpeechController.swift - Chat service
AEPBrandConcierge/Sources/Services/ConciergeChatService.swift - Session manager
AEPBrandConcierge/Sources/Services/SessionManager.swift - Persistent store
- Message model
AEPBrandConcierge/Sources/Models/Chat/Message.swift
Chat presentation
- Chat view
AEPBrandConcierge/Sources/Views/ChatView.swift - Message rendering
AEPBrandConcierge/Sources/Views/Chat - Product cards
AEPBrandConcierge/Sources/Views/ProductDetailCardView.swift
Experience capabilities
- Speech capture
AEPBrandConcierge/Sources/Services/SpeechCapturer.swift - Text-to-speech
AEPBrandConcierge/Sources/Services/TextSpeaker.swift - Link routing
AEPBrandConcierge/Sources/Services/ConciergeLinkHandler.swift - Feedback payloads
AEPBrandConcierge/Sources/Models/Feedback/FeedbackPayload.swift
Theme system
- Theme configuration
AEPBrandConcierge/Sources/Theme/Models/ConciergeTheme.swift - Theme loading
AEPBrandConcierge/Sources/Theme/ThemeLoader.swift - CSS mapping
AEPBrandConcierge/Sources/Theme/ThemeCSSMapper.swift
Other components
- Host app
- Concierge backend
Connections 20
- Host app → Concierge API: requests chat
- Concierge API → Chat configuration: creates config
AEPBrandConcierge/Sources/Core/Concierge.swift - Concierge API → Chat session: creates session
AEPBrandConcierge/Sources/Core/Concierge.swift - Chat session → Chat view: presents
- Chat controller → Input state: observes state
AEPBrandConcierge/Sources/Controllers/ChatController.swift - Chat controller → Speech controller: coordinates speech
AEPBrandConcierge/Sources/Controllers/ChatController.swift - Speech controller → Speech capture: captures audio
AEPBrandConcierge/Sources/Controllers/SpeechController.swift - Speech controller → Text-to-speech: speaks text
AEPBrandConcierge/Sources/Controllers/SpeechController.swift - Chat controller → Chat service: sends turns
AEPBrandConcierge/Sources/Controllers/ChatController.swift - Chat service → Concierge backend: streams requests
AEPBrandConcierge/Sources/Services/ConciergeChatService.swift - Chat service → Session manager: uses session
AEPBrandConcierge/Sources/Services/ConciergeChatService.swift - Session manager → Persistent store: reads and writes
AEPBrandConcierge/Sources/Services/SessionManager.swift - Chat controller → Message model: builds messages
AEPBrandConcierge/Sources/Controllers/ChatController.swift - Chat view → Message rendering: renders chat
AEPBrandConcierge/Sources/Views/ChatView.swift - Message rendering → Product cards: renders cards
AEPBrandConcierge/Sources/Views/ProductDetailCardView.swift - Product cards → Link routing: routes links
AEPBrandConcierge/Sources/Views/ProductDetailCardView.swift - Chat controller → Feedback payloads: submits feedback
AEPBrandConcierge/Sources/Controllers/ChatController.swift - Concierge API → Theme loading: loads theme
- Theme loading → Theme configuration: decodes theme
- CSS mapping → Theme configuration: maps styles
AEPBrandConcierge/Sources/Theme/ThemeCSSMapper.swift