Skip to main content
Version: v5


Understanding The Core Package Of The Flutter SDK

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.


In the early days of the Flutter SDK, the SDK was only split into the LLC (stream_chat) and the UI package (stream_chat_flutter). With this you could use a fully built interface with the UI package or a fully custom interface with the LLC. However, we soon recognised the need for a third intermediary package which made tasks like building and modifying a list of channels or messages easy but without the complexity of using low level components. The Core package (stream_chat_flutter_core) is a manifestation of the same idea and allows you to build an interface with Stream Chat without having to deal with low level code and architecture as well as implementing your own theme and UI effortlessly. Also, it has very few dependencies.

We will now explore the components of this intermediary package and understand how it helps you build the experience you want your users to have.

The package primarily contains a bunch of controller classes. Controllers are used to handle the business logic of the chat. You can use them together with our UI widgets, or you can even use them to build your own UI.

  • StreamChannelListController
  • StreamUserListController
  • StreamMessageSearchListController
  • StreamMessageInputController
  • LazyLoadScrollView
  • PagedValueListenableBuilder

This section goes into the individual core package widgets and their functional use.

Did you find this page helpful?