Whatsapp clone made with Flutter

Overview

flutter_whatsapp

Join the chat at https://gitter.im/flutter_whatsapp/community

Whatsapp (ver. 2.19.98) clone using Flutter.

About

I made this for my study/exercise on Flutter. I only make the client-side app, the server side is a dummy server.

API Server Documentation

Refer to this documentation.

Development

To run this project on your own, do the following:

  1. Clone this project.
  2. Run flutter pub get.
  3. Create your own Firebase project and add the google-services.json to the folder android/app (for Android). This is a requirement for QR code reader package.
  4. Run the project using flutter run or using your IDE's tools.

Integration Testing

Integration testing utilizes integration_test library. Here's how to run the integration test:

  • Windows:
    • Run the script run_ui_tests.bat in the terminal.
  • Mac/Linux:
    • Run this command in the terminal:
      flutter drive --driver=test_driver/app.dart --target=integration_test/app_test.dart
      

Integration testing in action (Credit to @karinamuraya):

Screenshots

AppBar & TabBar List chats from API
Search through chats/statuses/calls Show popup when profile is clicked
Retrieve list of contacts in phone See chat messages and send a new message
See status detail (Android) Retrieve images from DCIM folder and take a picture.
  • Others
    • Take a video and save it to DCIM/Camera folder.
    • Scan a QR code (Still buggy).
    • Make an intent to open Contacts app on Android.
    • Make an intent to open an email app to invite friends.
Comments
  • Init Migration V2

    Init Migration V2

    • Bump Android compileSdkVersion & targetSdkVersion to 31
    • Remove io.flutter.app.FlutterApplication from AndroidManifest.xml
    • Bump Kotlin version to 1.5.0
    • Bump Gradle version to 6.9
    opened by hanmajid 0
  • Migration v2

    Migration v2

    • Bump Android compileSdkVersion & targetSdkVersion to 31
    • Remove io.flutter.app.FlutterApplication from AndroidManifest.xml
    • Bump Kotlin version to 1.5.0
    • Bump Gradle version to 6.9
    opened by hanmajid 0
  • Camera features don't work

    Camera features don't work

    Environment

    Flutter 1.17

    Current Behavior

    When opening the camera page, these issues occur:

    • There's no error stack on my debug console.
    • The camera opens up properly but the gallery image doesn't show any recent image.
    • The take picture/Video button doesn't work.
    • It doesn't find the device path.

    Expected Behavior

    • The mentioned issues don't happen.
    bug 
    opened by hanmajid 0
  • Disable fast_qr & check contacts permission

    Disable fast_qr & check contacts permission

    Fix https://github.com/hanmajid/flutter_whatsapp/issues/3: Check Contacts permission on runtime

    Note: Also disable fast_qr_reader_view as it fails sometimes. Need to create own issue later.

    opened by hanmajid 0
  • Check Contacts permission on runtime

    Check Contacts permission on runtime

    Current behavior

    When go to chat/new route, the app will crash and you'll get this error if Contacts permission is not granted:

    E/AndroidRuntime(18850): FATAL EXCEPTION: pool-1-thread-1
    E/AndroidRuntime(18850): Process: com.hanmajid.flutterwhatsapp, PID: 18850
    E/AndroidRuntime(18850): java.lang.RuntimeException: An error occurred while executing doInBackground()
    E/AndroidRuntime(18850): 	at android.os.AsyncTask$4.done(AsyncTask.java:399)
    E/AndroidRuntime(18850): 	at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:383)
    E/AndroidRuntime(18850): 	at java.util.concurrent.FutureTask.setException(FutureTask.java:252)
    E/AndroidRuntime(18850): 	at java.util.concurrent.FutureTask.run(FutureTask.java:271)
    E/AndroidRuntime(18850): 	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1167)
    E/AndroidRuntime(18850): 	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:641)
    E/AndroidRuntime(18850): 	at java.lang.Thread.run(Thread.java:919)
    E/AndroidRuntime(18850): Caused by: java.lang.SecurityException: Permission Denial: opening provider com.android.providers.contacts.ContactsProvider2 from ProcessRecord{f066ef9 18850:com.hanmajid.flutterwhatsapp/u0a205} (pid=18850, uid=10205) requires android.permission.READ_CONTACTS or android.permission.WRITE_CONTACTS
    E/AndroidRuntime(18850): 	at android.os.Parcel.createException(Parcel.java:2071)
    E/AndroidRuntime(18850): 	at android.os.Parcel.readException(Parcel.java:2039)
    E/AndroidRuntime(18850): 	at android.os.Parcel.readException(Parcel.java:1987)
    E/AndroidRuntime(18850): 	at android.app.IActivityManager$Stub$Proxy.getContentProvider(IActivityManager.java:5056)
    E/AndroidRuntime(18850): 	at android.app.ActivityThread.acquireProvider(ActivityThread.java:6561)
    E/AndroidRuntime(18850): 	at android.app.ContextImpl$ApplicationContentResolver.acquireUnstableProvider(ContextImpl.java:2725)
    E/AndroidRuntime(18850): 	at android.content.ContentResolver.acquireUnstableProvider(ContentResolver.java:2117)
    E/AndroidRuntime(18850): 	at android.content.ContentResolver.query(ContentResolver.java:928)
    E/AndroidRuntime(18850): 	at android.content.ContentResolver.query(ContentResolver.java:880)
    E/AndroidRuntime(18850): 	at android.content.ContentResolver.query(ContentResolver.java:836)
    E/AndroidRuntime(18850): 	at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin.getCursor(ContactsServicePlugin.java:229)
    E/AndroidRuntime(18850): 	at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin.access$200(ContactsServicePlugin.java:44)
    E/AndroidRuntime(18850): 	at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin$GetContactsTask.doInBackground(ContactsServicePlugin.java:170)
    E/AndroidRuntime(18850): 	at flutter.plugins.contactsservice.contactsservice.ContactsServicePlugin$GetContactsTask.doInBackground(ContactsServicePlugin.java:149)
    E/AndroidRuntime(18850): 	at android.os.AsyncTask$3.call(AsyncTask.java:378)
    E/AndroidRuntime(18850): 	at java.util.concurrent.FutureTask.run(FutureTask.java:266)
    E/AndroidRuntime(18850): 	... 3 more
    

    Expected behavior

    Check Contacts permission on runtime.

    bug 
    opened by hanmajid 0
  • Migrate to AndroidX

    Migrate to AndroidX

    Current behavior:

    When running, you get this message:

    [!] Your app isn't using AndroidX.
        To avoid potential build failures, you can quickly migrate your app by following the steps on https://goo.gl/CP92wY.
    

    Expected behavior:

    The message is no longer displayed when running.

    good first issue 
    opened by hanmajid 0
  • Add a Gitter chat badge to README.md

    Add a Gitter chat badge to README.md

    hanmajid/flutter_whatsapp now has a Chat Room on Gitter

    @hanmajid has just created a chat room. You can visit it here: https://gitter.im/flutter_whatsapp/community.

    This pull-request adds this badge to your README.md:

    Gitter

    If my aim is a little off, please let me know.

    Happy chatting.

    PS: Click here if you would prefer not to receive automatic pull-requests from Gitter in future.

    opened by gitter-badger 0
Owner
hanmajid
hanmajid
Whatsapp Clone using Amplify DataStore in Flutter

Whatsapp Clone using Amplify DataStore in Flutter About The Project Built With Flutter AWS Amplify DataStore Getting Started To get a local copy up an

Ashish Singh Chauhan 2 Nov 25, 2022
Responsive Whatsapp CLone - MVVM Architecture,Provider

whatsapp_clone Flutter project. Using MVVM Architecture, firebase, Provider and Rest API This project is a starting point for a Flutter application. A

Pranav Pv 20 Jan 2, 2023
Simple tool to open WhatsApp chat without saving the number, developed using Google's Flutter Framework. for Android/ IOS/ Desktop/ Web

OpenWp Simple tool to open WhatsApp chat without saving the number Explore the docs » View Demo · Report Bug · Request Feature Table of Contents About

Swarup Bhanja Chowdhury 15 Nov 1, 2022
a small app with a collection to WhatsApp group links

linki A community based app for links to social media groups. Intro Linki is a simple app that shows an interactive list of links to social media grou

Sean 11 Sep 19, 2021
This is a whatsapp ux redesign i did. The aim of this project was to solidify my knowledge UX and UI design.

whatsapp-ux-redesign This is a whatsapp ux redesign i did. The aim of this project was to solidify my knowledge UX and UI design. Screenshots of the p

Adeniji Victor 115 Dec 4, 2022
Send-a-msg - Send message to WhatsApp without saving number

Send A Message Send Message to Whatsapp without saving number ToDo add logging s

Sujal 3 Apr 3, 2022
Wordle clone flutter - Wordle clone built with flutter

Wordle Generated by the Very Good CLI ?? A Very Good Project created by Very Goo

Oscar 4 Jun 7, 2022
Netflix clone flutter - A clone of netflix UI Built with flutter

Netflix Clone Ui Projeto onde foi criado um clone da interface da Netflix para m

null 4 Aug 18, 2022
Instagram-clone - Instagram clone built using flutter and Firebase

Instagram-clone statistics of Firebase usage User Authentication for Instagram l

null 5 Jul 18, 2022
Flutter-meet - A Google Meet clone made in Flutter using 100ms

Flutter x Meet - Google Meet clone made in Flutter Google Meet clone made in Flu

Aditya Thakur 7 Nov 30, 2022
Instagram Ui Clone made using Flutter.

flutter_instagram_ui_clone Some Screenshots A new Flutter project. Getting Started For help getting started with Flutter, view our online documentatio

Pawan Kumar 521 Dec 31, 2022
A simple YouTube UI clone made using Flutter

youtube_clone_flutter About A clone of the YouTube app that I created using Flutter, took reference from this version of YouTube clone. Snapshots Home

Ahmed Gulab Khan 49 Dec 13, 2022
A google browser clone which is made by using flutter and fetching the google search api for the search requests.

google_clone A new Flutter project. Project Preview Getting Started This project is a starting point for a Flutter application. A few resources to get

Priyam Soni 2 May 31, 2022
Spotify UI clone made with FLutter.

Spotify Ui clone My Goal The objective of this project is to look at how we can customise Flutter Widgets to achieve beautiful user interface designs

Light 11 Oct 23, 2022
A fully functional Furniture App Clone made using Flutter, Supabase and Getx State Management.

?? Flutter Furniture App ?? Timberr is a fully functional Furniture App Clone Developed using Flutter, Supabase and Getx State Management which is bas

Aditya 54 Nov 22, 2022
This is the UI of Furniture App made using Flutter SDK. The original design was made by someone else in dribble and I tried to create the screens of that UI using Flutter

Furniture App - Responsive Flutter UI Watch it on YouTube Responsive UI Fetch Data From API Custom Loading Indicator Packages we are using: flutter_sv

null 6 Dec 3, 2022
Flutter-Udemy - - A Udemy clone using Flutter sdk and dart.

udemy_clone A new Flutter project. Below are some images : Getting Started This project is a starting point for a Flutter application. A few resources

Priyam Soni 3 Apr 24, 2022
Bimono-Flutter - Bimono is flutter UI Clone from Binomo Trading Application

flutter_bimono_clone A new Flutter project. Getting Started When you running in

Bagas Satria 6 Nov 6, 2022
Instagram clone built using flutter and firebase

instagram_clone An instagram clone built using Flutter and Firebase. Introduction Flutter is a develpment kit created by google using which you can bu

Nadeem Choudhary 3 Jun 8, 2022