Home Screen Dependency Graph I like to draw out what objects depend on each other in order for each screen to make my code as decoupled, reusable, and scalable as possible.
CODE SNIPPETS
Dependency Injection Using Factories Instead of having objects create their own dependencies, everything an object needs in order to do its work should be passed in from the outside. This both makes it easier to see what exact dependencies an object has, and it also makes testing a lot simpler.
Search View It is better to abstract and hide unnecessary details. Here all the view knows is that it needs a SearchViewModel. So the view only needs to focus on the view components the rest of the logic details are handeled by the SearchViewModel.
Search View Model Here because other ViewModels will need to depend on the alerts manager and game service these classes will be created outside of the searchViewModel scope. This allows those classes to be injected and reused in other viewmodels!