Xamarin.iOS & Xamarin.Android Developer Experience

PeterEdwardsPeterEdwards GBMember ✭✭

Hi All,

I've been playing with Xamarin.Forms and as a newcomer to the framework / tooling I've not been having a great experience being honest. XAML previewer not really working and randomly crashing, a few builds just not building then next try working, auto complete not working until I restart VS for my own XAML controls etc, all which has lowered my confidence of using Xamarin.

I know I'm not alone reading the forums and so on but also I know a lot of people make great apps with Xamarin and I love C# and the ecosystem so am investigating the possibility of using Xamarin.iOS and Xamarin.Android instead of Xamarin.Forms.

I have a base knowledge of native iOS app dev, Swift, Xcode etc so I can (for example) use Xcode to create a ToDo list type app just fine and am thinking Xamarin.iOS might be a better route for me to start with? Later on I can add an Android UI when I come up to speed with the basics of Android native dev and code share the business logic etc?

I wanted to ask what the experience is like generally for people using Xamarin.iOS and Xamarin.Android nowadays vs Forms? Are things generally better / less buggy do you feel? If I'm reading the wind right people generally have a better time with Xamarin.iOS & Xamarin.Android. Please be gentle if that's not the case lol

Hoping to find a way forward, appreciate any thoughts, cheers all!


  • PeterEdwardsPeterEdwards GBMember ✭✭
    edited January 26

    I think I might have answered my own question...

    I gave Xam.iOS and Xam.Android a go with some really simple things. Xam.iOS seemed ok, few weird rendering bugs in the VS for Mac IDE but no deal breakers. Tried Xam.Android on PC with VS and within 10 minutes I'm having builds fail every other time, sometimes twice in a row and then they build with 0 changes?!

    I really want to enjoy Xam (and I did actually have an initial good experience with Forms but it went downhill quick) but I feel like I should steer clear and choose another option or be willing to accept quite a bit of battling with tooling and so on.
    A lot of my projects are really really simple, didn't expect to run into problems to be honest.

    I'm no uber coder but I've got 20+ years in IT the industry doing dev and other things, I'm not new to C# (but am a bit out of date) and I have a good basic understanding of iOS native dev, but Xam feels like hard work.

    For comparison I'm also trying out Dart / Flutter and having a really good experience (sorry Xam devs!). I'm new to Reactive UI etc so it feel very alien but the more time I'm spending with it the more I'm warming up to the shift in thinking.

    Interested to hear experiences, still want to keep Xam in my toolbox :)

  • PeterEdwardsPeterEdwards GBMember ✭✭

    Still be interested to hear anything folks.

    I'm tempted to persevere with Forms as looking at the Xam blog etc I see a lot of energy going into it and if I'm right things have been getting better over time.

    Maybe I just had a bad start or its my knowledge? Not too sure, its why I wanted to hear what others think really.

  • PeterEdwardsPeterEdwards GBMember ✭✭

    Slightly different approach this time with Forms using LiveXAML and not the built-in previewer and having a better time, hoping it continues. Putting this here so if any other newbies come in they can see what might work for them.

  • jddjdd USMember ✭✭✭

    Thanks for sharing your experience.
    LiveXAML is not free though.
    I am very sceptic because I read awesome experiences with xamarin (as https://montemagno.com/why-i-choose-xamarin-to-build-mobile-apps/
    but I am facing so many difficulties, I don't understand why the others are so happy.
    Each time I update a nuget package I spend 3 days solving problems building, debbugging, starting liveplayer and so on.
    Recently, I created a .NET Standard library in place of the PCL. the app crash since...
    I tried to start coding in XAML, the previewer doesn't work and so on...

  • PeterEdwardsPeterEdwards GBMember ✭✭
    edited February 6

    Hi @jdd Yes true LiveXAML is not free but I think independent authors of good software should be rewarded and so on.

    An yes I take you point on the difficulties, I am still seeing a lot of things that are not working as well as I'd hope (like the previewer). I think I've arrived at a point where I've realised no solution is perfect and the challenge is working with things to make them work for you. I mean if you worked natively with iOS and Xcode / Swift (for example) I'm sure there would be bugs and things not 100% perfect.

    That said Xamarin is more challenging and with more 'hiccups' than other solutions I've tried which is what makes the experience feel like hard work, but on the flip side it also has a lot of awesome things and a unique approach that can outweigh that pain.

    Competition is hotting up with cross platform and I'm hoping that inspires the Xamarin guys to keep up the good work and make things more smooth for us going forward.

  • JuanPabloSillerJuanPabloSiller USMember ✭✭

    I've used both Forms and Native, Windows VS and Mac VS. Here is my 2 cents:

    Native using VSForMac gives you the best Xamarin experience. I have an iOS and Android project and share code through a .Net standard PCL. I use an mvvm framework and implement my own messaging service for stuff that I cannot easily bind to the view models. For UI design I use autolayout and XIB, using the xCode designer rather than the VSForMac one.

    For Android I do use the VSForMac designer that has recently improved but you can always use the Android Studio one too which is more stable.

    So basically for UI Design using xCode or Android Studio is better or simply adding the UI through code-behind.

    It took me a while but once you get the hang of it you can actually get the benefits from Xamarin. I do agree it has to be more stable so the community grows.

    Once you learn to do binding libraries you can also get great benefits from third party libraries although building libraries can be a pain, once you learn the basic it is not that bad.

    Xamarin Forms is fun but honestly, I don't know why it gets so much attention, I feel you are much faster doing native and have less limitations, build issues, troubleshooting is easier etc. I think it is nice to learn both though although I would avoid using forms for big professional projects and just keep it for small personal projects.

  • gviddygviddy USMember ✭✭
    edited May 13

    @PeterEdwards said:
    Still be interested to hear anything folks.

    I'm tempted to persevere with Forms as looking at the Xam blog etc I see a lot of energy going into it and if I'm right things have been getting better over time.

    Maybe I just had a bad start or its my knowledge? Not too sure, its why I wanted to hear what others think really.

    Mate, have a look at Flutter. It is a cross platform development environment developed by Google. It's good, really good. The best part is it is super quick to develop with. I'm sitting here waiting for my Xamarin iOS build to finish compiling, i have a feeling I will need to do the usual, kill VS, restart VS, and magically it will work. Flutter doesn't have any issues like this.

  • PeterEdwardsPeterEdwards GBMember ✭✭

    @JuanPabloSiller @gviddy

    Hey Guys, Sorry I didn't respond or comment earlier. Not been using Xam as much these days as the projects I'm working on are pretty vanilla and I can work better using other tech sadly. I still keep an eye on the project and I love the reworking of the docs and blog etc etc.

    I'm also doing more web work lately and for any native stuff React Native is in the toolbox as it just makes sense for me at this moment.

    Flutters an interesting one, the dev experience is slick and the 'inner loop' is as fast as can be, personally I find the code a bit unreadable and even with VS Code help refactoring things is annoying chasing closing braces etc. I'd like to see where Google take it longterm though as I think those issues will go away as tooling improves and most likely a markup language of some sort appears.

    Something I've not tried yet but very much like the look of is NativeScript. I'm not sure why it doesn't get a lot of attention and as someone that really likes XAML / XML for imperative UI NativeScript it feels quite familiar reading the docs. It also supports declarative UI via Angular and Vue and when I get some time I really want to give it a spin. Something to note is that all the native API's are exposed via JS, no need to dip into Swift / Obj C / Kotlin / Java, just like Xam.

    Sorry for the adverts for other tech! Right tool for right job as always.

  • PeterEdwardsPeterEdwards GBMember ✭✭

    FYI, took another look at Flutter in a spare hour as I like to keep up-to-date on tech in general, maybe I just wasn't used to a reactive UI approach and the code the first time but seems to make more sense now. Definitely like to see what happens with it, Google seem pretty committed to it and as of v1.5 more platforms appearing making it a pretty interesting choice for lots of stuff.

Sign In or Register to comment.