Skip to content
This repository was archived by the owner on Nov 24, 2022. It is now read-only.

Libraries

José Pereira edited this page Apr 14, 2020 · 8 revisions

Libraries

Includes base classes for views and view models, and some features and accelerators for more common usage in apps.

MvxExtensions

  • Attributes
    • DependsOnAttribute.cs: Allows the configuration of properties and/or methods to react on PropertyChangeEvent of a specific property
    • PropagateCollectionChangeAttribute.cs: Allows to configure a property (of type ObservableCollection) to fire the PropertyChangeEvent when a its CollectionChangedEvent occurs
    • SingletonViewModelAttribute.cs: Used with the SingletonViewModelLocator, enables to mark a viewmodel to be registered as singleton
    • StringValueAttribute.cs: Simple attribute class for storing string Values
  • Converters
    • InverseBoolConverter.cs: Converter for boolean inversion
  • Extensions Set of methods to accelerate the usage of common functionalities
  • Models
    • DependencyInfo.cs: Representation of an dependency injected by the use of the DependsOnAttribute
    • LocalizableModel.cs: Wrapper for the Model with support for localized text resources
    • LongRunnigNotificationSaveBundle.cs: Bundle used to persist long running subscriptions
    • LongRunningSubscriptionToken.cs: Subscription token for long running subscriptions (longer lifecycle)
    • Model.cs: Wrapper for the MvxNotifyPropertyChanged with the implementation of IDisposable
    • TupleKeyValue.cs: Wrapper of the Tupple class, configured to have a key and a value
  • Platforms Platform specific implementation. See next topics for more info.
  • Statics
    • NavigationModes.cs: Identifiers used for the navigation extensions that provide ClearStack and RemoveSelf
  • ViewModels
    • SingletonViewModelLocator.cs: Implementation of the viewmodel locator that supports the usage of the SingletonViewModelAttribute
    • ViewModel.cs: Base class to be inherited by viewmodels. It contains several base implementations that allow to normalize behaviour across the app. It handles PropertyChanged notifications propagation (see: PropertyChanged Event Propagation). It provides notification subscription and management and also gives access to resource localization.
  • Application.cs: Inherits from MvxApplication and configures the app to use the SingletonViewModelLocator

Platforms

Droid

  • Components: Base folder where custom Bindings, Targets and Controls can be found
    • Binding: Binding registration related classes
    • Controls: Home of custom controls
      • DecimalEditText: Control that handles decimal values
      • NumericEditText: Control that handles integer values
    • Targets: Several targets for base and custom controls
  • Extensions
    • WeakSubscriptionExtensions.cs: Enables weak subscriptions of events. Will be improved by new event subscriptions that are identified as useful to have here.
  • Presenters
    • AndroidViewPresenter.cs: Inherits from MvxAndroidPresenter and provides the implementation for the ClearStack and RemoveSelf navigation modes. Used by default in the AndroidSetup.cs
  • Resources: Contains several resources used in the controls
  • Setup
    • AndroidSetup.cs: Inherits from MvxAndroidSetup, and it registers the custom targets and controls
  • Views
    • ActivityBase.cs: Inherits from MvxApplication and provides out of the box behaviour control implementation for the common functionalities provided in the viewmodel base class, including handling of generic message subscription, and also prompt messages. It also provides notification management and context options management.
    • DialogCancelListener.cs: Cancel listener used in the prompt dialogues

iOS

  • Components: Base folder where custom Bindings, Targets and Controls can be found
    • Binding: Binding registration related classes
    • Controls: Home of custom controls
      • LoadingOverlay: Default implementation for a loading indicator the cover the whole view and prevents the user from interacting with any control in the view
    • Interfaces: Generic interfaces to be used in controls
  • Presenters
    • iOSViewPresenter.cs: Inherits from MvxIosViewPresenter and provides the implementation for the ClearStack and RemoveSelf navigation modes. Used by default in the iOSSetup.cs
  • Setup
    • iOSSetup.cs: Inherits from MvxIosSetup, and it registers the custom presenter
  • Views
    • TableViewControllerBase.cs: Inherits from MvxTableViewController and provides out of the box behaviour control implementation for the common functionalities provided in the viewmodel base class, including handling of generic message subscription, and also prompt messages. It also provides notification management and context options management.
    • ViewControllerBase.cs: Inherits from MvxViewController and provides out of the box behaviour control implementation for the common functionalities provided in the viewmodel base class, including handling of generic message subscription, and also prompt messages. It also provides notification management and context options management.
  • ApplicationDelegate.cs: Inherits from MvxApplicationDelegate and provides an application entry point, using the iOSSetup and base setup class

MvxExtensions.Droid.Support

  • V7
    • Presenters
      • AndroidAppCompatViewPresenter.cs: Inherits from MvxAppCompatViewPresenter and provides the implementation for the ClearStack and RemoveSelf navigation modes. Used by default in the AndroidAppCompatSetup.cs
    • Setup
      • AndroidAppCompatSetup.cs: Inherits from MvxAppCompatSetup, and registers the custom targets and controls
    • Views
      • AppCompatActivityBase.cs: Inherits from AppCompatActivityBase and provides out of the box behaviour control implementation for the common funcionalities provided in the viewmodel base class, including handling of generic message subscription, and also promp messages. It also provides notification managment and context options management.
    • AppCompatApplication.cs: Inherits from AppCompatApplication and enables the usage of an AndroidAppCompatSetup

MvxExtensions.Forms

  • Converters Contains a Forms wrapper for the converters available in the base classes.
  • Views
    • ContentPage Inherits from MvxContentPage and provides out of the box behaviour control implementation for the common functionalities provided in the viewmodel base class, including handling of generic message subscription, and also prompt messages. It also provides notification management and context options management.

Clone this wiki locally