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

Libraries

Jose Pereira edited this page Aug 24, 2020 · 8 revisions

Libraries

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

MvxExtensions.Core

Intended to provide some of the MvxExtensions functionalities, with a reduced footprint of dependencies, meaning that this package does not depend on any other MvxExtensions package.

  • Extensions: Set of methods to accelerate the usage of common functionalities
  • ViewModels
    • CoreViewModel.cs: Contains several core implementations including:
      • PropertyChanged notifications propagation handling (see: PropertyChanged Event Propagation)
      • Base async execution of code, with IsBusy context, using DoWorkAsync or DoWorkAsync<T>
    • CoreViewModel.Param.cs: Variant that allows to send an input parameter to the viewmodel, following IMvxViewModel<TParameter> implementation
    • CoreViewModel.ResultAndParam: Variant that allows to send an input parameter to the viewmodel and send back a result after completion, following IMvxViewModel<TParameter, TResult> implementation
    • CoreViewModelResult.cs: Helper class for the CoreViewModel.ResultAndParam implementation

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
    • ViewModel.cs: Inherits from MvxEntesions.Core.ViewModels.CoreViewModel and provides some extra features allow behaviour normalization across the application, including:
      • Notification management (Subscription, Publish, Delayed Message Handling, Base massage behaviour)
      • Text resources localization
    • ViewModel.Param.cs: Variant that allows to send an input parameter to the viewmodel, following IMvxViewModel<TParameter> implementation
    • ViewModel.ResultAndParam: Variant that allows to send an input parameter to the viewmodel and send back a result after completion, following IMvxViewModel<TParameter, TResult> implementation
    • ViewModelResult.cs: Helper class for the ViewModel.ResultAndParam implementation
  • 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
    • AndroidApplication.cs: MvxExtensions own implementation of MvxAndroidApplication that provides base support for AndroidSetup and custom controls present in MvxExtensions

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