0

I have background as native Android developer (Eclipse previously, Android Studio since beginning of 2015) and unity3d as simulation and game developer. I am currently tasked by my company to investigate cross development platforms.

I have searched in this question and others. And I would say Xamarin is winner for larger/complex projects. But is xamarin sufficient for hardcore-complex-projects?

For example social platform apps, lets say I am developing Facebook of my own, is Xamarin good enough? please answer in general manner and considering aspects below;

I have learned that Xamarin uses all Android components such as recycleview etc. So it's good to go.

But in complexity which require authentication login, with Twitter, Google, Facebook apis are usable? When I got error on this problems, can Xamarin provides enough documentation and help? And for other apis such as Google Analytics and statics maybe even Admob.

To upload/download files(image/video/text) can (or should) I use my previous libraries such as Asynchttp, picasso. Or are there better solutions?(maybe xamarin has its own way to implement these functions, I won't even have to use 3party library).

For webservice components, iOS has its own parse as well as 3rd party libraries such as afnetworking , restkit and Android has some libraries. What kind of solution xamarin provides? I know I can add jar files to Xamarin. But is there other solutions?

Xamarin as mono, supoorts augmented reality with unity3d, but does it support with native apps? such beyondar in Android, I would say wikitude and vuforia are astonishing but can I implement these plugins into native Xamarin (not unity3d)?

Community
  • 1
  • 1
Alp
  • 1,863
  • 1
  • 20
  • 38

1 Answers1

4

I don't think, StackOverflow is the right place to discuss questions like this. It is very dependent on your skillset and specific requirements.

In general, if you don't have any experience in a technology, then it is of course not the right thing to build a super complex software with it (for you).

Please don't see Xamarin as a mobile app framework, that handles a lot of stuff for you. It really is not.

Xamarin allows you to write all your app code in C# and run .Net code on iOS and Android. That's basically all.

If you wan't to make maximum use of Xamarin, you should of course not use platform specific libraries, but use a portable solution instead, so you only have to do it once.

There are a ton of .Net packages for Rest, Json, Web, Filetransfer, etc. and most of them are portable. Xamarin also provides a component store, where they ensure cross plattform compatibility.

For you, this means you have to learn all those frameworks (and some .Net/C# too). This is going to cost you a lot of training time.

Benefits will probably only become visible in the long term, as you only have to maintain a single code base. This is especially true for super complex apps with lot's of logic.

Kai Brummund
  • 3,538
  • 3
  • 23
  • 33