public final ObservableField<String> phone; // Outputs public final ReadOnlyField<String> emailError; public final ReadOnlyField<String> phoneError; public final ReadOnlyField<Boolean> loginEnabled; public class LoginState { // Inputs public final ObservableField<String> email; public final ObservableField<String> phone; // Outputs public final ReadOnlyField<String> emailError; public final ReadOnlyField<String> phoneError; public final ReadOnlyField<Boolean> loginEnabled; Solution Preview
public final ObservableField<String> phone; // Outputs public final ReadOnlyField<String> emailError; public final ReadOnlyField<String> phoneError; public final ReadOnlyField<Boolean> loginEnabled; Solution Preview Input, Output Fields
will remain same for console app • State of the view • eg: Boolean field for whether button is enabled • Presentation Logic • eg: Button should be disabled when email is invalid
will remain same for console app • State of the view • eg: Boolean field for whether button is enabled • Presentation Logic • eg: Button should be disabled when email is invalid • Observes for changes in VM and updates itself • Push values in VM when user inputs