I haven't used Xamarin, so take this with a big grain of salt. But my understanding is that its API is similar to that of the underlying platform, meaning that it's mostly imperative and you write and interact with views in much the same way you would in Objective-C or Java, just in a different and arguably better language (C#).
React Native has a different philosophy -- it intentionally abstracts away the platform APIs entirely, and unless you're writing a native plugin you're only able to access a React-centric API. This is a lot more ambitious and leads to a great developer experience when it works. Some people however feel that it's a misguided effort and that you can't expect to write fluid mobile applications without interacting with the platform primitives directly. The jury is still out on how well it will scale and there definitely still are pain points with both the developer experience and app performance, but many people including myself have written production apps in it and in my opinion it largely delivers on its promise.
I've made apps with Xamarin before. For UI it's basically a very thin wrapper around existing UI code (at least pre-Xamarin Forms). I basically could take my existing native iOS knowledge, look up what they changed the function or object name to in Xamarin (usually a minor name change to be more idiomatic to C#), and set things up almost exactly the way I would have done in Objective-C code.
It was actually very common that if I didn't know how to do something I'd look it up for iOS on Stack Overflow, because it was almost certainly answered there, then look up the corresponding Xamarin object/function names.
Correct. The Xamarin API is 1:1 aligned with the native platform. To the point that it is almost entirely generated from automatic tooling with the odd "fix up" here and there.
Xamarin Forms however is a framework that performs abstraction, in a similar vein as React Native. Xamarin Forms is built upon the Xamarin API.
The great thing about Xamarin Forms is you can use Dependency Injection [1] to access the Native features.
I started with Xamarin Forms without any pre-knowledge of iOS or Android development. I use Xamarin Forms on a daily basis and share 99% of my code.
Is it on GitHub? I've been working with C# for a decade and will be getting into Xamarin now that it won't cost me thousands of dollars to do so. It would be great to have some Open Source examples to look at!
I am currently developing a hybrid app. Where communication with backend, image manipulation, interaction with settings+security features of the platform -- are in Android Java. While the basic data entry / data presentation forms are in React-native.
I would not mind switching the Android Java side -- to Xamarin, but will I still be able to have a portion of my app in React Native?
Are there any open source examples that use Xamarin and React-native?
React Native has a different philosophy -- it intentionally abstracts away the platform APIs entirely, and unless you're writing a native plugin you're only able to access a React-centric API. This is a lot more ambitious and leads to a great developer experience when it works. Some people however feel that it's a misguided effort and that you can't expect to write fluid mobile applications without interacting with the platform primitives directly. The jury is still out on how well it will scale and there definitely still are pain points with both the developer experience and app performance, but many people including myself have written production apps in it and in my opinion it largely delivers on its promise.