RealTimeX
Sign inStart for free
RealTimeXMobile Package
Introduction5-minute overviewFeaturesHow the package worksGlossary
Requirements & dependenciesBackend credentialsInstallation step by stepTutorial — your first chat appProject config fileApp entry — index.jsQuick start — minimum working chatComplete ChatScreen example
Native configuration (iOS & Android)Firebase, APNs & backend setup
Navigation — embedding the chatSession, auth & Socket.IOPermissions & access controlAudio & video callingPush notificationsMentions viewRich-text messages (WebView editor)Total unread count
Customization — four waysDefault component fallback (important)Which slots are wiredCustomization examples (Case 1–4)UI feature flags & copy (ui)Chat info (group + DM)Style overrides (ui.styles)Render props (ChatProvider)Theme, fonts & appearance
ChatProvider props referenceconfigureChat options referenceHooks & storeCallbacks referenceAPI query paramsAll exports
Production integration pattern (Fieldr)Host app integration — providers, toasts, tab bars & navigationEnvironment variablesLocal package / monorepo (Metro)
TroubleshootingSetup checklistArchitectureDocumentation & file mapPackage development (maintainers)License
Mobile packageOverview

How the package works

This chapter explains the moving parts once, so the setup steps later make sense.

The building blocks

Building blockWhat it isWhere you use it
ChatProviderA React component that starts the chat session, connects the socket, loads workspace settings, starts push handling and provides theme, safe area, gesture root and toastsWrap your chat screen (or your whole app) in it
ChatNavigatorA ready-made navigation stack with every chat screen (list, room, info, groups, search, mentions, calls, notification settings). It also mounts CallProviderRender it inside ChatProvider
Config (configureChat / ChatProvider config)Your credentials (apiUrl, socketUrl, clientId, accessToken, callUri) plus theme, fonts and UI optionssrc/configs/chat.config.ts
Chat sessionThe package exchanges your user token (the host token) for a chat token and stores itAutomatic; or bootstrapChatSession()
SocketA Socket.IO connection that delivers messages, typing, receipts, calls and notifications in real timeAutomatic; socketService for advanced use
Effective settingsWorkspace rules from GET /settings/effective — which features are on, limits, group policyAutomatic; useEffectiveSettings() to read them
CallProvider + ActiveCallScreenThe incoming-call overlay, call signaling and the in-call screenIncluded in ChatNavigator; mount yourself for app-wide calls
Push runtimeFCM token registration, foreground banners, notification taps, ringing callsconfigurePushNotifications() + background handlers in index.js
Native modulesiOS pod RealtimexLiveChat and Android library android-screenshare/ (permissions, Picture-in-Picture, screen share, notification channels, VoIP)Autolinked — you only add per-app settings

What happens when the app starts

text
1index.js2  ├─ VideoSDK register()                       (calls)3  ├─ configurePushNotifications({...})         (push options; iOS CallKit listeners)4  └─ background handlers (FCM + Notifee)       (pushes while the app is closed)5        ↓6App renders <ChatProvider config={chatConfig}>7  ├─ restore saved chat session, or exchange the host accessToken for a chat token8  ├─ connect Socket.IO  (socketUrl + /connection)9  ├─ GET /settings/effective  → feature gates, limits, group policy10  └─ push: GET /push/config → permission prompt → register FCM token11        ↓12<ChatNavigator> shows ConversationListScreen → ChatRoomScreen → …

What lives where

PlaceRunsYou write
index.jsBefore any UI, also when a push wakes the appVideoSDK register(), configurePushNotifications, background handlers
src/configs/chat.config.tsImported by your screensCredentials and options
Your chat screenWhen the user opens chat<ChatProvider><ChatNavigator /></ChatProvider>
Native project filesAt build timeInfo.plist, entitlements, AndroidManifest.xml, Gradle, Podfile
The packageEverywhere elseNothing — screens, stores, socket, push routing and native modules ship inside it
PreviousFeaturesNextGlossary

On this page

The building blocksWhat happens when the app startsWhat lives where
Back to top