// the find
janishar/android-kotlin-mvp-architecture
This repository contains a detailed sample app that implements MVP architecture in Kotlin using Dagger2, Room, RxJava2, FastAndroidNetworking and PlaceholderView
A sample Android app that implements MVP in Kotlin, using Dagger2 for injection, Room for local storage, RxJava2 for async work, FastAndroidNetworking for HTTP and PlaceHolderView for lists. It suits developers who want to see how view, presenter and interactor layers fit together in a full app, not a toy example. The README marks the project deprecated and points to a newer app, so treat it as a historical reference.
The ui package splits each feature into view, presenter and interactor, and base classes for activity, fragment, presenter and interactor sit underneath them, so the layering shows up in the code and not only in the diagram. Each screen gets its own Dagger module and provider, such as BlogFragmentModule and LoginActivityModule, which makes per-screen injection easy to follow. The data package keeps Room DAOs, repositories and the ApiHelper and AppApiHelper pair apart from the UI, which marks a clear seam for swapping the network layer.
The README says the project is deprecated, and the last push was January 2024, so the stack is already behind. RxJava2 is two major versions back from RxJava3, coroutines and Flow are the default in new Kotlin code, and Hilt now wraps Dagger for most apps. FastAndroidNetworking is a niche choice where Retrofit is the norm. Testing is thin: the test tree holds only ExampleUnitTest.kt and ExampleInstrumentedTest.kt, so the presenters and interactors have little coverage. The interface and module boilerplate per screen is the price of this structure, and a ViewModel-based design avoids most of it.