gahfy / mvvmposts Goto Github PK
View Code? Open in Web Editor NEWSample application with MVVM architecture
Sample application with MVVM architecture
Hi,
I copied the code you wrote hoping that it would be a good start for me to write good Android applications applying the Android Architecture Components and two of the most used libraries, Dagger and Retrofit, and I am confident your way is a good way because by what I could see from Google's sample codes, they're similar but simpler. I know there isn't a correct way but more efficient ways, and that is why I write this issue hoping you or someone else can help me, and probably other people, with this problem.
While inspecting what I have copied, it came into my mind about a way to refactor certain parts of the code to adapt it to several different view models. Let's start with the ViewModelInjector.kt class. The inject
method expects a PostListViewModel as an argument, and then, this same method is initiated in BaseViewModel.kt, a class that will probably be extended by many other view model classes.
I wanted to try to refactor it and make it more generic and accept a T
type as a parameter, but none of what I did help. I no longer have my attempts either. Because the way it is now, the way to support many different view model classes is if I write something like this in ViewModelInjector.kt
:
fun injectFoo(fooViewModel: FooViewModel)
fun injectBar(barViewModel: BarViewModel)
...
and then, in the BaseViewModel.kt
, do it like this:
init {
injectFoo()
injectBar()
}
private fun inject() {
when (this) {
is FooViewModel -> injector.injectFoo(this)
is BarViewModel -> injector.injectBar(this)
}
}
I'm sure there is a way to fix this and write it in a way that is better, is there not?
I hope someone can help me with this! Thank you.
i got some error at BindingAdapter, my view doesn't detect the getParentActivity
and i already rebuild my project
any idea?
hi, i try your example , but i can't find DaggerViewModelInjector
how to get this code?
I don't find DaggerViewModelInjector class from injection/component package.
unresolved reference error for "ActivityPostListBinding"
I saw some tutorial/example where Coroutine is used instead of RxJava and/or RxAndroid.
Do you think it could improve the code and make it easier to read and/or implement ?
Reporting one issue while following and implementing your code.
Under package net.gahfy.mvvmposts.base
Class BaseViewModel
Unresolved Item DaggerViewModelInjector
In the code mentioned as net.gahfy.mvvmposts.injection.component.DaggerViewModelInjector
So please let us know if its class or interface.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.