Skip to content

Latest commit

 

History

History
273 lines (221 loc) · 13.9 KB

File metadata and controls

273 lines (221 loc) · 13.9 KB

Stand With Palestine

📱 Flutter WhatsApp-like Chat Chat App

Overview

This Flutter project is a chat application inspired by WhatsApp. The app features a familiar interface with a functional chat page, a Local Auth Screen, and user registration using email/password or Google Account.

Screenshots

Update Available Screen

drawing drawing drawing

SignUp using Email & Password Screen

drawing drawing drawing


drawing drawing

SignUp using the Google Account Screen ( After Select Account )

drawing drawing drawing

Login Screen

drawing drawing drawing


drawing

Reset Password Screen

drawing drawing drawing

Home Screen

drawing drawing drawing

Settings Screen

drawing drawing drawing


drawing

Chat Screen

drawing drawing


drawing drawing drawing

Select Image

drawing drawing


drawing drawing

Local Auth Screen (Fingerprint & FaceID)

drawing drawing drawing

No Internet Screen

drawing

Coming Soon Screen

drawing

Features

  • User Authentication:

    • Email/Password registration with placeholder image.
    • Google Account registration with profile image.
  • Chat Functionality:

    • Display all registered users on the home page.
    • Clicking on a user tile opens the chat page.
    • Chat page displays saved messages from Firebase store.
    • Input text field and send button for sending messages.
    • Real-time updates using Firebase Cloud Firestore.
    • Push notifications using Firebase Cloud Messaging.
  • Notification Handling:

    • Display notifications when the app is in the foreground using flutter_local_notifications package.
    • Open the chat with the sender when the app is in the background or terminated.
  • Security:

    • App lock feature using fingerprint or face ID with local_auth package.
    • Fingerprint/face ID attempts are limited to prevent unauthorized access.
    • Lock screen request after multiple unsuccessful attempts.
  • Settings:

    • Accessible from the home page's three dots menu.
    • Option to enable/disable app lock with a Cupertino switch.
    • Option to Change App Language
  • Camera Integration:

    • Capture high-quality photos using the device's camera.
    • Save pictures on the device.
    • Send photos

Dependencies

  • awesome_dialog: Provides versatile dialogs for various use cases.
  • cached_network_image: Library to load and cache network images.
  • chat_bubbles: Simplifies chat message UI creation.
  • cloud_firestore: Integrates with Firebase Firestore for data storage and retrieval.
  • dio: HTTP client for making API requests.
  • easy_localization: Internationalizing and localization App.
  • firebase_auth: Manages user authentication with Firebase.
  • firebase_core: Initializes the Firebase connection.
  • firebase_messaging: Enables FCM for notifications.
  • firebase_storage: Plugin for Firebase Cloud Storage.
  • flutter_local_notifications: Presents local notifications when the app is in the foreground.
  • flutter_native_splash: Customize the App's default white native splash screen with background color and splash image.
  • flutter_offline: Handles offline connectivity scenarios.
  • flutter_screenutil: Adapts UI elements to different screen sizes.
  • flutter_speed_dial: Plugin to implement a beautiful and dynamic Material Design Speed Dial with labels.
  • flutter_svg: An SVG rendering and widget library.
  • gap: Simplifies spacing management in layouts.
  • flutter_link_previewer: Customizable link and URL preview extracted from the provided text with the ability to render from the cache.
  • gallery_saver: Saves images and videos from network or temporary file to external storage. Both images and videos will be visible in Android Gallery and iOS Photos.
  • restart_app: A Flutter plugin that helps you to restart the whole Flutter app with a single function call by using native APIs.
  • path_provider: Flutter plugin for getting commonly used locations on host platform file systems, such as the temp and app data directories.
  • google_sign_in: Facilitates Google Sign-In authentication.
  • googleapis_auth: Obtain Access credentials for Google services using OAuth 2.0.
  • image_picker: Plugin for selecting images from the image library, and taking new pictures with the camera.
  • intl: Internationalization and localization support.
  • local_auth: Enables fingerprint and Face ID authentication.
  • logger: Assists with logging messages for debugging.
  • shared_preferences: Stores simple data locally on the device.
  • pretty_dio_logger: A Dio interceptor that logs network calls in a pretty, easy-to-read format.
  • modal_bottom_sheet: Create awesome and powerful modal bottom sheets.
  • lottie: Render After Effects animations natively on Flutter.
  • package_info_plus: Querying information about the application package.
  • pub_semver: in this App to compare versions.
  • url_launcher: Plugin for launching a URL.

Installation

  1. Clone the repository:
git clone https://github.com/MoazSayed7/Flutter-Chat-App-Firebase-Authentication-Messaging-WhatsApp-Like.git
  1. Navigate to the project directory:
cd Flutter-Chat-App-Firebase-Authentication-Messaging-WhatsApp-Like
  1. Install dependencies:
flutter pub get
  1. Configure Firebase:

  2. Set up Firebase for your project by following the Using Firebase CLI.


  1. Update the app's launcher icon:
dart run flutter_launcher_icons
  1. Update the app's splash screen:
dart run flutter_native_splash:create --path=flutter_native_splash.yaml
  1. Run the app:
flutter run