Official Core Flutter SDK for Stream Chat
The official Flutter core components for Stream Chat, a service for building chat applications.
Check out the changelog on pub.dev to see the latest changes in the package.
Flutter Chat Tutorial
The best place to start is the Flutter Chat Tutorial. It teaches you how to use this SDK and also shows how to make frequently required changes.
This repo includes a fully functional example app with setup instructions. The example is available under the example folder.
dependencies: stream_chat_flutter_core: ^latest_version
You should then run
flutter packages get
This package requires no custom setup on any platform since it does not depend on any platform-specific dependency
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. Please use the stream_chat_flutter package for the full fledged suite of UI components or stream_chat for the low-level client.
The package primarily contains three types of classes:
- Business Logic Components
- Core Components
- Core Controllers
Business Logic Components
These components allow you to have the maximum and lower-level control of the queries being executed. The BLoCs we provide are:
Core components usually are an easy way to fetch data associated with Stream Chat which are decoupled from UI and often expose UI builders. Data fetching can be controlled with the controllers of the respective core components.
- ChannelListCore (Fetch a list of channels)
- MessageListCore (Fetch a list of messages from a channel)
- MessageSearchListCore (Fetch a list of search messages)
- UserListCore (Fetch a list of users)
- StreamChatCore (This is different from the other core components - it is a version of StreamChat decoupled from theme and initialisations.)
Core Controllers are supplied to respective CoreList widgets which allows reloading and pagination of data whenever needed.
We welcome code changes that improve this library or fix a problem, please make sure to follow all best practices and add tests if applicable before submitting a Pull Request on Github. We are pleased to merge your code into the official repository. Make sure to sign our Contributor License Agreement (CLA) first. See our license file for more details.