A simple chat application built using Jetpack Compose, Clean Architecture, StateFlow, Coroutines, and MVVM.
presentation/ ChatViewModel ChatScreen
domain/ SendMessageUseCase ChatRepository (interface)
data/ ChatRepositoryImpl
The project follows Clean Architecture with 3 layers:
- Presentation (ViewModel, UI - Compose)
- Domain (Model, UseCases, Repository interface)
- Data (Repository implementation)
- Kotlin
- Jetpack Compose
- Coroutines
- StateFlow (Used as it is lifecycle agnostic)
- Hilt (Dependency Injection)
- JUnit & Mockito (Testing)
- Clone the repository
- Open in Android Studio Hedgehog or newer
- Sync Gradle
- Run on emulator or physical device (API 24+)
To run unit tests:
- Right click test package → Run Tests
- Send messages
- Auto reply simulation after 5 second
- Auto-scroll Chat view
- Unit tests for Presentation, UseCase & Repository
- Edge cases not handled
- Testing coverage
- TBD
Bhagyashri Patil
This project is open-source and available under the MIT License.
