If you don't know what Xamarin is, may I suggest that you start by reading my introductory notes before proceeding with this?
For those in the now, let's get into it without further ado:
Xamarin.Forms is a cross-platform UI toolkit that allows developers to easily create native user interface layouts that can be shared across Android, iOS, and Windows Phone. You can build native UIs for iOS, Android and Windows from a single, shared C# codebase.This means that applications can share a large portion of their user interface code and still retain the native look and feel of the target platform.
Xamarin.Forms allows for rapid prototyping of applications that can evolve over time to complex applications. Because Xamarin.Forms applications are native applications, they don't have the limitations of other toolkits such as browser sandboxing, limited APIs, or poor performance. Applications written using Xamarin.Forms are able to utilize any of the API’s or features of the underlying platform, such as (but not limited to) CoreMotion, PassKit, and StoreKit on iOS; NFC and Google Play Services on Android; and Tiles on Windows. In addition, it's possible to create applications that will have parts of their user interface created with Xamarin.Forms while other parts are created using the native UI toolkit.
Xamarin.Forms user interfaces are rendered using the native controls of the target platform, allowing Xamarin.Forms applications to retain the appropriate look and feel for each platform. Custom Renderers let developers override this process to customize the appearance and behavior of Xamarin.Forms controls on each platform.
Custom renderers provide a powerful approach for customizing the appearance and behavior of Xamarin.Forms controls. They can be used for small styling changes or sophisticated platform-specific layout and behavior customization. This article provides an introduction to custom renderers, and outlines the process for creating a custom renderer. Xamarin.Forms Pages, Layouts and Controls present a common API to describe cross-platform mobile user interfaces. Each page, layout, and control is rendered differently on each platform, using a Renderer class that in turn creates a native control (corresponding to the Xamarin.Forms representation), arranges it on the screen, and adds the behavior specified in the shared code.
Most applications have some requirement to save data on the device locally. Unless the amount of data is trivially small, this usually requires a database and a data layer in the application to manage database access.
SQLite is an in-process library that implements a self-contained, serverless, zero-configuration, transactional SQL database engine. The code for SQLite is in the public domain and is thus free for use for any purpose, commercial or private. SQLite is the most widely deployed database in the world with more applications than we can count, including several high-profile projects.
iOS and Android both have the SQLite database engine "built in" and access to store and retrieve data is simplified by Xamarin’s platform.
ACR User Dialogs
A cross platform library that allows you to call for standard user dialogs from a shared/portable library : Actionsheets, alerts, confirmations, loading, login, progress, prompt, etc.
Xamarin Forms Labs is a open source project that aims to provide a powerful and cross platform set of controls and helpers tailored to work with Xamarin Forms : AutoCompleteView, Calendar Control, ImageButton, HyperLinkLabel, etc.
A Xamarin.Forms debugging tool and UI inspector. If you’ve ever made a web site, it’s similar to Microsoft’s F12 tools or Chrome Developer Tools. You can use it to efficiently track down layout issues, prototype a new design, and remotely control a device.
GenyMotion Android Emulator
Fast and easy Android emulator. The most powerful Android emulator for app developers and testers. It's available for free or premium on Windows, Mac and Linux.
Remoted iOS Simulator
To test and debug iOS apps within Visual Studio on Windows. Most modern Windows computers have touch screens, and the remote iOS simulator lets you touch the simulator window to test user interactions in your iOS app. This includes pinching, swiping, and multiple-finger touch gestures - things that previously could only be easily tested on physical devices.