diff --git a/README.md b/README.md index 816e96a1..80284210 100644 --- a/README.md +++ b/README.md @@ -1,6 +1,15 @@ -# Stream Chat Dart +# Official Flutter packages for [Stream Chat](https://getstream.io/chat/) -![](https://camo.githubusercontent.com/f5f074f3e1cde523ae0d425347149e20f861024d1d8e19b22053294ad85c43c8/68747470733a2f2f692e696d6775722e636f6d2f4c344d6a3853322e706e67) +![](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/hotfix/readmes/images/sdk_hero_v4.png) + +[![Gitter](https://badges.gitter.im/GetStream/stream-chat-flutter.svg)](https://gitter.im/GetStream/stream-chat-flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +![CI](https://github.com/GetStream/stream-chat-flutter/workflows/stream_flutter_workflow/badge.svg?branch=master) + +**Quick Links** + +- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat +- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/) +- [Chat UI Kit](https://getstream.io/chat/ui-kit/) This repository contains code for our [Dart](https://dart.dev/) and [Flutter](https://flutter.dev/) chat clients. @@ -15,45 +24,28 @@ To get started, run `bootstrap` after cloning the project. melos bootstrap ``` -## Available Commands -### Analyze -> Requires `tuneup` to be activated globally. Please see https://pub.dev/packages/tuneup -```shell -melos run analyze -``` +## Packages +We provide a variety of packages depending on the level of customization you want to achieve. -### Pub Lint -Runs pub publish with ``--dry-run`` -```shell -melos run lint:pub -``` +### [stream_chat](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat) +A pure Dart package that can be used on any Dart project. It provides a low-level client to access the Stream Chat service. -### Build iOS -Builds iOS examples without codesign -```shell -melos run build:examples:ios -``` +### [stream_chat_persistence](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_persistence) +This package provides a persistence client for fetching and saving chat data locally. Stream Chat Persistence uses Moor as a disk cache. -### Build APK -Builds an Android APK for examples -```shell -melos run build:examples:android -``` +### [stream_chat_flutter_core](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_flutter_core) +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. -### Build MACOS -Builds MacOs for all examples -```shell -melos run build:examples:macos -``` +### [stream_chat_flutter](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_flutter) +This library includes both a low-level chat SDK and a set of reusable and customizable UI components. -### Test -Runs `flutter test` on all packages -```shell -melos run test -``` +## Flutter Chat Tutorial -### Test Web -Runs `flutter test --platform=chrome` on all packages -```shell -melos run test:web -``` +The best place to start is the [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/). +It teaches you how to use this SDK and also shows how to make frequently required changes. + +## Example Apps + +Every package folder includes a fully functional example with setup instructions. + +We also provide a set of sample apps created using the Stream Flutter SDK at [this location](https://github.com/GetStream/flutter-samples). \ No newline at end of file diff --git a/images/sdk_hero_v4.png b/images/sdk_hero_v4.png new file mode 100644 index 00000000..4d92e891 Binary files /dev/null and b/images/sdk_hero_v4.png differ diff --git a/packages/stream_chat/README.md b/packages/stream_chat/README.md index e0ed18bf..adeb6bb5 100644 --- a/packages/stream_chat/README.md +++ b/packages/stream_chat/README.md @@ -1,20 +1,30 @@ -# Stream Chat Dart +# Official Dart Client for [Stream Chat](https://getstream.io/chat/) + +>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. + [![Pub](https://img.shields.io/pub/v/stream_chat.svg)](https://pub.dartlang.org/packages/stream_chat) ![](https://img.shields.io/badge/platform-flutter%20%7C%20flutter%20web-ff69b4.svg?style=flat-square) -![CI](https://github.com/GetStream/stream-chat-dart/workflows/CI/badge.svg?branch=master) -[![codecov](https://codecov.io/gh/GetStream/stream-chat-dart/branch/master/graph/badge.svg)](https://codecov.io/gh/GetStream/stream-chat-dart) +[![Gitter](https://badges.gitter.im/GetStream/stream-chat-flutter.svg)](https://gitter.im/GetStream/stream-chat-flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) +![CI](https://github.com/GetStream/stream-chat-flutter/workflows/stream_flutter_workflow/badge.svg?branch=master) -stream-chat-dart is 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. +**Quick Links** -You can sign up for a Stream account at https://getstream.io/chat/ +- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat +- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/) +- [Chat UI Kit](https://getstream.io/chat/ui-kit/) + +### Changelog + +Check out the [changelog on pub.dev](https://pub.dev/packages/stream_chat/changelog) to see the latest changes in the package. ## Getting started ### Add dependency +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) ```yaml dependencies: - stream_chat: ^1.0.0-beta + stream_chat: ^latest-version ``` You should then run `flutter packages get` @@ -70,7 +80,7 @@ final client = StreamChatClient( )..chatPersistenceClient = CustomChatPersistentClient(); ``` -We provide an official persistent client in the (stream_chat_persistence)[https://pub.dev/packages/stream_chat_persistence] package. +We provide an official persistent client in the [stream_chat_persistence](https://pub.dev/packages/stream_chat_persistence) package. ```dart import 'package:stream_chat_persistence/stream_chat_persistence.dart'; diff --git a/packages/stream_chat_flutter/README.md b/packages/stream_chat_flutter/README.md index 3504c78a..868cb781 100644 --- a/packages/stream_chat_flutter/README.md +++ b/packages/stream_chat_flutter/README.md @@ -1,8 +1,6 @@ # Official Flutter SDK for [Stream Chat](https://getstream.io/chat/) -

- Flutter Chat -

+![](https://raw.githubusercontent.com/GetStream/stream-chat-flutter/hotfix/readmes/images/sdk_hero_v4.png) > The official Flutter components for Stream Chat, a service for > building chat applications. @@ -10,8 +8,7 @@ [![Pub](https://img.shields.io/pub/v/stream_chat_flutter.svg)](https://pub.dartlang.org/packages/stream_chat_flutter) ![](https://img.shields.io/badge/platform-flutter%20%7C%20flutter%20web-ff69b4.svg?style=flat-square) [![Gitter](https://badges.gitter.im/GetStream/stream-chat-flutter.svg)](https://gitter.im/GetStream/stream-chat-flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -![CI](https://github.com/GetStream/stream-chat-flutter/workflows/CI/badge.svg?branch=master) - +![CI](https://github.com/GetStream/stream-chat-flutter/workflows/stream_flutter_workflow/badge.svg?branch=master) **Quick Links** @@ -19,6 +16,11 @@ - [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/) - [Chat UI Kit](https://getstream.io/chat/ui-kit/) + +### Changelog + +Check out the [changelog on pub.dev](https://pub.dev/packages/stream_chat_flutter/changelog) to see the latest changes in the package. + ## Flutter Chat Tutorial The best place to start is the [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/). @@ -61,8 +63,8 @@ If it seems related to the [flutter file picker plugin](https://github.com/migue ## Docs This package provides UI components required for integrating Stream Chat into your application. -Alternatively, you may use the core package (stream_chat_flutter_core) which allows more customisation and provides business logic but no UI components. -If you require the maximum amount of control over the API, please use the low level client package: stream_chat. +Alternatively, you may use the core package [stream_chat_flutter_core](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat_flutter_core) which allows more customisation and provides business logic but no UI components. +If you require the maximum amount of control over the API, please use the low level client package: [stream_chat](https://github.com/GetStream/stream-chat-flutter/tree/master/packages/stream_chat). ### UI Components @@ -152,9 +154,34 @@ Out of the box, all chat widgets use their default styling, and there are two wa ### Offline storage -By default the library saves information about channels and messages in a SQLite DB. +To add data persistance you can extend the class `ChatPersistenceClient` and pass an instance to the `StreamChatClient`. -Set the property `persistenceEnabled` to false if you don't want to use the offline storage. +```dart +class CustomChatPersistentClient extends ChatPersistenceClient { +... +} + +final client = StreamChatClient( + apiKey ?? kDefaultStreamApiKey, + logLevel: Level.INFO, +)..chatPersistenceClient = CustomChatPersistentClient(); +``` + +We provide an official persistent client in the (stream_chat_persistence)[https://pub.dev/packages/stream_chat_persistence] package. + +```dart +import 'package:stream_chat_persistence/stream_chat_persistence.dart'; + +final chatPersistentClient = StreamChatPersistenceClient( + logLevel: Level.INFO, + connectionMode: ConnectionMode.background, +); + +final client = StreamChatClient( + apiKey ?? kDefaultStreamApiKey, + logLevel: Level.INFO, +)..chatPersistenceClient = chatPersistentClient; +``` ## Contributing diff --git a/packages/stream_chat_flutter_core/README.md b/packages/stream_chat_flutter_core/README.md index 6fe86329..d2443713 100644 --- a/packages/stream_chat_flutter_core/README.md +++ b/packages/stream_chat_flutter_core/README.md @@ -1,8 +1,4 @@ -# Official Flutter SDK Core for [Stream Chat](https://getstream.io/chat/) - -

- Flutter Chat -

+# Official Core Flutter SDK for [Stream Chat](https://getstream.io/chat/) > The official Flutter core components for Stream Chat, a service for > building chat applications. @@ -10,8 +6,7 @@ [![Pub](https://img.shields.io/pub/v/stream_chat_flutter.svg)](https://pub.dartlang.org/packages/stream_chat_flutter) ![](https://img.shields.io/badge/platform-flutter%20%7C%20flutter%20web-ff69b4.svg?style=flat-square) [![Gitter](https://badges.gitter.im/GetStream/stream-chat-flutter.svg)](https://gitter.im/GetStream/stream-chat-flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -![CI](https://github.com/GetStream/stream-chat-flutter/workflows/CI/badge.svg?branch=master) - +![CI](https://github.com/GetStream/stream-chat-flutter/workflows/stream_flutter_workflow/badge.svg?branch=master) **Quick Links** @@ -19,6 +14,10 @@ - [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/) - [Chat UI Kit](https://getstream.io/chat/ui-kit/) +### Changelog + +Check out the [changelog on pub.dev](https://pub.dev/packages/stream_chat_flutter_core/changelog) to see the latest changes in the package. + ## Flutter Chat Tutorial The best place to start is the [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/). diff --git a/packages/stream_chat_persistence/README.md b/packages/stream_chat_persistence/README.md index 77b2eea5..c79f3fe2 100644 --- a/packages/stream_chat_persistence/README.md +++ b/packages/stream_chat_persistence/README.md @@ -1,21 +1,27 @@ # Official Chat Persistence Client for [Stream Chat](https://getstream.io/chat/) -

- Flutter Chat -

- > The official Chat Persistence Client for Stream Chat, a service for > building chat applications. [![Pub](https://img.shields.io/pub/v/stream_chat_persistence.svg)](https://pub.dartlang.org/packages/stream_chat_persistence) ![](https://img.shields.io/badge/platform-flutter%20%7C%20flutter%20web-ff69b4.svg?style=flat-square) [![Gitter](https://badges.gitter.im/GetStream/stream_chat_persistence.svg)](https://gitter.im/GetStream/stream-chat-flutter?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge) -![CI](https://github.com/GetStream/stream-chat-flutter/workflows/CI/badge.svg?branch=master) - +![CI](https://github.com/GetStream/stream-chat-flutter/workflows/stream_flutter_workflow/badge.svg?branch=master) + + +**Quick Links** + +- [Register](https://getstream.io/chat/trial/) to get an API key for Stream Chat +- [Flutter Chat Tutorial](https://getstream.io/chat/flutter/tutorial/) +- [Chat UI Kit](https://getstream.io/chat/ui-kit/) This package provides a persistence client for fetching and saving chat data locally. Stream Chat Persistence uses [Moor](https://github.com/simolus3/moor) as a disk cache. +### Changelog + +Check out the [changelog on pub.dev](https://pub.dev/packages/stream_chat_persistence/changelog) to see the latest changes in the package. + ## Add dependency Add this to your package's pubspec.yaml file, use the latest version [![Pub](https://img.shields.io/pub/v/stream_chat_persistence.svg)](https://pub.dartlang.org/packages/stream_chat_persistence) ```yaml