The evolution of Xamarin into Xamarin Forms - PeterBurke/MvvmCross-Forms GitHub Wiki
Originally Xamarin cross platform development had three target platforms:
- iOS,
- Android,
- Windows Phone (Silverlight).
A solution contained four projects:
- A portable class library (PCL),
- iOS target,
- Android target,
- Windows Phone target.
With reference to the Model View Controller pattern, the PCL contained "Model" and "Controller" coding that was common to all platforms and accounted for about 80% of the coding for each platform. This still left 20% of the coding on each platform that was related to the "View" and also to platform specific adaptations.
When it came to coding the View on each platform, each had its own set of visual elements and own design tools like Xcode for iOS. So all told, in order to build for all three platforms, we had to repeat 20% three times so in fact for a break down of coding effort we had:
- coding of the PCL 57%
- coding the View 43%
With new targets like Windows 8.1 Tablet and Windows 10 Universal plus different presentations for small and large screens, the percentage of effort required to write the view increases to more than 60%.
So many shops preferred alternatives to Xamarin such as Apache Cordova.
Enter Xamarin Forms
Xamarin Forms was introduced in Xamarin 3 on May 28, 2014. It is based on the Model View ViewModel pattern, where the each View has a two way binding to a ViewModel. When you update the View on screen, the ViewModel is automatically updated and vice versa. Xamarin Forms came with its own set of visual elements (mostly mapped to the equivalent in the native platform) so it became possible to write the View just once and have it work on all targets. With this innovation the amount of platform specific coding reduced from 20% to about 5%.
New Platform Targets introduced
On Apr 29, 2015 Microsoft released Visual Studio 2015 RC and this included Xamarin Cross Platform development introducing two new platform targets: Windows 8.1 (sometimes referred to as WinRT or WinRT Tablet) and Windows Phone 8.1 (the original windows phone target is based on Silverlight and is still available, this target does not use Silverlight).
New Platform Target coming
Xamarin are working on a Universal Windows Application (UWA) target for Windows 10. Apps written for Windows 10 will run on all Windows devices including Desktop, Tablet and Phone.