I am in need to make a choice between Xamarin.Forms vs Xamarin native apps.

I want to go with Xamarin.Forms as UI code will be shared as well.

So what are the drawbacks of Xamarin.Forms as compared to Native.

upvote
  flag
Have a look at The Good and The Bad of Xamarin Mobile Development for an excellent discussion as of January 2017. – Schollii

3 Answers 11

From the Xamarin Website

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

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
upvote
  flag
Regarding "apps that require little platform-specific functionality", are there examples to get a sense of what kind of functionalities we're talking about? – NS.X.
upvote
  flag
Little platform functionality means you are doing data binding and other business rules primarily as the app. Not a lot of custom drawing, or trying to render everything pixel perfect. If you are ok with a common layout that is responsive, then Xamarin.Forms is a good fit. – Jason Short
upvote
  flag
Best answer in my opinion. This cleared it up for me: "Xamarin.Forms: Create one UI for all platforms" and "Xamarin.iOS, Xamarin.Android: Create one UI per platform". Thanks! – JedatKinports
upvote
  flag
@Wosi It's 2017 and I am still wondering If anything has changed. Is xamarin forms still suitable only for prototypes and basic apps ? – Dibzmania
1 upvote
  flag
@Dibzmania I've never said it's suitable for prototypes and basic apps only. If you want to have a cross platform app with an almost identlical UI on each platform then Xamarin.Forms is great. If you want to have a custom UI per platform then you probably won't benefit from Xamarin.Forms and should use the native UI libraries instead. – Wosi
up vote 100 down vote accepted

Aside from the points shown in the Xamarin Website, you should also consider:

Your team's background

Does anyone in your team has a previous experience coding natively for Android or iOS (using Java or Obj-C/Swift)? This experience is reused in native Xamarin, but they'll have to learn another platform to code in Forms.

The same is true if they know nothing about iOS/Android but know some xaml. Sure Xamarin.Forms is different from WPF/Silverlight, but knowing xaml surely helped me using Forms.

Performance

Xamarin Forms still has some issues, such as initialisation time. You should consider whether or not this will be a problem for your final user. I wouldn't bother to wait a while for a dashboard app that I use once in a while to open, but I'd be angry if the same happened to a messaging app.

Time until delivery

Since the code sharing is bigger when using Forms, you may expect a quicker delivery time.

Complexity of your app

Considering the previous point, using Forms you may stumble on some show stopper bug (it's a very new technology after all) that will null the time gains. Consider the complexity of your application before choosing.

1 upvote
  flag
I'll add to this if you are expecting to have good looking app you'll end up having a lot of custom interfaces with Xamarin Native code for each platform – Lemberg

Not the answer you're looking for? Browse other questions tagged or ask your own question.