Skip to content

Commit fd6035a

Browse files
authored
docs(ui,llc): update sdk readmes (#2724)
* update sdk readmes * fix review issues * make hero image smaller
1 parent 8223f97 commit fd6035a

9 files changed

Lines changed: 385 additions & 373 deletions

File tree

README.md

Lines changed: 87 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,81 +1,131 @@
11
# Official Flutter packages for [Stream Chat](https://getstream.io/chat/sdk/flutter/)
22

3-
![](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/master/images/sdk_hero_v4.png)
3+
![Stream Chat Flutter SDK hero image](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/master/images/sdk_hero_v10.png)
44

55
[![CI](https://github.com/GetStream/stream-chat-flutter/actions/workflows/stream_flutter_workflow.yml/badge.svg?branch=master)](https://github.com/GetStream/stream-chat-flutter/actions/workflows/stream_flutter_workflow.yml)
66
[![Melos](https://img.shields.io/badge/maintained%20with-melos-f700ff.svg?style=flat-square)](https://github.com/invertase/melos)
77

8+
V10 brings a modern redesign, a unified design system shared across all Stream SDK platforms, and improved developer experience.
9+
810
**Quick Links**
911

1012
- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat
1113
- [Flutter Chat SDK Tutorial](https://getstream.io/chat/flutter/tutorial/)
12-
- [Chat UI Kit](https://getstream.io/chat/ui-kit/)
13-
- [Sample apps](https://github.com/GetStream/flutter-samples)
14+
- [Documentation](https://getstream.io/chat/docs/sdk/flutter/)
15+
- [Sample app](sample_app)
1416

15-
This repository contains code for our [Dart](https://dart.dev/) and [Flutter](https://flutter.dev/) chat clients.
17+
## What's New in V10
1618

17-
Stream allows developers to rapidly deploy scalable feeds and chat messaging with an industry leading 99.999% uptime SLA guarantee.
19+
Version 10 is a major update to the Stream Chat Flutter SDK:
1820

19-
**V8 Migration Guide**
21+
- **Modern redesign** — refreshed channel list, message list, composer, reactions, avatars, and media viewer with a cleaner, more polished default look.
22+
- **Unified design system** — design tokens (colors, typography, spacing, icons) are now consistent across all Stream SDK platforms. Theming is rebuilt around `StreamTheme`, a Flutter `ThemeExtension` registered on `MaterialApp.theme`.
23+
- **Cross-platform name alignment** — APIs and component names now match their iOS, Android, React, and React Native counterparts (e.g. `StreamMessageComposer`, `StreamChannelListItem`).
24+
- **`StreamComponentFactory`** — a single customization entry point that replaces the scattered builder slots that previously lived on each widget.
25+
- **Cookbook** — new task-oriented recipes for common customizations.
2026

21-
For upgrading from V7 to V8, please refer to the [V8 Migration Guide](https://getstream.io/chat/docs/sdk/flutter/guides/migration_guide_8_0/)
27+
See the [V10 Migration Guide](https://getstream.io/chat/docs/sdk/flutter/guides/migration-guide-10-0/) for a full list of breaking changes and upgrade instructions.
2228

23-
## Sample apps and demos
24-
Check out our [sample_app](sample_app) to see Stream Chat's core features in action. For more sample apps and demos, visit [GetStream/flutter-samples](https://github.com/GetStream/flutter-samples).
29+
## Features
2530

26-
## Free for Makers
31+
The UI package ships an extensive set of performant and customizable widgets:
2732

28-
Stream is free for most side and hobby projects. To qualify your project/company needs to have < 5 team members and < $10k in monthly revenue.
29-
For complete pricing details visit our [Chat Pricing Page](https://getstream.io/chat/pricing/)
33+
- Rich media messages with Markdown rendering
34+
- Reactions
35+
- Threads and quoted replies
36+
- Typing and read indicators
37+
- Channel and message lists
38+
- Message composer with autocomplete triggers (`@` mentions, `/` commands)
39+
- Image, video, and file uploads with previews and a built-in media gallery viewer
40+
- Voice messages
41+
- Polls
42+
- Drafts
43+
- Pinned messages
44+
- Message reminders
45+
- Message actions context menu (reply, edit, copy, pin, delete, flag, mute, block, and more)
46+
- Message search
47+
- Giphy support
48+
- AI assistant streaming responses
49+
- Push notifications (Firebase, APN, and Huawei)
50+
- Offline storage and optimistic updates
51+
- Static and live location sharing
52+
- Localization
53+
- and a lot more.
3054

31-
## Structure
32-
Stream Chat Dart is a monorepo built using [Melos](https://docs.page/invertase/melos). Individual packages can be found in the `packages` directory while configuration and top level commands can be found in `melos.yaml`.
55+
## Sample App
3356

34-
To get started, run `bootstrap` after cloning the project.
57+
Check out the [`sample_app`](sample_app) in this repository — a fully functional messenger built with `stream_chat_flutter` that demonstrates the SDK's core features end to end. It is the recommended reference when wiring things up in your own app.
3558

36-
```shell
37-
melos bootstrap
38-
```
59+
For more sample apps and demos, visit [GetStream/flutter-samples](https://github.com/GetStream/flutter-samples).
60+
61+
## Free for Makers
62+
63+
Stream is free for most side and hobby projects. To qualify, your project/company needs to have fewer than five team members and under $10,000 in monthly revenue.
64+
For complete pricing details, visit our [Chat Pricing Page](https://getstream.io/chat/pricing/).
3965

40-
## Packages
41-
We provide a variety of packages depending on the level of customization you want to achieve.
66+
## Packages
67+
68+
Stream Chat Dart is a monorepo built using [Melos](https://docs.page/invertase/melos). Individual packages can be found in the `packages` directory; configuration and top-level commands live in `melos.yaml`.
69+
70+
The SDK is layered — each package builds on top of the previous:
4271

4372
### [`stream_chat`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat)
44-
A pure Dart package that can be used on any Dart project. It provides a low-level client to access the Stream Chat service.
4573

46-
### [`stream_chat_persistence`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_persistence)
47-
This package provides a persistence client for fetching and saving chat data locally. Stream Chat Persistence uses Moor as a disk cache.
74+
The low-level client (LLC), a pure Dart package that wraps the Stream Chat API. Use it directly if you want to build your own UI and state layer.
4875

4976
### [`stream_chat_flutter_core`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_flutter_core)
50-
This package provides business logic to fetch common things required for integrating Stream Chat into your application. The `core` package allows more customisation and hence provides business logic but no UI components.
77+
78+
Provides the business logic, controllers, and builders required to integrate Stream Chat into a Flutter app, without shipping any UI of its own.
5179

5280
### [`stream_chat_flutter`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_flutter)
53-
This library includes both a low-level chat SDK and a set of reusable and customizable UI components.
81+
82+
The full UI SDK. Includes a set of reusable and customizable UI widgets on top of the core and low-level client packages. **This is the recommended starting point for most apps.**
83+
84+
### [`stream_chat_persistence`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_persistence)
85+
86+
Provides a Drift-backed persistence client for offline storage. Plugs into any of the packages above.
5487

5588
### [`stream_chat_localizations`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_localizations)
56-
This library includes a set of localization files for the Flutter UI components.
5789

58-
## Flutter Chat Tutorial
90+
Provides a set of localizations for the UI SDK.
5991

60-
The best place to start is the [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/).
61-
It teaches you how to use this SDK and also shows how to make frequently required changes.
92+
### Choosing the Right Package
93+
94+
We recommend using `stream_chat_flutter` for most apps. Unless your UI is completely different from the common industry standard, you should be able to customize the built-in widgets to match your needs.
95+
96+
- Use `stream_chat_flutter_core` if you need full UI control but want the data/state logic handled for you.
97+
- Use `stream_chat` directly for maximum control over architecture, UI, and data.
98+
99+
You can also mix and match — it is common to use the UI SDK for most screens and drop down to the low-level client for specific operations.
100+
101+
## Getting Started
102+
103+
To get started, run `bootstrap` after cloning the project:
62104

63-
## Example Apps
105+
```shell
106+
melos bootstrap
107+
```
64108

65-
Every package folder includes a fully functional example with setup instructions.
109+
The best place to start is the [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/).
110+
It teaches you how to use this SDK and shows how to make frequently required changes.
66111

67-
We also provide a set of sample apps created using the Stream Flutter SDK at [this location](https://github.com/GetStream/flutter-samples).
112+
Every package folder also includes a fully functional `example` with setup instructions.
68113

69114
## Versioning Policy
70115

71-
All of the Stream Chat packages follow [semantic versioning](https://semver.org/).
116+
All of the Stream Chat packages follow [semantic versioning](https://semver.org/):
72117

73-
See our [versioning policy documentation](https://getstream.io/chat/docs/sdk/flutter/basics/versioning_policy/) for more information.
118+
- Bug fixes and behavior improvements cause a **patch** version bump.
119+
- New features are shipped with an increased **minor** version.
120+
- Incompatible API changes cause a **major** version increase.
74121

75-
## We are hiring
122+
Occasionally, the SDK can include visual changes (whitespace, color, sizing) in minor versions as we continuously improve the default look of our UI widgets.
76123

77-
We've recently closed a [\$38 million Series B funding round](https://techcrunch.com/2021/03/04/stream-raises-38m-as-its-chat-and-activity-feed-apis-power-communications-for-1b-users/) and we keep actively growing.
124+
See the [installation docs](https://getstream.io/chat/docs/sdk/flutter/basics/installation/) and the [releases page](https://github.com/GetStream/stream-chat-flutter/releases) for the full version history.
125+
126+
## We Are Hiring
127+
128+
We've recently closed a [$38 million Series B funding round](https://techcrunch.com/2021/03/04/stream-raises-38m-as-its-chat-and-activity-feed-apis-power-communications-for-1b-users/) and we keep actively growing.
78129
Our APIs are used by more than a billion end-users, and you'll have a chance to make a huge impact on the product within a team of the strongest engineers all over the world.
79130

80131
Check out our current openings and apply via [Stream's website](https://getstream.io/team/#jobs).
81-

images/sdk_hero_v10.png

419 KB
Loading

images/sdk_hero_v4.png

-564 KB
Binary file not shown.

packages/stream_chat/README.md

Lines changed: 52 additions & 48 deletions
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,99 @@
1-
# Official Dart Client for [Stream Chat](https://getstream.io/chat/)
1+
# Official Low-Level Dart Client for [Stream Chat](https://getstream.io/chat/)
22

3-
>The official Dart client for Stream Chat, a service for building chat applications. This library can be used on any Dart project and on both mobile and web apps with Flutter.
3+
> The official low-level Dart client for Stream Chat, a service for building chat applications. This library can be used on any Dart project and on both mobile and web apps with Flutter.
44
55
[![Pub](https://img.shields.io/pub/v/stream_chat.svg)](https://pub.dartlang.org/packages/stream_chat)
6-
![](https://img.shields.io/badge/platform-flutter%20%7C%20flutter%20web-ff69b4.svg?style=flat-square)
7-
![CI](https://github.com/GetStream/stream-chat-flutter/workflows/stream_flutter_workflow/badge.svg?branch=master)
6+
[![CI](https://github.com/GetStream/stream-chat-flutter/actions/workflows/stream_flutter_workflow.yml/badge.svg?branch=master)](https://github.com/GetStream/stream-chat-flutter/actions/workflows/stream_flutter_workflow.yml)
87

98
**Quick Links**
109

1110
- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat
12-
- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/)
13-
- [Chat UI Kit](https://getstream.io/chat/ui-kit/)
14-
- [Chat Client Docs](https://getstream.io/chat/docs/flutter-dart/?language=dart)
11+
- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/)
12+
- [Documentation](https://getstream.io/chat/docs/sdk/flutter/)
13+
- [V10 Migration Guide](https://getstream.io/chat/docs/sdk/flutter/guides/migration-guide-10-0/)
1514

16-
**V4 Migration Guide**
15+
## Changelog
1716

18-
For upgrading from V3 to V4, please refer to the [V4 Migration Guide](https://getstream.io/chat/docs/sdk/flutter/guides/migration_guide_4_0/)
17+
Check out the [changelog on pub.dev](https://pub.dev/packages/stream_chat/changelog) to see the latest changes in the package.
1918

20-
### Changelog
19+
## Overview
2120

22-
Check out the [changelog on pub.dev](https://pub.dev/packages/stream_chat/changelog) to see the latest changes in the package.
21+
`stream_chat` is the low-level client (LLC) of the Stream Chat Flutter SDK. It wraps the Stream Chat API and gives you the most control over UI, data, and architecture — at the cost of more plumbing. If you want built-in Flutter widgets, see [`stream_chat_flutter`](https://pub.dev/packages/stream_chat_flutter). If you want controllers and business logic without UI, see [`stream_chat_flutter_core`](https://pub.dev/packages/stream_chat_flutter_core).
2322

24-
## Getting started
23+
> **Note:** This is a front-end client SDK intended for use in Dart/Flutter applications. There are no plans to provide a backend (server-side) Dart SDK — backend integrations should use the [Stream server-side SDKs](https://getstream.io/chat/docs/) available for Node.js, Python, Go, and other platforms.
24+
25+
## Getting Started
2526

2627
### Add dependency
27-
Add this to your package's pubspec.yaml file, use the latest version [![Pub](https://img.shields.io/pub/v/stream_chat.svg)](https://pub.dartlang.org/packages/stream_chat)
28+
29+
Add this to your `pubspec.yaml`, using the latest version [![Pub](https://img.shields.io/pub/v/stream_chat.svg)](https://pub.dartlang.org/packages/stream_chat):
2830

2931
```yaml
3032
dependencies:
31-
stream_chat: ^latest-version
33+
stream_chat: ^10.0.0
3234
```
3335
34-
You should then run `flutter packages get`
36+
Then run:
37+
38+
```shell
39+
dart pub get
40+
```
3541

3642
## Example Project
3743

38-
There is a detailed Flutter example project in the `example` folder. You can directly run and play on it.
44+
There is a detailed example project in the [`example`](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat/example) folder. You can run it directly to explore the API.
3945

4046
## Setup API Client
4147

42-
First you need to instantiate a chat client. The Chat client will manage API call, event handling and manage the web socket connection to Stream Chat servers. You should only create the client once and re-use it across your application.
48+
First, instantiate a chat client. The client manages API calls, event handling, and the WebSocket connection to Stream Chat servers. You should create it once and re-use it across your application.
4349

4450
```dart
45-
final client = StreamChatClient("stream-chat-api-key");
51+
final client = StreamChatClient('stream-chat-api-key');
4652
```
4753

4854
### Logging
4955

50-
By default the Chat Client will write all messages with level Warn or Error to `stdout`.
56+
By default, the chat client writes all messages with level Warn or Error to stdout.
5157

5258
#### Change Logging Level
5359

54-
During development you might want to enable more logging information, you can change the default log level when constructing the client.
60+
During development you might want to enable more logging information:
5561

56-
```dart
57-
final client = StreamChatClient("stream-chat-api-key", logLevel: Level.INFO);
62+
```dart
63+
final client = StreamChatClient('stream-chat-api-key', logLevel: Level.INFO);
5864
```
5965

6066
#### Custom Logger
6167

62-
You can handle the log messages directly instead of have them written to `stdout`, this is very convenient if you use an error tracking tool or if you want to centralize your logs into one facility.
68+
You can handle log messages directly instead of writing them to stdout — useful for error tracking tools:
6369

6470
```dart
6571
myLogHandlerFunction = (LogRecord record) {
66-
// do something with the record (ie. send it to Sentry or Fabric)
67-
}
72+
// do something with the record (e.g. send it to Sentry or Firebase Crashlytics)
73+
};
6874
69-
final client = StreamChatClient("stream-chat-api-key", logHandlerFunction: myLogHandlerFunction);
75+
final client = StreamChatClient(
76+
'stream-chat-api-key',
77+
logHandlerFunction: myLogHandlerFunction,
78+
);
7079
```
7180

72-
### Offline storage
81+
### Offline Storage
7382

74-
To add data persistence, you can extend the class `ChatPersistenceClient` and pass an instance to the `StreamChatClient`.
83+
To add data persistence, extend `ChatPersistenceClient` and pass an instance to `StreamChatClient`:
7584

7685
```dart
7786
class CustomChatPersistentClient extends ChatPersistenceClient {
78-
...
87+
// ...
7988
}
8089
8190
final client = StreamChatClient(
82-
apiKey ?? kDefaultStreamApiKey,
91+
apiKey,
8392
logLevel: Level.INFO,
8493
)..chatPersistenceClient = CustomChatPersistentClient();
8594
```
8695

87-
We provide an official persistent client in the [`stream_chat_persistence`](https://pub.dev/packages/stream_chat_persistence) package.
96+
We provide an official persistence client in the [`stream_chat_persistence`](https://pub.dev/packages/stream_chat_persistence) package:
8897

8998
```dart
9099
import 'package:stream_chat_persistence/stream_chat_persistence.dart';
@@ -95,34 +104,29 @@ final chatPersistentClient = StreamChatPersistenceClient(
95104
);
96105
97106
final client = StreamChatClient(
98-
apiKey ?? kDefaultStreamApiKey,
107+
apiKey,
99108
logLevel: Level.INFO,
100109
)..chatPersistenceClient = chatPersistentClient;
101110
```
102111

103112
## Contributing
104113

105-
### Code conventions
106-
107-
- Make sure that you run `dartfmt` before you commit your code
108-
- Make sure all public methods and functions are well documented
114+
We welcome code changes that improve this library or fix a problem. Please make sure to follow all best practices and add tests where applicable before submitting a Pull Request on GitHub.
109115

110-
### Running tests
116+
### Code Conventions
111117

112-
- run `flutter test`
118+
- Make sure all public methods and functions are well documented.
113119

114-
### Releasing a new version
120+
### Running Tests
115121

116-
- update the package version on `pubspec.yaml` and `version.dart`
117-
118-
- add a changelog entry on `CHANGELOG.md`
119-
120-
- run `flutter pub publish` to publish the package
122+
```shell
123+
dart test
124+
```
121125

122-
### Watch models and generate JSON code
126+
### Code Generation
123127

124-
JSON serialization relies on code generation; make sure to keep that running while you make changes to the library
128+
JSON serialization relies on code generation. Keep it running while you make changes:
125129

126-
```bash
127-
flutter pub run build_runner watch
130+
```shell
131+
dart run build_runner watch
128132
```

0 commit comments

Comments
 (0)