Build any realtime experience using Ably’s Pub/Sub Flutter SDK. Supported on popular platforms and frameworks, including Android and iOS.
Ably Pub/Sub provides flexible APIs that deliver features such as pub-sub messaging, message history, presence, and push notifications. Utilizing Ably’s realtime messaging platform, applications benefit from its highly performant, reliable, and scalable infrastructure.
Find out more:
Everything you need to get started with Ably:
Ably aims to support a wide range of platforms. If you experience any compatibility issues, open an issue in the repository or contact Ably support.
This SDK supports the following platforms:
Platform | Support |
---|---|
Android | Android 4.4 (API level 19) or newer. Java 8 language features supported via Desugaring. |
iOS | iOS 10 or newer |
Flutter | Flutter 2.5.0 or higher |
Note
If your project needs support for SDK Version lower than 24, Android Gradle Plugin 4.0.0+ must be used. You might also need to upgrade gradle distribution. [!IMPORTANT] SDK versions < 1.2.25 will be deprecated from November 1, 2025.
To get started with your project, install the package:
Add the Ably Flutter package to your project by including it in your pubspec.yaml
file:
dependencies:
ably_flutter: ^1.2.40
Once added to your dependencies, import it in your Dart code:
import 'package:ably_flutter/ably_flutter.dart' as ably;
Note
When increasing the version of ably_flutter
in your pubspec.yaml
, if there are breaking changes, follow the updating / migration guide.
The following code connects to Ably's realtime messaging service, subscribes to a channel to receive messages, and publishes a test message to that same channel:
// Initialize Ably Realtime client
final clientOptions = ably.ClientOptions(
key: 'your-ably-api-key',
clientId: 'me',
);
final realtimeClient = ably.Realtime(options: clientOptions);
// Wait for connection to be established
await realtimeClient.connection
.on(ably.ConnectionEvent.connected)
.first
.then((stateChange) {
print('Connected to Ably');
});
// Get a reference to the 'test-channel' channel
final channel = realtimeClient.channels.get('test-channel');
// Subscribe to all messages published to this channel
channel.subscribe().listen((ably.Message message) {
print('Received message: ${message.data}');
});
// Publish a test message to the channel
await channel.publish(
name: 'test-event',
data: 'hello world',
);
}
The CHANGELOG.md contains details of the latest releases for this SDK. You can also view all Ably releases on changelog.ably.com.
Read the CONTRIBUTING.md guidelines to contribute to Ably.
For help or technical support, visit the Ably Support page or GitHub Issues for community-reported bugs and discussions.