- You still need to be an iOS/Android dev, Xamarin only provides a different language and a few different core APIs, but you have to know how each platform works.
- Shared code varies by project, a Xamarin Forms might share “90%” of the code but is very limited in the UI area. In my experience a regular project might share around 30%, the other 70% is usually UI and API calls of each platform.
- For basic apps might work, but if you try to push the envelope you will face compatibility and stability issues per platform.
- Xamarin introduces its own set of problems, again compatibility and stability are regular issues.
- You have to bind any “unpopular” and even some “popular” native libraries by yourself to be able to use them in your project.
- Android supports lags behind, iOS is usually on time.
- Android development is slower and clumsier.
- You will have more luck using their forums than looking for answers in stackoverflow.
- Xamarin Studio crash and burns just because.