-
Notifications
You must be signed in to change notification settings - Fork 32
Codebase Overview
- A bridge has been created to connect the firebase auth & StreamChat SDK
- There are three important things to notice that are common to all Flutter application using StreamChat:
- The Dart API client is initialized with your API Key
- The current user is set by calling connectUser on the client
- The client is then passed to the top-level StreamChat widget
-
The top level StreamChatClient is returned in
home_page.dart
, StreamChat is an inherited widget and must be the parent of all Chat related widgets, we will cover later how you can leverage the inherited widget APIs to build more advanced customizations to your application. -
A channel contains messages and a list of members who are permanently associated with the channel and a list of watchers currently watching the channel.
-
The
ChannelListPage
widget retrieves the list of channels based on a custom query and ordering using theChannelsBloc
inherited widget -
To add data persistence
ChatPersistenceClient
is extended and passed as an instance to theStreamChatClient
. -
To read more, Please refer to the tutorial for steps.
- A good, structured catalogue of projects and relevant resources proofs design-processes and teamwork, speed-ups designer’s work. It helps new employees to natively understand the catalogue. It also allows separate accesses for security issues.
- In order to develop a scalable application that can be extended to ios, web, and desktop using flutter cross-platform, I have maintained a clean directory structure in line with Agile methodologies as follows:
(Self-explanatory / Internal files are not mentioned.)
- config/ - constants used in the application
-
pages/ - The Widgets of all the pages / screens in the application
-
chats/ - All Pages related to the chat functionality
- group_chat/ - All Pages related to group chats or channels
- new_chat/ - All Pages related to Create a new group / Chat Functionality
- widgets/ - Modular Widgets used commonly in this chat sub directory
- chat_info_page.dart
- chats_home_page.dart - The home page of all the chats
- pinned_messages_page.dart
- thread_page.dart
- login/ - All Pages related to Login
- meetings/ - All Pages related to Create & Join Meeting Functionality
- mentions/ - The mentions page to list user mentions
- onboarding/ - All Pages related to the onboarding screen
-
chats/ - All Pages related to the chat functionality
- routes/ - Contains all the routes used and generated in the application
-
services/ - Contains The service initialisation logic for StreamChat & Authentication using Firebase in the application
- authentication/
- notifications/ - Work in progress Notification implementation for android
- stream_chat/
-
widgets/
- drawer.dart - The Drawer Widget of the Application
- rounded_button.dart
- search_text_field.dart
- home_page.dart - Contains the top level Stream Chat widget
- main.dart - The entry point for execution
- This application follows the Effective Dart: Style & the repository is maintained following Agile Methodologies and Gitflow Workflow