Xamarin cross-platform user experience vs. native development

boccanegra

I am trying to evaluate whether Xamarin would be a good option for my project. The project is a large, complex app for Android and iOS with a lot of client-server communication. The user interface is a major focus and has to be really fast and smooth. Also, we plan to make large use of UX graphic effects (comparable to the Spotify app).

For now we are planning to go for two separate native apps using Java/Objective-C. However, the possibility of cross-platform code sharing would be very convenient for us of course.

Most opinions I've heard so far say that Xamarin - although far better than HTML5 apps - cannot match the UX of a native app. Also, I tested the following applications made with Xamarin (on Android):

  • Rdio
  • MarketWatch
  • Busch Gardens Discovery Guide
  • Sqor
  • Storyo

From my impression, none of them could quite match the speed and smoothness of a good native app.

If our focus is on a top notch user experience, would Xamarin really be a viable option? Can it really match a native UX? I am particularly looking for opinions from developers who have experience with large and complex cross-platform Xamarin applications. A few critical voices would be very helpful.

Thank you a lot!

Gabe Kangas

I'm on the Rdio mobile development team, so I can make some personal reflections from that standpoint.

Xamarin allows you to write native applications in C#. Any slowness, jankiness, ugliness or bad-appiness usually has nothing to do with the Xamarin layer itself.

You save some time being able to share core business logic between your different clients, but you're still writing the UI from scratch, specific to the platform. You're just writing it in C#.

But while you save that time, you're spending it in other ways. All of those SDKs you want to use probably aren't compatible with Xamarin out of the box. You won't be pod install'ing that iOS framework, and you might be reinventing the wheel for handfuls of things. Xamarin takes advantage of the NuGet repo so you have a library of components that handle many of the things most people need (Analytics, Testing, Facebook SDK, JSON parsing, Database, etc etc) but it doesn't cover everything. And it certainly doesn't cover stuff that's out the day of an Apple or Google product announcement.

Any 3rd party code that you do want to import into your project will be done through writing custom bindings. While not usually difficult, it is time consuming. Xamarin has a team of people that specialize in assisting you in this. This fact speaks to the process being messy at times.

So while the slowness, jankiness, ugliness or bad-appiness probably isn't the fault of Xamarin, it might be the fault of you spending time in places you normally wouldn't, or not being able to take advantage of features you normally would. If that 3rd party partner SDK is giving you problems, your troubleshooting may take twice as long because there's a layer that you don't control.

  • UI is a wash. You're writing it from scratch anyway.
  • Business logic is shared. Depending on the app that might be a win if you architect your application to take advantage of it.
  • Compatibility / bleeding edge ability will be lacking. That might not matter to you at all, or you might be the person wanting to take advantage of that hot new API in the next OS release the day it's announced.

My personal thought, without knowing specifics, is if you want to build an application that you plan on being around years from now, and that will take advantage of the latest and greatest, I'd tell you to write natively for each platform. Unless you can really see huge gains in sharing that business logic the upfront gains are minimal. Or if you really like C#.

Collected from the Internet

Please contact [email protected] to delete if infringement.

edited at
0

Comments

0 comments
Login to comment

Related

From Dev

Xamarin cross-platform user experience vs. native development

From Dev

Android Studio vs Visual Studio ( Cross Platform Native Mobile App Development )

From Dev

Comparison between xamarin and ionic in cross platform mobile development

From Dev

Comparison between xamarin and ionic in cross platform mobile development

From Dev

Cross-platform xamarin application and native library bindings

From Dev

Cross-platform xamarin application and native library bindings

From Dev

BLE on Xamarin Cross Platform

From Dev

Qt qmake cross platform development

From Dev

Xamarin Cross Platform Certificate pinning

From Dev

Why MVVM for Xamarin cross platform

From Dev

Xamarin - Cross Platform Unit Testing

From Dev

Xamarin - Cross Platform Unit Testing

From Dev

Xamarin Cross Platform disable IOS

From Dev

Encryption in xamarin cross platform PCL

From Dev

How to get the json message from url using xamarin cross platform development?

From Dev

How to get the json message from local using xamarin cross platform development

From Dev

Understanding React Native Cross Platform

From Dev

Cross Compiling - Platform Vs Architecture

From Dev

Consume secure REST API in cross-platform native app using Xamarin

From Dev

Authentication with Amazon Cognito User Pools in Xamarin.Forms Cross-Platform App

From Dev

Native development with xamarin

From Dev

Best cross-platform development tool

From Dev

Git, monogame and cross-platform development

From Dev

Python cross development platform for beaglebone black

From Dev

Git, monogame and cross-platform development

From Dev

Python cross development platform for beaglebone black

From Dev

Best cross-platform development tool

From Dev

Cross-platform OpenGL rendering in Xamarin

From Dev

UserControl for cross-platform Xamarin Forms

Related Related

  1. 1

    Xamarin cross-platform user experience vs. native development

  2. 2

    Android Studio vs Visual Studio ( Cross Platform Native Mobile App Development )

  3. 3

    Comparison between xamarin and ionic in cross platform mobile development

  4. 4

    Comparison between xamarin and ionic in cross platform mobile development

  5. 5

    Cross-platform xamarin application and native library bindings

  6. 6

    Cross-platform xamarin application and native library bindings

  7. 7

    BLE on Xamarin Cross Platform

  8. 8

    Qt qmake cross platform development

  9. 9

    Xamarin Cross Platform Certificate pinning

  10. 10

    Why MVVM for Xamarin cross platform

  11. 11

    Xamarin - Cross Platform Unit Testing

  12. 12

    Xamarin - Cross Platform Unit Testing

  13. 13

    Xamarin Cross Platform disable IOS

  14. 14

    Encryption in xamarin cross platform PCL

  15. 15

    How to get the json message from url using xamarin cross platform development?

  16. 16

    How to get the json message from local using xamarin cross platform development

  17. 17

    Understanding React Native Cross Platform

  18. 18

    Cross Compiling - Platform Vs Architecture

  19. 19

    Consume secure REST API in cross-platform native app using Xamarin

  20. 20

    Authentication with Amazon Cognito User Pools in Xamarin.Forms Cross-Platform App

  21. 21

    Native development with xamarin

  22. 22

    Best cross-platform development tool

  23. 23

    Git, monogame and cross-platform development

  24. 24

    Python cross development platform for beaglebone black

  25. 25

    Git, monogame and cross-platform development

  26. 26

    Python cross development platform for beaglebone black

  27. 27

    Best cross-platform development tool

  28. 28

    Cross-platform OpenGL rendering in Xamarin

  29. 29

    UserControl for cross-platform Xamarin Forms

HotTag

Archive