`UIController` has various problems: - It's hard to add new views, and how to do this isn't well documented - It's not very flexible (a fixed set of triggers to move from state to state) - Even the Login view hacks around this internally - It mixes view and view model concerns so is hard to test - Relies on passing a **global** `IConnection` to get the connection from the `UIController` to view models - Adding views involves adding entries to a long enum (`UIViewType`) - `GitHubPaneViewModel` has to be implemented in `Views` - #1105 When used in the GitHub pane there's no differentiation between load and refresh MVVM is the accepted solution for such things, we should rip out `UIController` and replace it with a more standard architecture.
UIControllerhas various problems:IConnectionto get the connection from theUIControllerto view modelsUIViewType)GitHubPaneViewModelhas to be implemented inViewsMVVM is the accepted solution for such things, we should rip out
UIControllerand replace it with a more standard architecture.