This is sample mutual funds application developed following modern - clean architecture pattern and best practice such as SOLID principle, separation of concern, loose coupling, etc.
- View list of Mutual Funds available in India fetched from api.
- Search for Mutual funds from the list.
- Get a overview information about the individual mutual fund.
- Fund category.
- Fund Type.
- Fund House, etc
- View the individual mutual fund 2 years performance(2006-2008 data) graph.
Clean architecture pattern has been used in the development of this application. The development language of the application is Kotlin.
Below is an illustration of clean architecture:
- Architecture;
This project uses many of the popular libraries, plugins and tools of the android ecosystem. Some of Important one are listed below:
-
Coroutines - Library Support for coroutines.
-
Flow - Flows are built on top of coroutines and can provide multiple values.
-
Coroutines - Library Support for coroutines,provides runBlocking coroutine builder used in tests.
-
Madrapps - Library for building line graph
-
- Material - Build Jetpack Compose UIs with ready to use Material Design Components.
- UI - Fundamental components of compose UI needed to interact with the device, including layout, drawing, and input.
- Lifecycle-ViewModel - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
-
- Lifecycle - Perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- ViewModel - Designed to store and manage UI-related data in a lifecycle conscious way. The ViewModel class allows data to survive configuration changes such as screen rotations.
The project can be improved further by adopting the Kotlin Multi-Module concept. This approach allows us to divide the project into multiple modules, each with its own set of responsibilities. This has several benefits:
- Separation of Concerns: Each module focuses on a single aspect of the application, making the codebase easier to understand and maintain.
- Faster Build Times: Changes in one module do not require other modules to be recompiled, resulting in faster build times.
- Reusability: Common functionality can be extracted into a shared module and reused across multiple modules.
- Improved Testing: Modules can be tested independently, making it easier to identify and fix bugs.
To implement this, we can start by identifying logical divisions in the application (such as data, domain, and presentation layers in Clean Architecture) and create a separate module for each.
- Android Studio
Bumblebee (2021.1.1)version. - Android Studio's Gradle JDK version should be Java 11.0.10.
Designed and developed by ruship125 (Rushikesh Pawar).



