This is my first blog post about Xamarin.
Until now, I have written a lot about hybrid mobile technologies. But, if you thought I was just doing things with those frameworks… you are totally wrong.
I’ll tell you what I think about Xamarin after a few projects and why I don’t like to compare it to hybrid frameworks like those which are cordova based.
I need to confess to you, at the beginning I didnt’t like Xamarin. But, you have to agree with me. Why would I like it?
I tried to use it two years ago and I needed to write the views two times (Android and iOS) and I didn’t want to do that in a cross-platform framework. So, after that experience I passed some time just saying: “I dont’t like Xamarin because it doesn’t offer me the benefits that Cordova offers”. I was wrong when I did these comparisons, I just didn’t know yet (I’ll tell you why I was wrong, keep reading).
In the middle of last year I discovered Xamarin Forms. Things started to change about the “need to write the views two times” and I kind of started liking Xamarin.
My first Xamarin real project was with Xamarin forms. Before forms, I didn’t see any advantage to using Xamarin instead of the other mobile developement methods.
Xamarin forms allows you to write the view just once and execute it on all the platforms (android, ios and uwp). This is great! I don’t need to care about learning three new languages to write the same app on different platforms, with Xamarin forms I can do this using xaml to write views and c#/f# to write the code behind for all the platforms. When I started coding with Xamarin forms, I stopped hating Xamarin :)
But, no technology perfect. You still have to deal with the mobile native developement problems. Actually, this is not a problem, it’s a personal opinion. In my opinion, if you are building a framework to allow people to write the code one time and compile it to multiple platforms, why not resolve at least the most common problems that happen in both technologies? For example: maxlength. I hate doing maxlength with Xamarin!