Skip to content

This application is a chat application developed with Jetpack Compose. The application was built in accordance with mvvm architecture using firebase integrations and popular libraries such as room, hilt, kotlin-coroutines, datastore, paging3, retrofit.

License

Notifications You must be signed in to change notification settings

AhmetOcak/ChatApp

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Jetpack Compose - Chat App πŸ’¬πŸ’¬πŸ’¬

ic_launcher

The application is a Chat App developed using Jetpack Compose and follows a Modular architecture. To log into the app, users must create an account or sign in directly using a Google account. Authentication processes are handled through Firebase Auth. Users can update their profile picture or username, and if desired, delete their account. The app allows real-time messaging with individuals or creating group chats with friends for instant messaging. It supports text, PDF, image, and voice recording types. Within the app, you can also take photos using the built-in camera feature and share them. The notification feature is provided through Firebase Cloud Messaging. Even when you are not using the app, incoming messages are displayed to you via notifications.

This is the GitHub repository for the backend project used by the app.

Features

  • Authentication: Allows users to create an account or log in directly with a Google account using Firebase Authentication.
  • Profile Management: Users can update their profile picture or username and delete their account if desired.
  • Instant Messaging: The app enables real-time messaging with an individual or group chats with friends.
  • File Sharing: Supports text, PDF, image, and voice recording sharing.
  • Camera Integration: Users can take photos using the in-app camera and share them instantly.
  • Notifications: Receive real-time message notifications via Firebase Cloud Messaging, even when the app is not in use.

Tech Stack πŸ“š

Outputs πŸ–Ό

Dark Theme Light Theme
Login
Sign Up
Chats
Chat Box
Profile
Create Contact
Create Group
Settings

Modularization πŸ“¦

Name Responsibilities Key classes
app Brings everything together required for the app to function correctly. This module responsible for navigation. ChatApp, MainActivity
feature:1,
feature:2
...
Functionality associated with a specific feature or user journey. Typically contains UI components and ViewModels which read data from other modules.
Examples include:
  • feature:chats On the Chats screen you can view your friends, add friends or create groups.
ChatsScreen
ChatsViewModel
core:data Fetching app data from multiple sources and sends it to the UI through the core:domain module. ChatRepository
core:designsystem Design system which includes Core UI components (many of which are customized Material 3 components), app theme and icons. ChatAppModalBottomSheet ChatAppButton ChatAppTheme
core:ui Composite UI components and resources used by feature modules. Unlike the designsystem module, it is dependent on the data layer since it renders models. ChatItem
core:common Common classes shared between modules. UiText
Response
core:network Making network requests and handling responses from a remote data source. KtorChatApi MessagesRemoteDataSource
core:datastore Storing persistent data using DataStore. AppPreferencesDataSource
core:database Local database storage using Room. UserDatabase
Dao classes
core:model Model classes used throughout the app. User
UserChat
Message
core:domain It houses use cases. It serves as a bridge between the data layer's repositories and the UI. GetMessagesUseCase UpdateUserUseCase
core:authentication Manages user identity verification and access control. GoogleSignInClient FirebaseEmailPasswordClient

Architecture πŸ—

The app uses MVVM [Model-View-ViewModel] architecture to have a unidirectional flow of data, separation of concern, testability, and a lot more.

mvvm

About

This application is a chat application developed with Jetpack Compose. The application was built in accordance with mvvm architecture using firebase integrations and popular libraries such as room, hilt, kotlin-coroutines, datastore, paging3, retrofit.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages