Official Flutter SDK for Stream Chat

Official Flutter SDK for Stream Chat

The official Flutter components for Stream Chat, a service for building chat applications.

Official Flutter SDK for Stream Chat

The official Flutter components for Stream Chat, a service for building chat applications.

Quick Links

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 App

This repo includes a fully functional example app with setup instructions. The example is available under the example folder.

Add dependency

dependencies:
 stream_chat_flutter: ^0.2.1

You should then run flutter packages get

Android

All set ✅

iOS

The library uses flutter file picker plugin to pick files from the os. Follow this wiki to fulfill iOS requirements.

We also use video_player to reproduce videos. Follow this guide to fulfill the requirements.

To pick images from the camera, we use the image_picker plugin. Follow these instructions to check the requirements.

Docs

Business logic components

We provide 3 Widgets dedicated to business logic and state management:

UI Components

These are the available Widgets that you can use to build your application UI. Every widget uses the StreamChat or StreamChannel widgets to manage the state and communicate with Stream services.

Customizing styles

The Flutter SDK comes with a fully designed set of widgets that you can customize to fit with your application style and typography. Changing the theme of Chat widgets works in a very similar way that MaterialApp and Theme do.

Out of the box, all chat widgets use their default styling, and there are two ways to change the styling:

  1. Initialize the StreamChatTheme from your existing MaterialApp style
class MyApp extends StatelessWidget {
  final Client client;

  MyApp(this.client);

  @override
  Widget build(BuildContext context) {
    final theme = ThemeData(
      primarySwatch: Colors.green,
    );

    return MaterialApp(
      theme: theme,
      builder: (context, child) => StreamChat(
       child: child,
       client: client,
       streamChatThemeData: StreamChatThemeData.fromTheme(theme),
      ),
      home: ChannelListPage(),
      );
  }
}
  1. Construct a custom theme and provide all the customizations needed
class MyApp extends StatelessWidget {
  final Client client;

  MyApp(this.client);

  @override
  Widget build(BuildContext context) {
    final theme = ThemeData(
      primarySwatch: Colors.green,
    );

    return MaterialApp(
      theme: theme,
      builder: (context, child) => StreamChat(
       child: child,
       client: client,
       streamChatThemeData: StreamChatThemeData.fromTheme(theme).copyWith(
          ownMessageTheme: MessageTheme(
          messageBackgroundColor: Colors.black,
          messageText: TextStyle(
            color: Colors.white,
          ),
          avatarTheme: AvatarTheme(
            borderRadius: BorderRadius.circular(8),
          ),
          ),
       ),
      ),
      home: ChannelListPage(),
      );
  }
}

Offline storage

By default the library saves information about channels and messages in a SQLite DB.

Set the property persistenceEnabled to false if you don't want to use the offline storage.

Contributing

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.

Download Details:

Author: GetStream

Demo: https://getstream.io/

Source Code: https://github.com/GetStream/stream-chat-flutter

flutter dart mobile-apps

Bootstrap 5 Complete Course with Examples

Bootstrap 5 Tutorial - Bootstrap 5 Crash Course for Beginners

Nest.JS Tutorial for Beginners

Hello Vue 3: A First Look at Vue 3 and the Composition API

Building a simple Applications with Vue 3

Deno Crash Course: Explore Deno and Create a full REST API with Deno

How to Build a Real-time Chat App with Deno and WebSockets

Convert HTML to Markdown Online

HTML entity encoder decoder Online

Google's Flutter 1.20 stable announced with new features - Navoki

Google has announced new flutter 1.20 stable with many improvements, and features, enabling flutter for Desktop and Web

Top 25 Flutter Mobile App Templates in 2020

Flutter has been booming worldwide from the past few years. While there are many popular mobile app development technologies out there, Flutter has managed to leave its mark in the mobile application development world. In this article, we’ve curated the best Flutter app templates available on the market as of July 2020.

Flutter App Development Trends 2020

As the new decade dawns upon us, a slew of technologies has been making a lot of noise to grab the developers’ attention. While native app development is going strong, the trade winds are now blowing towards going cross-platform.

How To Succeed In Mobile App Wireframe Design?

This article covers everything about mobile app wireframe design: what to do and what not, tools used in designing a mobile or web app wireframe, and more.

What is Flutter and why you should learn it?

Flutter is an open-source UI toolkit for mobile developers, so they can use it to build native-looking Android and iOS applications from the same code base for both platforms. Flutter is also working to make Flutter apps for Web, PWA (progressive Web-App) and Desktop platform (Windows,macOS,Linux).