The project follows a multimodule architecture with the following modules:
- Core Module: Contains common UI components and utilities that can be shared across different modules.
- Main Module: Contains feature-specific implementations and functionalities.
- Code Style: The code in this repository adheres to the ktlint code style.
- Code Scanning: The project includes code scanning with ktlint & Android Code Inspector to ensure consistent code formatting and style.
- Continuous Integration: The project is integrated with CircleCI for automated build, testing, and code quality checks.
-
Dynamic Dark Mode UI: The project supports dynamic dark mode UI for mobile and tablet devices. It adjusts the app's theme based on the system's dark mode setting, providing a consistent user experience across different lighting conditions.
-
Responsive Design: The UI is optimized for different device orientations, including vertical and horizontal layouts. It ensures a seamless user interface regardless of the device's orientation.
This repository contains an Android project that demonstrates the usage of various libraries in Android app development. The project is written in Kotlin and showcases different functionalities and integrations using these libraries.
The project utilizes the following libraries:
-
Core Libraries
- AndroidX Core-KTX: Provides core utilities and extensions for AndroidX libraries.
-
Jetpack Compose
- Compose UI: A modern toolkit for building native Android UI.
- Compose Graphics: Provides graphics and animation capabilities for Compose UI.
- Compose Tooling Preview: Tooling support for Compose UI development.
- Material3: Material Design components and theming for Compose UI.
- Activity Compose: Integration of Compose UI with the Android activity lifecycle.
-
Dependency Injection
- Dagger Hilt: A compile-time dependency injection framework for Android.
-
Networking
-
JSON Deserialization
- Moshi: A modern JSON library for Kotlin and Java.
-
Image Loading
- Coil: An image loading library for Android apps.
-
Navigation
- Android Navigation Component: A component that helps with navigation and deep linking in Android apps.
-
Memory Leak Detection
- LeakCanary: A memory leak detection library for Android.
-
Splash Screen
- Core Splash Screen: Provides a simplified way to create splash screens.
-
Coroutines
- Kotlin Coroutines: Asynchronous programming library for Kotlin.
-
Paging
- AndroidX Paging: Helps with paginated data loading in RecyclerViews.
-
Testing
- MockK: A mocking library for Kotlin.
- AndroidX Test: Provides testing support for Android apps.
- JUnit Jupiter: A programming model and testing framework for Java applications.
- Arch Core Testing: Provides testing utilities for Android Architecture Components.
-
Room
- AndroidX Room: Provides an abstraction layer over SQLite for database operations.
Mobile | Tablet |
---|---|
![]() |
![]() |
To get started with the project, follow these steps:
- Clone the repository to your local machine.
- Open the project in Android Studio.
- Build and run the project on your Android device or emulator.
Download APK directly from Here
Download Zip directly from Here
Unit Tests
UI Tests
The project is licensed under the MIT License.