Add parameterized ViewModel injection via factories #9
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR's key points
The PR adds support for injecting
ViewModelfactories and for retrievingViewModels via previously declared factories. This will ease parameterizedViewModels delivery and remove some boilerplate that we use when configuring theViewModels in production code.The added code relies in a new
TypedViewModelthat enforces passing a singleparamsvalue to ensure type safety in the injection functions.I couldn't think of a better idea to do this, so if you have any other ideas (the ideal thing would be to ensure type safety while also not forcing to extend another class) feel free to propose them 😉
The final idea would be:
ViewModelwith parameters.ViewModelProvider.Factorythat creates saidViewModel. Since the code wouldn't be especially complex, we can use something like https://github.com/radutopor/ViewModelFactory to auto-generate said factories and save some boilerplate.ViewModelProvider.FactorywithbindViewModelFactoryViewModelinstance with parameters usingby viewModel(parameters)