We have been using Xamarin for about 3 months now, after the first month we launched a range of cross platform apps, all based on the same theme of assistant apps for virtual assistants such as Alexa and Google Home.
Our next release is a game called Charades which is more graphical than our first app. We used a number of additional components to help make it more graphical and also to simplify integration onto Android and iOS.
In this article I'm going to list the components we use and why. Some of the components are free and some are paid for:
Forms9Patch - http://forms9patch.com
This is a paid for component, but well worth the money Forms 9 Patch enhances Xamarin Forms to make multi-resolution / multi-screen image management, custom fonts, and HTML text formatting easy for PCL and Shared Library apps for iOS and Android.
We use Forms9Patch for the 9 splice image buttons and also cross platform segment controls. Using the 9 splice image buttons allows us to use XAML mark up and have pixel perfect image buttons resized perfectly.
I found a bug in the library and also needed an extra feature, both of which where addressed within 24hours of emailing, Amazing support!
Newtonsoft.Json - http://www.newtonsoft.com/json
This is a free component from Newtonsoft and its a JSON library adds JSON support to Xamarin Forms for both iOS and Android.
We use Newtonsoft JSON for the game statistics, we used a Generics List to store the statistics, then used the JSON library to convert the objects to and from JSON. The JSON strings are then stored in the user settings and loaded/reloaded as the game starts and ends. Really simple to implement in only a few lines of code.
Xam.Plugin.Settings - https://github.com/jamesmontemagno/SettingsPlugin
The is a free library to give you cross platform access to the native User Settings by adding code to the PCL library and the component does all the integration for both iOS and Android.
We use this for saving all the game settings and the game statistics with by combining with the Newtonsoft JSON library. Really simple to get started and love the fact you just work in the PCL library.
Plugin.Share - https://github.com/jguertl/SharePlugin
This is a free library to give you cross platform access to the native Share Dialogs, you add the library and then have a common interface to the Share features on iOS and Android.
We use this for social sharing on the Game Over screen and incentivise the player by hiding some of the statistics behind a social share feature. The library allows you to restrict the types of shares available, so we remove things that are of no benefit to use (e.g. Add to Reading List and Copy To Clipboard).
AnimationNavPage - https://components.xamarin.com/view/customnavpage
The is a paid for library called Animation Navigation Page which is a library providing Custom animations between Pages, really simple to integrate it includes Seven base animations which you can then customise by controlling the bounce, speed and direction.
We use this for animating the transitions on the Navigation between pages, as we wanted something that looked bouncier and more game like than the build in animations.