This repository contains the source code and resources for a real-time chat application developed for Android devices, following Clean Architecture principles and utilizing the MVVM (Model-View-ViewModel) architectural pattern.
The Space Chat is built to provide users with a robust, scalable, and maintainable messaging experience. It features:
- Real-Time Messaging: Seamless exchange of messages with friends.
- User Authentication: Secure login and user authentication process.
- User Profiles: Management and viewing of user profiles.
- Media Sharing: Capability to share images, videos, and documents within the chat.
The app is built using:
- Clean Architecture: Embraces the principles of Uncle Bob's Clean Architecture, separating concerns into distinct layers: Domain, Data, and Presentation.
- MVVM Pattern: Utilizes the Model-View-ViewModel pattern to separate the UI, business logic, and data, ensuring a more maintainable and testable codebase.
The app includes several features:
- User Authentication: Integrates Firebase Authentication for secure login and registration.
- Real-Time Database: Firebase Realtime Database integration for instant message updates.
- Material Design: Follows Android's Material Design guidelines for an intuitive and user-friendly interface.
- Push Notifications: Integration with Firebase Cloud Messaging for push notifications.
- Media Sharing: Enables users to share various media files within the chat interface.
Splash Screen | SigIn Screen | SignUp Screen | SignUp Screen |
User Select | Chat Screen | ||
To run this application locally:
- Clone this repository:
git clone https://github.com/SajidEqubal/SpaceChat.git
- Open the project in Android Studio.
- Set up Firebase project and add
google-services.json
file to the project. - Build and run the application on an Android device or emulator.
The app is built using:
- Java: Core programming language for Android app development.
- Firebase: Backend services including Authentication, Realtime Database, and Cloud Messaging.
- Android Studio: IDE used for Android application development.
The project structure follows the principles of Clean Architecture:
- Domain Layer: Contains business logic and use cases.
- Data Layer: Manages data sources and repositories.
- Presentation Layer: Includes the UI components, ViewModels, and interaction with the domain layer.
This project is licensed under the MIT License.
Special thanks to Firebase for their powerful suite of tools. This project was inspired by the need for a user-friendly and efficient messaging app for Android users.