What is the difference between Xamarin.Forms and Xamarin Native?

78,192

Solution 1

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

Your team's background

Does anyone in your team have 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 are different from WPF/Silverlight, but knowing XAML surely helped me using Forms.

Performance

Xamarin Forms still has some issues, such as initialization 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.

Solution 2

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

Solution 3

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

Share:
78,192

Related videos on Youtube

Ajay Kumar
Author by

Ajay Kumar

love to code, not typing

Updated on July 08, 2022

Comments

  • Ajay Kumar
    Ajay Kumar almost 2 years

    I am confused between Xamarin.Forms and Xamarin native.

    What is the difference between the two?

    So what are the technical positives and negatives of using Xamarin.Forms over Xamarin Native?

    • Oliver
      Oliver over 7 years
      Have a look at The Good and The Bad of Xamarin Mobile Development for an excellent discussion as of January 2017.
    • Tejasvi Hegde
      Tejasvi Hegde almost 6 years
      Bottom line... Just go for Native! I am telling this based on my own experience. I re-wrote forms app to Native.
    • Sean Anderson
      Sean Anderson over 5 years
      Comments from 2015 no longer reflect the reality of Xamarin Forms. It has come a long way and has seemed to explode after .NET Core\Standard matured.
    • James Mallon
      James Mallon over 4 years
      This question needs to be re-opened. It has now 4 years old and there have been huge developments within the Xamarin.Forms framework to enable the development of enterprise applications.
    • Saamer
      Saamer about 2 years
      As of 2022, here's a guide on how to get started with Xamarin Native
  • NS.X.
    NS.X. about 8 years
    Regarding "apps that require little platform-specific functionality", are there examples to get a sense of what kind of functionalities we're talking about?
  • Roman Nazarevych
    Roman Nazarevych almost 8 years
    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
  • Jason Short
    Jason Short over 7 years
    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.
  • Tadej
    Tadej almost 7 years
    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!
  • Dibzmania
    Dibzmania almost 7 years
    @Wosi It's 2017 and I am still wondering If anything has changed. Is xamarin forms still suitable only for prototypes and basic apps ?
  • Wosi
    Wosi almost 7 years
    @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.
  • Alt-WN
    Alt-WN about 6 years
    I think this article by Nathan Williams is useful: arctouch.com/blog/xamarin-forms-xamarin-native
  • Emil
    Emil over 5 years
    this answer and comment above are super too old. Performance isnt a big issue today if you enable AOT. regarding good looking app in the comment is also not true. xamarin forms improved and you can achieve good looking apps easily.
  • andreikashin
    andreikashin over 5 years
    amazing answer!
  • Sean Anderson
    Sean Anderson over 5 years
    This answer is stale/old. Use Forms with Prism. Enjoyable experience. I'm a single developer building a huge app and I am very productive and my app just works on everything. If you want stunning looking apps there are various third-party views like Grial UI Kit (check out their free XAML live previewer). Remember, Xamarin Forms still uses the native controls by default.
  • Alexander
    Alexander about 5 years
    Xamarin Forms has not improved much in terms of getting a good-looking UI easily. Xamarin.Shell will make big improvements in that regard, but as of now, Xamarin is still difficult to get anything remotely attractive from without writing custom components for each platform.
  • Abhijith C R
    Abhijith C R over 2 years
    @Alexander, please explore the standard and community provided UI components available in Xamarin. My guess is that the high level of customisability is what makes beginners feel that achieving good UI is difficult.