Xamarin.Forms
Pros
- Create one UI for all platforms
- Use basic components that are available on all platforms (like Buttons, Textfields, Spinners etc.)
- No need to learn all the native UI frameworks
- Fast cross platform development process
- Custom native renderers give you the ability to adjust the appearance and feeling of controls
Cons
- It's still a new framework and still contains bugs
- Especially Windows RT is not yet stable
- It's sometimes slower than accessing the native controls directly
- Custom native renderers have boundaries and are poorly documented
Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT
Pros
- Create one UI per platform
- Easy ability to adjust the platform specific UI features and components
- Get the maximum out of your UI
Cons
- Cross platform development process is much slower
- You need to learn all native UI frameworks
- You may result in having duplicate code (as you describe almost the same UI in three different platform specific ways)
In addition to that Xamarin says on https://xamarin.com/forms:
Which Xamarin approach is best for your app?
Xamarin.Forms is best for:
- Data entry apps
- Prototypes and proofs-of-concept
- Apps that require little platform-specific functionality
- Apps where code sharing is more important than custom UI
Xamarin.iOS & Xamarin.Android are best for:
- Apps that require specialized interactions
- Apps with highly polished design
- Apps that use many platform-specific APIs
- Apps where custom UI is more important than code sharing