This project is a simple chat application created using Flutter. It uses riverpod for state management and follows the Clean Architecture principles. For user authentication, it utilizes FirebaseAuth, and for the database, it uses Firestore. FirebaseAnalytics is used for analytics purposes.
- User registration
- User login
- One-to-one chats
- Group chats with two or more participants
-
Install Flutter and set up the environment.
-
Clone this repository.
git clone https://github.com/your_username/flutter_chat_app.git
cd flutter_chat_app
- Install the required packages.
flutter pub get
-
Create a Firebase project and place
google-services.json
in theandroid/app
directory. Also, place the configuration fileGoogleService-Info.plist
for iOS in theios/Runner
directory. -
Run the app on an emulator or a physical device.
flutter run
This application follows the Clean Architecture approach, divided into the following layers:
- UI Layer - Contains Flutter widgets
- Domain Layer - Contains business logic and repository interfaces
- Data Layer - Contains data sources and repository implementations
Additionally, it uses riverpod for state management, effectively controlling the flow of data and minimizing UI updates.
- Display message timestamps
- Upload and display user profile images
- Better error handling and validation
- Show user online/offline status
- Display unread message count
- Search and filtering of messages
- Dark mode support