Xamarin.Forms Application Fundamentals


Tips to incorporate accessible features (like supporting screen-reading tools) with Xamarin.Forms.

App Class

The Application class is the starting point for Xamarin.Forms – every app needs to implement a subclass App to set the initial page. It also provides the Properties collection for simple data storage. It can be defined in either C# or XAML.

App Lifecycle

The Application class OnStart, OnSleep, and OnResume methods, as well as modal navigation events, let you handle application lifecycle events with custom code.

Application Indexing and Deep Linking

Application indexing allows applications that would otherwise be forgotten after a few uses to stay relevant by appearing in search results. Deep linking allows applications to respond to a search result that contains application data, typically by navigating to a page referenced from a deep link.


User interface controls can be easily extended without subclassing by using behaviors to add functionality.

Custom Renderers

Custom Renders let developers 'override' the default rendering of Xamarin.Forms controls to customize their appearance and behavior on each platform (using native SDKs if desired).

Data Binding

Data binding links the properties of two objects, allowing changes in one property to be automatically reflected in the other property. Data binding is an integral part of the Model-View-ViewModel (MVVM) application architecture.

Dependency Service

The DependencyService provides a simple locator so that you can code to interfaces in your shared code and provide platform-specific implementations that are automatically resolved, making it easy to reference platform-specific functionality in Xamarin.Forms.


Effects allow the native controls on each platform to be customized, and are typically used for small styling changes.


The Xamarin.Forms GestureRecognizer class supports tap, pinch, and pan gestures on user interface controls.


The built-in .NET localization framework can be used to build cross-platform multilingual applications with Xamarin.Forms.

Messaging Center

Xamarin.Forms MessagingCenter enables view models and other components to communicate with without having to know anything about each other besides a simple Message contract.

Xamarin.Forms provides a number of different page navigation experiences, depending upon the Page type being used.


Xamarin.Forms Shell reduces the complexity of mobile application development by providing the fundamental features that most mobile applications require. This includes a common navigation user experience, a URI-based navigation scheme, and an integrated search handler.


Control templates provide the ability to easily theme and re-theme application pages at runtime, while data templates provide the ability to define the presentation of data on supported controls.


Update controls by responding to property changes and events in XAML.