This is a WhatsApp Clone project developed using Flutter and Firebase. It aims to replicate some of the core features of the popular messaging application WhatsApp, allowing users to send messages, create groups, and share media files.
-
User Registration and Login π²π‘: Users can create an account using their phone number and receive an OTP (One-Time Password) for verification.
-
Real-time Messaging π¬β‘οΈ: Users can send and receive messages in real-time, with instant updates and synchronization across devices.
-
Chatting π¬π·π₯: Users can send and receive text messages, images, videos, and GIFs in both one-on-one and group chats.
-
Group chats π₯π¬: Users can create groups, add members, and have group conversations.
-
Message replies π¬β©οΈ: Users can reply to specific messages in a conversation, providing context and facilitating threaded discussions.
-
Emoji and GIF support πποΈ: Users can add emojis and GIFs to their messages using a built-in picker.
-
Media sharing π·π₯: Users can select images and videos from their device's gallery and share them in conversations.
-
Real-time updates β‘οΈ: Messages and chat lists are updated in real-time, providing a seamless messaging experience.
-
User contacts π€π: Users can view and interact with their saved contacts, initiating chats with individual contacts or groups.
Here are some screenshots of the WhatsApp Clone app:
Flutter π±: Flutter is an open-source UI toolkit for building natively compiled applications for mobile, web, and desktop from a single codebase. It is used to develop the front-end of the WhatsApp Clone app, providing a cross-platform user interface.
Firebase π₯: Firebase is a comprehensive suite of cloud-based development tools provided by Google. In this project, Firebase is used for the following purposes:
-
Firebase Authentication π: Handles user registration, login, and authentication. OTP verification is used for phone number login.
-
Firebase Realtime Database or Firestore ποΈ: Stores and syncs chat messages, group data, and user information in real-time.
-
Firebase Cloud Storage βοΈ: Stores media files such as images and videos shared within chats.
To get started with the WhatsApp Clone app, follow these steps:
https://github.com/Ganeshshinde-2003/Flutter_WhatsApp_Clone.git
-
Create a new project in the Firebase console.
-
Enable Firebase Authentication and choose the desired authentication methods (e.g., phone number).
-
Set up Firebase Realtime Database or Firestore and configure the database rules.
-
Set up Firebase Cloud Storage and configure the storage rules.
-
Obtain the Firebase configuration details (API keys, database URL, storage bucket) and update them in the app's configuration files.
flutter pub get
flutter run
The following dependencies were used to build this app:
- β‘οΈ cupertino_icons: ^1.0.2 - Provides the Cupertino icons for iOS-style design.
- π₯ firebase_auth: ^4.6.2 - Handles user authentication using Firebase Authentication.
- ποΈ firebase_storage: ^11.2.2 - Enables storing and retrieving files in Firebase Cloud Storage.
- π₯ firebase_core: ^2.13.1 - Provides the core functionality for Firebase services.
- ποΈ cloud_firestore: ^4.8.0 - Allows interaction with the Firebase Cloud Firestore database.
- π country_picker: ^2.0.20 - Provides a picker to select countries and their phone codes.
- πΏ riverpod: ^2.3.6 - A simple yet powerful state management library.
- πΏ flutter_riverpod: ^2.3.6 - Integration of Riverpod with Flutter.
- πΌοΈ image_picker: ^0.8.7+5 - Allows selecting images and videos from the device's gallery.
- π flutter_contacts: ^1.1.6 - Retrieves and displays user contacts.
- π uuid: ^3.0.7 - Generates unique IDs for documents and entities.
- π intl: ^0.18.1 - Provides internationalization and localization support.
- πΌοΈ cached_network_image: ^3.2.3 - Caches network images to improve performance.
- π₯ cached_video_player: ^2.0.4 - Caches and plays videos from the network.
- π emoji_picker_flutter: ^1.6.1 - Provides an emoji picker for selecting emojis in the chat.
- ποΈ enough_giphy_flutter: ^0.4.0 - Integrates Giphy for adding animated GIFs to messages.
- ποΈ flutter_sound: ^9.2.13 - Records and plays audio messages.
- π permission_handler: ^9.2.0 - Handles runtime permissions for accessing device features.
- π path_provider: ^2.0.15 - Retrieves paths to device directories for file storage.
- π audioplayers: ^4.1.0 - Plays audio files with advanced options.
βοΈ swipe_to: ^1.0.2 - Implements swipe-to-delete and swipe-to-archive gestures.- π¦ story_view: ^0.14.0 - Displays stories with interactive gestures.
Contributions to the WhatsApp Clone project are welcome and encouraged! If you find any bugs, have feature requests, or want to contribute in any way, please open an issue or submit a pull request.