The best things i like about Xamarin :
1) Using Xamarin forms i am able to develop android and iOS app without even learning any android programming or ios programming languages. Just with normal c# language i am able to develop app which made me feel more comfort and more user friendly. Any body with knowledge of c# can start developing app using Xamarin which is making most of company to go to xamarin since there will be more dot net developers.
2)It will take less period to know about Xamarin and start working on it, since it is integrated with Visual Studio IDE so, dot net developer will feel more comfort working with xamarin.
3)We can develop cross platform application with single code which can be shared with respective native project while comiling. So with single code we can develop app for android, iOS and windows parallel.
4)Since Visual Studio Community edition comes with Xamarin, any user can download this Visual studio community edition which is free of cost and start developing app without any cost of software.
5)Setting up resource is very simple, it just needs PC with normal configuration.
6)If u enable USB debugging in android device, u can directly debug and test your app in physical device instead of emulator which is more efficient. And in iOS device also we can debug.
7)Since Xamarin allows packages/plugins from nuget.org website, u can install any package from nuget.org for functionalities like accessing camera, sending SMS, fetching GPS etc with installing packages and using it, which saves writing code for these functionality. Using packages saves time on spending writing native codes for native functionality.
8)Xamarin allows us to log errors and track usage in Xamarin insight which is very useful for tracking the performance and usability of app.
9)Using Xamarin any dot net or c# developer can start developing an app which makes any company to start using xamarin and start to build app with normal dot net or c# developer.
10)Code sharing or managing is easy with Xamarin, since it is integrated with Visual studio we can save or manage xamarin code using Team Foundation Server.
11)Using Xamarin Previewer we can view UI after making changes or coding which is handfull for developer. Rather than checking the changes or viewing the UI by deploying in emulator or Physical device, with help of Xamarin previewer we can see UI at that point only which saves time while designing UI for the app.
12)Using modal view view modal(mvvm) concept we can make Xamarin app free from hanging or freezing the screen and increase the performance of app using asynchronous calls/execution.
13)Currently Xamarin is best for cross platform mobile app development, because using c# language we can develop app with less time compared to other.
1)App developed using Xamarin is minimum 15-20mb in size, if we develop a small app with single page then that app size will be min 15-20mb which is not reasonable. User/Client might not like app with more size, in this type of reason Xamarin might not satisfy client/user.
2)Xaml Previewer wont work often, this previewer is of big help and saves lot of time. Microsoft needs to work on previewer and come up with good solution for consistent previewer.
3)Visual studio emulator is very slow, debugging in physical device is pretty fast compared to Visual studio emulator. Unless and until developer has device for testing then only he can save time with development, or else working with emulator will make development very slow.
4)To run emulator or Visual Studio it is suggested to have more RAM or else working with emulator and visual studio will be slow compared to highly configured PC.
5)Using xamarin forms developer needs to write platform specific codes for accessing native functionality like making call, sending SMS, accessing GPS, checking battery etc. Xamarin forms must provide few basic native functionality which will save time and lines of code.
6)For checking iOS app, we need Mac machine or else we cannot test or check iOS app which is big negative point of Xamarin. To check/debug/test iOS app we need Mac machine connected to network or separate mac machine. Cannot generate IOS app in windows machine. But we can generate android and iOS app in mac machine, same needs to be possible in windows machine too.
7)Few companies wont allow to run emulator's in company machines, we need to get exception to run emulator which is not reasonable.
I strongly recommend to people who wants to develop cross platform mobile application with c# knowledge and within less time.
1)Xamarin helped us to develop cross platform mobile app with less time and less resources. I can also say it saves lots of time and resources needed to develop cross platform mobile app.
2)Able to bring all intranet websites of company to cross platform native app using Xamarin forms with less time, which made us to deliver app soon using Xamarin.
3)Able to manage app performance or crashes easily.
4)Able to make changes soon and release changes pretty soon.
5)Managing the code is very useful using TFS, so no separate code managing software was required.
6)Authenticating user to app is easy using Azure Authentication which is supported in Xamarin.