/stream-chat-flutter

Flutter Chat SDK - Build your own chat app experience using Dart, Flutter and the Stream Chat Messaging API.

Primary LanguageDartOtherNOASSERTION

Official Flutter packages for Stream Chat

CI Melos

Quick Links

This repository contains code for our Dart and Flutter chat clients.

Stream allows developers to rapidly deploy scalable feeds and chat messaging with an industry leading 99.999% uptime SLA guarantee.

V4 Migration Guide

Warning

Flutter > = v3.16.x uses material 3 by default which breaks the UI of some of the components. If you want to use these versions, you need to set the useMaterial3 parameter to false in the ThemeData.

eg.

MaterialApp(
  theme: ThemeData(
    useMaterial3: false,
  ),
  ...
);

StreamChat widget overrides the useMaterial3 parameter to false by default so if you are using StreamChat widget, you don't need to set it manually.

For upgrading from V6 to V7, please refer to the V4 Migration Guide

Sample apps and demos

Our team maintains a dedicated repository for full fledged sample applications and demos. Consider checking out GetStream/flutter-samples to learn more or get started by looking at our latest Stream Chat demo.

Free for Makers

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. For complete pricing details visit our Chat Pricing Page

Structure

Stream Chat Dart is a monorepo built using Melos. Individual packages can be found in the packages directory while configuration and top level commands can be found in melos.yaml.

To get started, run bootstrap after cloning the project.

melos bootstrap

Packages

We provide a variety of packages depending on the level of customization you want to achieve.

A pure Dart package that can be used on any Dart project. It provides a low-level client to access the Stream Chat service.

This package provides a persistence client for fetching and saving chat data locally. Stream Chat Persistence uses Moor as a disk cache.

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.

This library includes both a low-level chat SDK and a set of reusable and customizable UI components.

This library includes a set of localization files for the Flutter UI components.

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.

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.

Versioning Policy

All of the Stream Chat packages follow semantic versioning.

See our versioning policy documentation for more information.

We are hiring

We've recently closed a $38 million Series B funding round and we keep actively growing. 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.

Check out our current openings and apply via Stream's website.