An example project to demonstrate how to build WhatsApp using Jetpack Compose.

Overview

Jetpack-Compose-WhatsApp-Clone - Learn Jetpack Compose by building WhatsApp Clone

MindOrks MindOrks Community Open Source Love

About this project (Jetpack Compose WhatsApp Clone):

  • If you want to get started with Jetpack Compose, then this project is for you.
  • Common use-cases of Jetpack Compose has been implemented in this project like working with List, Using Coroutines, etc.
  • Also, learn to work with multiple screens in Jetpack Compose.
  • We are using 1.0.0-alpha01 version of Jetpack Compose to design WhatsApp Clone, we will keep it updating based on the new releases.

Steps to learn Jetpack Compose from this project

  • First, learn the concepts of Jetpack Compose from this blog.
  • Learn Jetpack Compose for Android by Examples from this project.
  • Then, just clone, build, run the project and start learning Jetpack Compose by building WhatsApp.

This Jetpack Compose WhatsApp Clone Project will help you in learning the following for Android App Development:

  • How to build WhatsApp using Jetpack Compose?
  • How to build a multiple screen app using Compose?
  • How to work with Lists?
  • How to work with Tabs?
  • How to build TopAppBar and work with different Containers?
  • How to load images from Drawable and Url?
  • How to work with Coroutines in Compose?
  • How to manage state in Jetpack Compose?
  • How to write test cases in Jetpack Compose?
  • How to work with LiveData in Jetpack Compose?

References useful during learning the Jetpack Compose for Android from this project

Explore Android Online Tutorials and Courses To Learn More by MindOrks

  • Ride-Sharing Uber Lyft Android App - Learn to build a ride-sharing Android Taxi Clone App like Uber, Lyft - Open-Source Project By MindOrks
  • Android Tutorial - All Free Android Tutorials by MindOrks
  • Android Online Course for Professionals - In this online course, you’ll learn the Dagger, Kotlin, RxJava, MVVM Architecture, Architecture Components, Jetpack, LiveData, ViewModel, Room Database, Database Design, Multithreading, Memory Management, Networking, Caching, How Glide works, Unit Testing, and the best practices for Android Development. By the end of this online course, you will have all the skills you need to become a professional Android Developer.
  • Android Online Course for Beginners - This course is for beginners for those who want to get started with Android Development. In this course, you will build two apps: TodoNotes and Ride-Sharing Uber Android App.

If this project helps you in anyway, show your love ❤️ by putting a on this project ✌️

Check out MindOrks awesome open source projects here

License

   Copyright (C) 2020 MINDORKS NEXTGEN PRIVATE LIMITED

   Licensed under the Apache License, Version 2.0 (the "License");
   you may not use this file except in compliance with the License.
   You may obtain a copy of the License at

       http://www.apache.org/licenses/LICENSE-2.0

   Unless required by applicable law or agreed to in writing, software
   distributed under the License is distributed on an "AS IS" BASIS,
   WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
   See the License for the specific language governing permissions and limitations under the License.

Contributing to Jetpack Compose WhatsApp Clone

Just make a pull request. You are in!

You might also like...
A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose
A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose

Authentication A simple authentication application using Jetpack compose to illustrate signin and sign up using Mvvm, Kotlin and jetpack compose Scree

Sample project to demonstrate how to have clear and better interactions between composables and viewmodels.

Form Validation Sample project to demonstrate how to have clear and better interactions between composables and viewmodels. Concepts used uiState conc

a set of Settings like composable items to help android Jetpack Compose developers build complex settings screens
a set of Settings like composable items to help android Jetpack Compose developers build complex settings screens

This library provides a set of Settings like composable items to help android Jetpack Compose developers build complex settings screens without all the boilerplate

PapriCoin demonstrates Jetpack Compose usage to build modern app based on Clean Architecture and newest Tech-Stack
PapriCoin demonstrates Jetpack Compose usage to build modern app based on Clean Architecture and newest Tech-Stack

PapriCoin demonstrates Jetpack Compose usage to build modern app based on Clean Architecture and newest Tech-Stack. Repository also has loca

A simple Snake application to demonstrate the use of Compose for Desktop platform with Kotlin
A simple Snake application to demonstrate the use of Compose for Desktop platform with Kotlin

Snake App using Compose for Desktop A simple Snake desktop application to demonstrate the use of Compose UI toolkit for Desktop platform with Kotlin.

🔖 A Quotes Application built to Demonstrate the Compose for Desktop UI
🔖 A Quotes Application built to Demonstrate the Compose for Desktop UI

🔖 JetQuotes A Quotes Application built to Demonstrate the use of Jetpack Compose for building declarative UI in Desktop. Made with love ❤️ by Spikeys

Forget about bunch of XML files for maintaining UIs. Jetpack Compose is Android’s modern toolkit for building native UI. Here is a small example to get started.
Forget about bunch of XML files for maintaining UIs. Jetpack Compose is Android’s modern toolkit for building native UI. Here is a small example to get started.

Jetpack Compose Sample Description This repository is to get started with new Jetpack Compose Toolkit for Android. By using Jetpack Compose you no nee

Jetpack Compose Desktop Galaxy Example
Jetpack Compose Desktop Galaxy Example

Compose-StarWars Compose-StarWar 3D Space particle System build using Canvas API Jetpack Compose Desktop 🚀 How to Run From gradle tab from right-hand

Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)
Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle events. ViewModel, UI and Screenshot tests included :)

AndroidMVIExample Example Jetpack Compose Android App, that uses the newest mechanisms, like StateFlow, SharedFlow, etc. to manage states and handle e

Comments
  • Crash on Tab switch?

    Crash on Tab switch?

    Running this on the latest canary build of Android studio just to check-out the project, with Nexus 5 API 27 emulator. Not sure why the crash happens, can anybody take a look?

    2020-05-09 11:02:02.060 4265-4265/com.mindorks.sample.whatsapp E/AndroidRuntime: FATAL EXCEPTION: main Process: com.mindorks.sample.whatsapp, PID: 4265 java.lang.IllegalStateException: LayoutCoordinate operations are only valid when isAttached is true at androidx.ui.core.LayoutNodeWrapper.localToRoot(LayoutNodeWrapper.kt:180) at androidx.ui.core.LayoutNodeWrapper.localToGlobal(LayoutNodeWrapper.kt:176) at androidx.ui.core.pointerinput.PointerInputFilter.getPosition$ui_platform_release(PointerInput.kt:100) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:333) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.Node.dispatchChanges(HitPathTracker.kt:339) at androidx.ui.core.pointerinput.NodeParent.dispatchChanges(HitPathTracker.kt:201) at androidx.ui.core.pointerinput.HitPathTracker.dispatchChanges(HitPathTracker.kt:102) at androidx.ui.core.pointerinput.HitPathTracker.dispatchChanges$default(HitPathTracker.kt:93) at androidx.ui.core.pointerinput.PointerInputEventProcessor.process(PointerInputEventProcessor.kt:77) at androidx.ui.core.AndroidComposeView.dispatchTouchEvent(AndroidOwner.kt:641) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at android.view.ViewGroup.dispatchTransformedTouchEvent(ViewGroup.java:2968) at android.view.ViewGroup.dispatchTouchEvent(ViewGroup.java:2657) at com.android.internal.policy.DecorView.superDispatchTouchEvent(DecorView.java:448) at com.android.internal.policy.PhoneWindow.superDispatchTouchEvent(PhoneWindow.java:1829) at android.app.Activity.dispatchTouchEvent(Activity.java:3307) at com.android.internal.policy.DecorView.dispatchTouchEvent(DecorView.java:410) at android.view.View.dispatchPointerEvent(View.java:12015) at android.view.ViewRootImpl$ViewPostImeInputStage.processPointerEvent(ViewRootImpl.java:4795) at android.view.ViewRootImpl$ViewPostImeInputStage.onProcess(ViewRootImpl.java:4609) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166) at android.view.ViewRootImpl$AsyncInputStage.forward(ViewRootImpl.java:4293) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174) at android.view.ViewRootImpl$AsyncInputStage.apply(ViewRootImpl.java:4350) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147) at android.view.ViewRootImpl$InputStage.onDeliverToNext(ViewRootImpl.java:4200) at android.view.ViewRootImpl$InputStage.forward(ViewRootImpl.java:4166) at android.view.ViewRootImpl$InputStage.apply(ViewRootImpl.java:4174) at android.view.ViewRootImpl$InputStage.deliver(ViewRootImpl.java:4147) at android.view.ViewRootImpl.deliverInputEvent(ViewRootImpl.java:6661) at android.view.ViewRootImpl.doProcessInputEvents(ViewRootImpl.java:6635) at android.view.ViewRootImpl.enqueueInputEvent(ViewRootImpl.java:6596) at android.view.ViewRootImpl$WindowInputEventReceiver.onInputEvent(ViewRootImpl.java:6764) at android.view.InputEventReceiver.dispatchInputEvent(InputEventReceiver.java:186) at android.view.InputEventReceiver.nativeConsumeBatchedInputEvents(Native Method) at android.view.InputEventReceiver.consumeBatchedInputEvents(InputEventReceiver.java:177) at android.view.ViewRootImpl.doConsumeBatchedInput(ViewRootImpl.java:6735)

    opened by goforbg 3
  • Added a status teacher

    Added a status teacher

    Dear Whatsapp clone, You are doing great service. I have added a new feature called status. Using this the user can run trains. Kindly review and merge this to your code.

    opened by Keerthianand2adhira 0
Owner
MindOrks
Learn Android App Development
MindOrks
A sample project in Kotlin to demonstrate Jetpack Compose, MVVM, Coroutines, Hilt, Room, Coil, Retrofit, Moshi, Leak Canary and Repository pattern

Jetpack-Compose-Boilerplate This repository contains a sample project in Kotlin to demonstrate Jetpack Compose, MVVM, Coroutines, Hilt, Room, Coil, Re

Areg Petrosyan 14 Dec 12, 2022
This repo is to demonstrate the jetpack compose 's canvas api's usage and creating an icon pack using the basic functions.

Jetpack Compose Canvas API Demo App We all know that Jetpack Compose has now reached the 1.0.0 release milestone. This is a huge change we can say for

vikas kumar 32 Dec 15, 2022
Build a StateFlow stream using Jetpack Compose

Molecule Build a StateFlow or Flow stream using Jetpack Compose1. fun CoroutineScope.launchCounter(): StateFlow<Int> = launchMolecule { val count by

Cash App 1.3k Dec 29, 2022
🔖 A Quotes Application built to Demonstrate the Jetpack Compose UI

?? A Quotes Application built to Demonstrate the Jetpack Compose UI

Sanju S 466 Dec 27, 2022
A simple path finding visualizer mobile app to demonstrate the use of Jetpack Compose UI toolkit in Android.

Path Finding Visualizer App using Jetpack Compose A simple path finding visualizer mobile app to demonstrate the use of Jetpack Compose UI toolkit in

Serge Nino Martin Villasica 33 May 6, 2022
Simple superhero lexicon app to demonstrate Jetpack Compose.

Superhero Lexicon ??‍♂️ Simple and Pretty Superhero App developed using Jetpack Compose UI Technologies Used ?? Kotlin - First class and official prog

Unaisul Hadi 22 Jan 5, 2023
ToDo-Task-App - An Android App built to demonstrate the use of Jetpack Compose, Material You, Room Database, and MVVM

ToDo Task App ToDo Task App is a sample Android app built with Jetpack Compose.

null 0 Jan 17, 2022
Taxi - an example of how to create an introductory screen using Jetpack Compose

Taxi - an example of how to create an introductory screen using Jetpack Compose

Dmitry Savin 1 Feb 25, 2022
Jetpack Compose Boids | Flocking Insect 🐜. bird or Fish simulation using Jetpack Compose Desktop 🚀, using Canvas API 🎨

?? ?? ?? Compose flocking Ants(boids) ?? ?? ?? Jetpack compose Boids | Flocking Insect. bird or Fish simulation using Jetpack Compose Desktop ?? , usi

Chetan Gupta 38 Sep 25, 2022
Jetpack-compose-uis - A collection of some UIs using Jetpack Compose. built using Katalog

Jetpack Compose UIs This is a collection of some UIs using Jetpack Compose. It i

Mori Atsushi 3 Dec 15, 2022