📚 Android Application named Spliwisely and inspired by SplitWise, written in Kotlin, following best practices using Jetpack.
Android Components Architecture in a Modular Word is a sample project that presents a list of NFT, for development using Kotlin and the latest tech stack.
Groups | Activity | Friends |
---|---|---|
The architecture of the application is based, applied, and strictly complies with each of the following 5 points:
- A single-activity architecture, using the Navigation component to manage fragment operations.
- Android architecture components, part of Android Jetpack for give to project a robust design, testable and maintainable.
- Pattern Model-View-ViewModel (MVVM) facilitating a separation of development of the graphical user interface.
- S.O.L.I.D design principles intended to make software designs more understandable, flexible and maintainable.
- Modular app architecture allows to be developed features in isolation, independently from other features.
This project takes advantage of many popular libraries, plugins, and tools of the Android ecosystem.
- Jetpack:
- Android KTX - Provide concise, idiomatic Kotlin to Jetpack and Android platform APIs.
- AndroidX - major improvement to the original Android Support Library, which is no longer maintained.
- Lifecycle - perform actions in response to a change in the lifecycle status of another component, such as activities and fragments.
- LiveData - lifecycle-aware, meaning it respects the lifecycle of other app components, such as activities, fragments, or services.
- 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.
- Coroutines - managing background threads with simplified code and reducing the need for callbacks.
- Dagger2 - dependency injector for replacement of all FactoryFactory classes.
- Retrofit - type-safe HTTP client.
The data is received remotely from the server and then displayed in the application (Not Implemented yet).
#SERVER
BASE_URL = "/"
Routes = ["", ""]
Avoid reinventing the wheel by following these guidelines:
Mohammad Javad Alijani