This repository contains the code for a chat application built with Flutter and Firebase. It features real-time messaging, user authentication, message editing, a typing indicator, and a responsive user interface that adapts to different screen sizes and orientations.
- Real-time Messaging: Utilizes Firebase Firestore to enable real-time sending and receiving of messages.
- User Authentication: Manages user authentication and data through Firebase.
- Message Editing and Deletion: Allows users to modify or remove their messages after posting.
- Typing Indicator: Displays an indicator when a user is typing.
- Responsive UI: The interface adjusts to accommodate various device orientations and screen sizes.
The application is configured to use Firebase for backend services, providing a robust and scalable infrastructure.
The frontend is developed using Flutter, making extensive use of its comprehensive widget library and efficient state management.
Necessary permissions and configurations are set in the AndroidManifest.xml
file to ensure proper functionality on Android devices.
The FirestoreService
class handles all interactions with Firebase Firestore, including operations like sending, receiving, updating, and deleting messages.
ChatView
: This is the primary UI component where users interact with the chat interface.FirestoreService
: A dedicated service class for managing Firestore operations.firebase_options.dart
: Contains configuration options for Firebase on various platforms.
To get started with this project, follow these steps:
- Clone the repository:
git clone https://github.com/farhansadikgalib/twinkle.git
- Install dependencies: Run
flutter pub get
in the project directory. - Setup Firebase: Ensure that your Firebase project is set up and that the
firebase_options.dart
file is correctly configured for your environment. - Run the app: Execute
flutter run
in the terminal within the project directory to launch the application on your device or emulator.
Splash screen | Auth Page | Chat Page |
---|---|---|
![]() |
![]() |
![]() |
Contributions are welcome! If you have improvements or bug fixes, please fork the repository and submit a pull request.
This project is licensed under the MIT License - see the LICENSE file for details.
#FlutterFirebaseChat #RealTimeChatApp #FlutterChatApp #FirebaseMessaging #FlutterDevs