> For the complete documentation index, see [llms.txt](https://functionzero.gitbook.io/docs/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://functionzero.gitbook.io/docs/libraries/maui.mvvmzero/overview.md).

# Overview

A high-level overview of Maui.MvvmZero

MvvmZero is intended to be used for ViewModel based navigation. Views (Pages) are fully decoupled and can even be swapped at runtime, e.g. between a Portrait and Landscape View.

Can be used seamlessly with additional libraries such as `FunctionZero.CommandZero` (never write an 'IsBusy' flag again), FunctionZero.zBind (never write a ValueConverter again), FunctionZero.Maui.Controls and AnimationZero.

* Naming conventions are encouraged but not enforced, so you can use your own, or none at all.
* Useful base classes are provided for your ViewModels, but they are not required or enforced.
* ViewModels can be associated with different Views for Portrait, Landscape, Phone, Tablet, Desktop, as well as customised for the current user, e.g. Administrator, Field worker, sales etc.
* Navigation by ViewModel is recommended and has first-class support.
* Page navigation is also supported, as is mix and match MAUI navigation and MvvmZero page or ViewModel navigation without things breaking!
* Special support for Flyout and derivatives.
* Special support for IMultiPage (e.g. TabbedPage) and derivatives.
* ViewModel initialisation is typesafe, optional, and asynchronous if you want it to be.
