As of the writing of this, there are two smartphone and tablet platforms that dominate: Apple's iOS (run on iPhone and iPad products) and Google's Android. Each platform has its differences with respect to application development.
iOS applications are written in Objective-C, or Swift, and Android applications are written in Java. This often requires two development teams for many businesses. Wouldn't one language for both platforms be better? (C++ is not nearly as productive as newer languages.)
Xamarin.Forms is for C# programmers and allows for the writing of shared user-interface code in C# and XAML (eXtensible Application Markup Language) that compiles into native code for mobile devices like iOS and Android.
Xamarin.Forms supports one more platform: Windows/Windows Phone. However, this platform is not widely used. The number of apps available to this platform are anemic at best making it an incredibly unpopular choice for new smartphone shoppers. And developers have not really caught on to developing for the Universal Windows Platform.