How infobip/mobile-messaging-sdk-ios works
This is an iOS Mobile Messaging SDK: an app initializes the service, which registers for push and supports messaging-related capabilities. The repository also contains Live Chat, Inbox, interactive notifications, and WebRTC calling. The graph keeps those product stages distinct and includes core networking and storage layers. Some subsystem paths come from the file tree and are not sampled; their links are omitted or marked unverified rather than inferred as confirmed calls.
Main entry points: MobileMessaging.swift SDK Facade · ChatWebViewHandler.swift Chat Handler · MMWebRTCService.swift WebRTC Service · MMDefaultMessageStorage.swift Message Storage
Components 22
SDK Lifecycle
- SDK Facade
Classes/MobileMessaging/Core/MobileMessaging.swift - Messaging Service
Classes/MobileMessaging/Core/MobileMessagingService/MobileMessagingService.swift - Push Registration
Classes/MobileMessaging/Core/Utils/ApnsRegistrationManager.swift
Messaging Core
- Remote API
Classes/MobileMessaging/Core/HTTP/RemoteAPIProvider.swift - Message Operations
Classes/MobileMessaging/Core/Operations/AppOperations/MessageFetchingOperation.swift - Message Model
Classes/MobileMessaging/MessageStorage/Message.swift - Message Storage
Classes/MobileMessaging/MessageStorage/MMDefaultMessageStorage.swift - Core Data Store
Classes/MobileMessaging/Core/InternalStorage/MMCoreDataStorage.swift
User Engagement
- Inbox Service
Classes/Inbox/MMInboxService.swift - Inbox Messages
Classes/Inbox/MMInbox.swift - Interactive Notifications
Classes/MobileMessaging/InteractiveNotifications/MessageAlert/InteractiveMessageAlertManager.swift - Notification Extension
Classes/NotificationExtension/MobileMessagingNotificationServiceExtension.swift - Shared Receipts
Classes/NotificationExtension/MMNSESharedStorage.swift
Live Chat
- Chat Screen
Classes/Chat/UI/ChatViewController.swift - Chat Handler
Classes/Chat/ChatCore/ChatWebViewHandler.swift - Chat Web View
Classes/Chat/WebView/ChatWebView.swift - Chat Widget
Classes/Chat/ChatWidget.swift
WebRTC Calling
- WebRTC Service
Classes/WebRTCUI/MMWebRTCService.swift - Call UI
Classes/WebRTCUI/UI/CallUI/MMCallController.swift - Call Settings
Classes/WebRTCUI/MMWebRTCSettings.swift - WebRTC Token
Classes/WebRTCUI/Models/MMWebRTCToken.swift
Other components
- Host App
Connections 16
- Host App → SDK Facade: starts
- SDK Facade → Push Registration: registers device
Classes/MobileMessaging/Core/MobileMessaging.swift - SDK Facade → Messaging Service: starts services
Classes/MobileMessaging/Core/MobileMessaging.swift - Message Operations → Remote API: fetches messages
- Message Storage → Message Model: stores
Classes/MobileMessaging/MessageStorage/MMDefaultMessageStorage.swift - Message Storage → Core Data Store: uses storage
Classes/MobileMessaging/MessageStorage/MMDefaultMessageStorage.swift - Inbox Service → Remote API: requests inbox
- Inbox Service → Inbox Messages: returns messages
Classes/Inbox/MMInboxService.swift - Notification Extension → Shared Receipts: updates receipts
Classes/NotificationExtension/MobileMessagingNotificationServiceExtension.swift - Chat Screen → Chat Handler: delegates chat
Classes/Chat/UI/ChatViewController.swift - Chat Screen → Chat Web View: embeds view
Classes/Chat/UI/ChatViewController.swift - Chat Handler → Chat Web View: sends commands
Classes/Chat/ChatCore/ChatWebViewHandler.swift - Chat Handler → Chat Widget: loads widget
Classes/Chat/ChatCore/ChatWebViewHandler.swift - WebRTC Service → WebRTC Token: uses token
Classes/WebRTCUI/MMWebRTCService.swift - WebRTC Service → Call Settings: uses settings
Classes/WebRTCUI/MMWebRTCService.swift - Call UI → WebRTC Service: controls calls