Skip to main content
Live objects and live collections are SDK patterns for reading data that can change after your first request. They let your app subscribe to SDK-managed state instead of treating every query as a one-time network response. Use a live object when the screen is centered on one entity, such as a post, message, channel, community, user, room, stream, poll, or story. Use a live collection when the screen renders a list, such as posts, comments, messages, members, followers, reactions, rooms, or streams.

Platform Surface

Data Sources

Live results can be updated by more than one source:
Live objects and collections observe SDK state. They do not remove the need to subscribe to the right real-time topics where a platform exposes explicit topic subscriptions.

Live Object

A live object tracks one entity. The SDK can emit: Typical screens: post detail, message detail, channel profile, community header, user profile, room detail, or stream detail.

Live Collection

A live collection tracks a list. The SDK can append, refresh, or re-emit the list when local cache, server fetches, or real-time events change the underlying data. Typical screens: post feeds, comment threads, chat messages, channel lists, member lists, reaction lists, follower lists, rooms, streams, and notifications.

Usage Notes

  • Keep the live subscription for as long as the UI needs updates.
  • Clean up subscriptions when the screen, component, view model, or widget is disposed.
  • Treat the first emission as potentially local or loading unless the platform exposes freshness status and it says otherwise.
  • Do not assume all platforms expose identical states. Use each platform’s native live primitive.
  • For TypeScript, subscribe to the relevant topic when you need cross-device real-time updates, then dispose both the repository observer and the topic subscription.

Platform Guides

TypeScript

Observe live objects and collections with callbacks, pagination helpers, and topic subscriptions.

iOS

Use AmityObject, AmityCollection, notification tokens, and published snapshots.

Android

Use RxJava Flowable, Android Paging 3, and the coroutine asFlow() bridge.

Flutter

Use Dart streams, LiveCollection, LiveResult, and collection disposal.

Real-time Events

Learn how real-time events update SDK state.

Presence State

Track user, channel, and room presence.