#VervetaCRM Demo (Xamarin.Forms)
VervetaCRM is a demo mobile CRM app for salespeople at a fictional office-supply company (named after the vervet monkey). The app lets salespeople track their sales performance, see their contacts, view customer location maps, and capture orders with user signatures.
Using Xamarin.Forms, over 90% code was re-used to create a native app for iOS, Android, and Windows Phone.
This video overview provides an overview of how the app was created and architected.
##Installation Instructions for viewing and compiling the code are available in the setup guide.
#Featured Technologies The demo app utilizes several technologies and frameworks to reflect a real-world mobile app architecture and maximum code re-use across mobile platforms:
##Xamarin.Forms MVVM Architecture: The app utilizes the MVVM architecture, using examples of both C# and XAML to define user views.
Custom Renderers: enable writing platform-specific (e.g. - iOS, Android) user interface code to take advantage of native OS UI capabilities.
Dependency Service: access native hardware features of the device such as phone and GPS.
##Components & Libraries
Signature Pad: Available from the Xamarin Component Store to capture and display user signatures. This component highlights Xamarin.Forms extensibility; using custom renderers, it was easy to consume the platform-specific signature pad components into the Xamarin.Forms shared UI code.
OxyPlot: An outstanding, open-source .NET-based plotting and charting library available as a Portable Class Library (PCL) via NuGet.
##Cloud & Mobile Architecture
Azure Mobile Services: The app uses Azure Mobile Services (AMS) as the cloud backend for authentication and data. It integrates with Azure Active Directory to create a consistent sign-on experience for mobile users. The AMS component simplifies the implementation and uses oAuth to both authenticate a user and provide a token.
Data is synchronized with an Azure SQL cloud database and a SQLite database that runs on the device – providing fast, offline data access and a consistent data access API.
#License
The source code for this project is open-source under an MIT license.
#Authors
Steven Yi, James Montemagno, Glenn Wester