MobCAT is a toolbox created by our team to highlight and support the application of best practices and good architectural patterns for Xamarin.Forms, Xamarin.Android, and Xamarin.iOS apps.
These projects can provide a foundation or light-weight starting point which can be built upon when adopted as part of your Xamarin solutions.
The projects themselves are .NET Standard portable projects. The intent is that the source is cloned/forked and incorporated into your solutions directly through project reference or via a private NuGet feed. Please refer to the Getting Started Guide for more information.
Please take a look at the sample projects to get a better understanding of their usage.
In this project, you can find foundational components that can be leveraged in both Xamarin.Forms and native Xamarin projects.
Core components:
See Foundational Components Overview for more information.
In addition to the core components above there are foundational components in support of common architectural patterns. These include:
The Model-View-ViewModel Pattern aids in decoupling the business and presentation logic of an application from its user interface. It encourages re-usable and extensible code that is easier to maintain, test, and evolve.
Useful files:
- AsyncCommand.cs
- BaseNotifyPropertyChanged.cs
- BaseViewModel.cs
- BaseNavigationViewModel.cs
- Command.cs
- VirtualCollection.cs
See MVVM Overview for more information.
The Repository Pattern is a well-documented way of working with a data source whereby the underlying storage mechanism is decoupled from the storage intent through an abstraction. This enables the centralization of storage related code making unit testing of business logic easier and driving greater code re-use across solutions.
The MobCAT library provides a basic foundation for this pattern through a common abstraction and a set of base classes along with implementations for popular frameworks such as sqlite-net and Entity Framework Core along with an in-memory implementation to aid in testing and prototyping.
See the Repository Pattern Overview for more information.
Useful files:
Walkthroughs:
- Repository Pattern with Entity Framework Core
- Repository Pattern with an InMemory Data Store
- Repository Pattern with sqlite-net
These demonstrate how to implement the Repository Pattern using the base classes provided by the MobCAT library
In this project you can find components, specific to Xamarin.Forms, to support cross-platform architecture, user inferface, and patterns such as MVVM.
Useful files:
See the MobCAT.Forms Overview for more information.