The app is developed on Kotlin following the latest MVVM architecture.
- Splash screen with beautiful OpenInApp animation using lottie.
- Custom Bottom navigation with dummy tabs and a floating action button.
- Kotlin Coroutines for asynchronous tasks.
- Retrofit for api calling.
- Modularization for better code management.
- Dependency injection using Hilt.
- Chart using MPAndroidChart.
- Api test using JUnit.
- Exact UI matching with the given design.Link
- Use of Kotlin Extensions and Wrapper classes along with Kotlin Reflection.
Available at demo.mp4 in the root directory of this repository.
demo.mp4
- Kotlin
- Kotlin Coroutines
- Retrofit
- Hilt
- MPAndroidChart
- Lottie
- View Binding
- Kotlin Extensions
- Kotlin Reflection
- JUnit
- CircleImageView
- Pluto
- Material Components
The project is divided into 2 modules:
- app - Contains the main code of the application. This is the module that will be installed on the device.
- api - Contains the code for Api handling. This module is pure Kotlin module.
- Clone the repository.
- Open the project in Android Studio.
- Build the project/APK in release/debug mode.
- Install the APK on your device.
- Run the app.
- Enjoy the design and code.
- The api used does not provide the user's name. So, I have used the Company name (Open In App) as the name of the user.
- The api used does not provide exact chart data as shown in the design. So, there is a slight difference in the chart design.
- The api used doesn't provide top source and top location parameters in the response. So, I have declared those fields as N/A.
- The api used doesn't provide the thumbnails for links data. So, I have used the default thumbnail for all the links.