I gave up on Xamarin Forms.

vinguanvinguan USMember ✭✭
edited June 2017 in General

Back in 2013 I was trying to get into mobile development and then I did some study with iOS/Objetive-C and Android/Java. I was already developing with .NET C# for a couple years, and then the company i was working at the time started doing some prototipes with Xamarin. It was a huge relief to me finding that i could develop iOS and Android apps with C# and have native performance.

When Forms came in 2014 i thought it was revolutionary because it would save a lot of time doing reworks. But i been thinking last week and got into a conclusion that it creates more problems than it solves them. We still have to do renders for trivial things and and have a lost in UI performance. I am fully back to native UI development but sharing as much as i can such as business rules, native apis abstractions and entities.

Just to be clear here. I am not giving up on Xamarin, for me is still the best way for cross platform development. I am giving up on Forms only. They are not the same thing as many of the new devs on the community thinks and transmit, but this is a whole another topic.

Tagged:

Posts

  • MaharshiChoudhuryMaharshiChoudhury INMember ✭✭✭

    I think you made a very good decision. The problem with Xamarin Forms is that it has pervaded a sense of thinking that these are microsoft apis and we don't need to know android or ios. They will feel it when the app becomes too complex and too buggy. Writing custom renderers on every goddamn scenario is pretty much waste of time and money. Hope those who are thinking that forms is a silver bullet it is more of a millstone around your neck which will drown your app.
    One more suggestion learn the api framework and slowly move towards android java and ios objectivec/swift. That is the only benefit i would say of xamarin . They make the transition from .net to mobile a lot smoother.

  • pedrohexpedrohex USMember ✭✭

    XamarinForms is perfect for undemanding visual applications , just like enterprise class. Do it once, run everywhere. "Its ugly, no fx , no this , no that..." Whatever, it just works like a charm.

  • mikeacostamikeacosta USUniversity ✭✭✭

    I'm currently doing Android/Java after working on Forms projects for awhile, and I get the Forms discontent. That said, there are Forms success stories out there - slick, cross-platform, consumer-facing production apps that look and work great. I'd like to see more of these teams & projects profiled and promoted. It would be great for the platform for other devs to learn their approach, what's worked for them, what hasn't, etc.

  • GVxGVx USMember ✭✭✭

    @vinguan said:

    Just to be clear here. I am not giving up on Xamarin, for me is still the best way for cross platform development. I am giving up on Forms only. They are not the same thing as many of the new devs on the community thinks and transmit, but this is a whole another topic.

    Yes, I hear you. My thinking is 100% the same. I have been using Xamarin Forms from the start of 2016 until 2 months ago (Been using Xamarin for 3 1/2 years) and it has become an absolute mess. Performance is horrible, so many bugs, and it's like everything they add now is a hack.

    And like yourself Xamarin Android and iOS I will choose to develop, C# is great, but not Forms and I will no longer recommend Forms.

  • vinguanvinguan USMember ✭✭
    edited June 2017

    @GVx said:
    it's like everything they add now is a hack.

    This is the exactly way i feel about it too. It's like i said , this "hacks" they add were built for solving a problem that does not exist with Xamarin.iOS or Xamarin.Android, it was created by the Xamarin.Forms, "Embedded Platform-Specific Controls" for example. Wouldn't have been better you add the native control on AXML or XIB/StoryBoard or UWP's XAML and customize it the way you want in the context of your UI?

    Focusing on those things and slowly putting aside the native development really concerns me about the future of the platform.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    Just read the pinned roadmap thread in the .forms forum...

  • vinguanvinguan USMember ✭✭

    @FredyWenger said:
    Just read the pinned roadmap thread in the .forms forum...

    I did. It was one of the reasons i gave up on it.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @vinguan
    I know :smirk:
    With which dev environment you work now..?

  • vinguanvinguan USMember ✭✭

    @FredyWenger said:
    @vinguan
    I know :smirk:
    With which dev environment you work now..?

    I am still with Xamarin and C#. But i am doing the UI and the api implementations fully native and abstracting them with PCL or the new Standard Class libraries. Pretty much like like when forms didnt exist yet.

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    So you create your own forms (#2) :wink:

  • GVxGVx USMember ✭✭✭

    @vinguan said:

    @GVx said:
    it's like everything they add now is a hack.

    "Embedded Platform-Specific Controls"

    haha... yes this is a true form of desperation... Might as well put #if ANDROID #if IOS all through the code now....

  • AlexWhiteAlexWhite GBMember ✭✭✭
    I spent a lot of time really trying with forms, when I look back if there had been monotouch dialog for android that would have been enough for me, works a treat on IOS it would have all I needed if I am homest
  • NamyslawSzymaniukNamyslawSzymaniuk USMember ✭✭✭✭

    A few months ago, I came back to native Java Android development, and I have to say, that there is no comparison to Xamarin Forms development.
    I'm spending 30-50% of working time for:
    -building (which takes so loong),
    -fixing ootb bugs or introducing workarounds - for UI/code/build/IDE issues
    -testing app (which is much more slow, comparing to apps written nativelly)
    -trying to debug something, where debugger is not able to show me real objects in watcher sometimes, and I have to use ugly Debug.WriteLine...
    -updating XF/nugets and fighting with building process, not working linkers (depends of nuget plugin version)...

    When I was Java Android developer, I was 95% of time focused directly in code, and 99% of bugs, were my code fault, and for framework/SDK/IDE problems.

    Now I came to XF back, and development in this framework is soooo annoying, even after M$ bought it.

    So I understand your decision @vinguan :neutral:

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @NamyslawSzymaniuk
    It's exactly like your wrote (I can confirm fully)
    The problem is, that many developers (like me :wink:) have trusted fully to Xamarin's promises ("Our primary focus: make .forms stable") and now already have some (better or worse working) apps in place and are not able to change to another platform without big work (additional, not paid time invest).

  • GuyProvostGuyProvost CAMember ✭✭✭

    @vinguan said:
    Back in 2013 I was trying to get into mobile development and then I did some study with iOS/Objetive-C and Android/Java. I was already developing with .NET C# for a couple years, and then the company i was working at the time started doing some prototipes with Xamarin. It was a huge relief to me finding that i could develop iOS and Android apps with C# and have native performance.

    When Forms came in 2014 i thought it was revolutionary because it would save a lot of time doing reworks. But i been thinking last week and got into a conclusion that it creates more problems than it solves them. We still have to do renders for trivial things and and have a lost in UI performance. I am fully back to native UI development but sharing as much as i can such as business rules, native apis abstractions and entities.

    Just to be clear here. I am not giving up on Xamarin, for me is still the best way for cross platform development. I am giving up on Forms only. They are not the same thing as many of the new devs on the community thinks and transmit, but this is a whole another topic.

    I follow you 100%. We have a single forms app and now I can't even update the app to use the latest forms. Always something breaking or behind. We now do our dev in Xamarin.iOS and Xamarin.Android only. It's way better, but still, there's a few hickups here and there!

  • amirvenusamirvenus USMember ✭✭✭

    I am also giving up on Xamarin.Forms... I except Microsoft as one of the richest companies on the planet to hire people to write more documentation and sample so that N00BS like me don't have to spend their days and nights on Forums and YouTube videos hoping someone has a straight answer or solution to a simple problem.

    Feature parity is also something else.. Why can't we just have 1:1 working features in all targets? Is it too ambitious, unrealistic and idealist to expect a code written once in XAML and C# and expect the same behaviour, look and functionality across macOS, UWP, WPF, iOS, Android, GTK and Tizen?

    Can't they just improve build/deploy time? Why should I wait around 10 seconds for a simple Debug on a machine with 4 x Quad Core Xeon CPUs, 128GB of RAM, PCIe SSD?

    Xamarin.Essentials is going towards the right direction but I wish they add more features to it. There are certain things that would encourage others to use XF and hence growing up XF community base. I spent a week to get Printing work on UWP, iOS, Android and WPF. Yeah I guess this is my fault that I haven't studied Xamarin.iOS and Xamarin.Android first...

    I am considering ReactNative but I wish it supported C#... until then, I guess I have no choice but to stick to Xamarin.

    Now, I really want to learn Xamarin.iOS and Xamarin.Android but I am scared because:

    1. I heard there is no easy data binding in them as there is in XF!
    2. Creating UI once is a big pain itself (oh not as painful as before though thanks to LiveXAML) do I really need to learn different UI syntaxes for other platforms and do them for each?!?
    3. Most of my clients want to have UWP/WPF (strange, right?) and then after a while they ask for iOS and Android. It would be a nightmare to start those projects all over again (at least I would be lost!)
  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @amirvenus:
    I'm (still) with you...
    I personally see a "medium" improvement in stability and VS integration (but still not O.K. yet).
    Further, I see no real progress in functions over the last few years(!)...
    There e.g. still is no popup (what - I think - every user with a "bigger" app needs) available (was postponed for years now) and every dev has to implement it himself).
    It seems as the real (and useful) enhancements are postponed every time a new "roadmap" is planned.
    If the implementations of a "picture button" or "rounded corners" are "sold" as "big enhancement", I doubt, that XF will be "feature complete" in the near future (means next few years)...
    So.. If I have to create a new app (and have enough time), I will give flutter a try...

  • nefgrixisnefgrixis Member ✭✭

    @FredyWenger Flutter is real fun to use. It doesn't have that annoying JS bridge that ReactNative has. You have complete and full control of the UI which is amazing!

  • vinguanvinguan USMember ✭✭
    edited January 9

    @amirvenus said:
    Now, I really want to learn Xamarin.iOS and Xamarin.Android but I am scared because:

    1. I heard there is no easy data binding in them as there is in XF!
    2. Creating UI once is a big pain itself (oh not as painful as before though thanks to LiveXAML) do I really need to learn different UI syntaxes for other platforms and do them for each?!?
    3. Most of my clients want to have UWP/WPF (strange, right?) and then after a while they ask for iOS and Android. It would be a nightmare to start those projects all over again (at least I would be lost!)

    There is no need to be scared.

    1. There is data binding with other frameworks like MvvmCross, MvvmLight and others, the difference is that you will need to bind directly into the native UI.
    2. Yes, pretty much but you can share all you base code like forms e.g. ViewModels, Api Calls, etc.
    3. It would, but building UWP/WPF interface is pretty similar to XamarinForms Xaml, and it's way more stable and advanced, specially WPF, so i don't think you would have problems there, you might struggle a little bit more in iOS and Android.
  • ZenDroidZenDroid USMember ✭✭✭

    I think the ship "Xamarin Forms" is sinking. It was very promising at the beginning. But the years go by and the main problems are not solved. It is sad.

  • JohnHJohnH GBMember ✭✭✭✭✭

    @ZenDroid said:
    I think the ship "Xamarin Forms" is sinking. It was very promising at the beginning. But the years go by and the main problems are not solved. It is sad.

    I have the opposite view, I think it is much better than it was and use it all day every day.

  • PaulDiPietroPaulDiPietro USXamarin Team Xamurai

    @ZenDroid said:
    I think the ship "Xamarin Forms" is sinking. It was very promising at the beginning. But the years go by and the main problems are not solved. It is sad.

    Please feel free to reach out (paul dot dipietro at microsoft) if you'd like to discuss any issues you have. This goes for anyone else as well.

  • NMackayNMackay GBInsider, University mod
    edited January 11

    @JohnHair said:

    @ZenDroid said:
    I think the ship "Xamarin Forms" is sinking. It was very promising at the beginning. But the years go by and the main problems are not solved. It is sad.

    I have the opposite view, I think it is much better than it was and use it all day every day.

    Agreed.

    Forms 3.4.0 is very good, I've done three commercial apps in Forms, 2 LOB for 1000+ users and the current is a store app for iOS, Droid and Windows Store/UWP...urrg. Forms has a strong eco system of libraries & a strong community, great application mvvm frameworks like Prism make it easy to build large mobile apps with Forms, Forms now makes platform specific tweaking much easier, 2018 was a good year for Forms, there's great visibility of issues via github and issues are dealt with if raised correctly (look at the open issues in Flutter). Forms also reaches a lot of platforms and unfortunately (for me), businesses need their software to run on Wind10 as well as mobile devices, Flutter isn't a serious option for that yet, other techs have a Javascript bridge and have been down that road before and didn't like it.

    Forms isn't perfect, none of the cross platform solutions are in truth (cross platform is hard) and all have downsides but for enterprise dev, I haven't found a better solution yet and the ability to use C#and code reuse has so many benefits, for companies investing a lot in mobile apps, you need to have a well support framework (Forms is well supported), well documented (Forms is very well documented) and a strong eco system of vendors (Telerik, Syncfusion etc) and OSS, I look for these things when making decisions on what technology to pick and recommend, Flutter looks interesting and I'll play with it but I wouldn't be going to my CTO at this stage and saying we need to change course.

  • xammobxammob AUMember ✭✭

    I would agree, Forms is loads better now than it was a few years ago, certainly in terms of stability. Not far away from pushing a cross platform app out to the store, and by far and away the biggest pain has been a third-party library of controls we decided to use, rather than Forms itself. I've had a very quick play with flutter and the ability to make changes and have them reflect straight away in the emulator is brilliant, Forms could really do with something like that out of the box. Can't even think of moving to Flutter at work though for 2 reasons, UWP and lack of support for Azure b2c for logging in securely.

  • vinguanvinguan USMember ✭✭
    edited January 11

    @NMackay Would you now advice to build a custom UI app with Forms, something like Flipboard or Evernote for example? I am willing to give it another chance for a more simpler UI app in my upcoming projects but for a complex or more customized UI I wouldn't go with it.

  • MatthewJoughinMatthewJoughin ZAMember ✭✭
    edited February 19

    I have been using Xamarin and Xamarin.Forms for just over 4 years now, and the experience now is much better than before that's for sure. I also do native dev in Swift, and while nothing can be as fast as bare to the metal binaries that swift produces, Xamarin.Forms is not far behind now.
    You have to know it well though, and you have to wield it correctly, for example I never use XAML anymore, I only build up my UI's programmatically which I find gives a big performance boost especially on Android.
    Then one must build up projects of renderers for each platform to customise and override properties of the standard controls that Xamarin.Forms don't expose yet.
    Lastly the biggest plus for me is the sharing of code that many mentioned above - I use exclusively ASP.Net Core backends running on AWS Lambda - and the ability to share code between backend and frontend code is really great.
    All of this has been much easier of course since .netstandard and .net Core came out of course - thankfully we are living in the post Ballmer age of Microsoft, and everything is much better for it!

  • CharwakaCharwaka INMember ✭✭✭✭✭
    edited February 19

    Form has improved a lot these days , i am able to build entire Instagram like app using Xamarin Forms 3.4 , but previously i also have same thoughts back in 2015, but now i can say lot of things got improved and lot of helpful plugins came out to get things done asap.

    Hi @vinguan

    you can give another shot with Latest Forms using .NET Standard , i can say that you can feel the difference and moreover the community is huge now compared to 2016-17 time.

  • vinguanvinguan USMember ✭✭

    @Charwaka @MatthewJoughin That is great to hear! I will give a another shot in my upcoming projects and then I'll report my new experience with it here.

  • noob8129noob8129 Member ✭✭

    The worst part of XF for me is ListView. It's so buggy and slow and makes me wonder why, after so many years, hasn't improved much. Now, I see CollectionView in the works, but it isn't complete yet as several vital components are lacking.

    Microsoft needs to hire a lot more devs for this team. There is a ton of outstanding bugs and feature requests. Also, why is the team wasting their time with Shell? @DavidOrtinau

  • CharwakaCharwaka INMember ✭✭✭✭✭

    @scxp said:
    The worst part of XF for me is ListView. It's so buggy and slow and makes me wonder why, after so many years, hasn't improved much. Now, I see CollectionView in the works, but it isn't complete yet as several vital components are lacking.

    Microsoft needs to hire a lot more devs for this team. There is a ton of outstanding bugs and feature requests. Also, why is the team wasting their time with Shell? @DavidOrtinau

    i have a list of 1000 images , list view is buttery smooth. i dont know what the problem your facing with listview ?

  • noob8129noob8129 Member ✭✭
    edited April 5

    @Charwaka StackLayout is painfully degrading performance, and I need certain items to be aligned like a stack. So, I end up using it, but it is making performance worse.

    FlexLayout has rendering issues as it doesn't seem stable enough.
    https://github.com/xamarin/Xamarin.Forms/issues/5311
    https://github.com/xamarin/Xamarin.Forms/issues/5265

    Spans are BAD.
    https://github.com/xamarin/Xamarin.Forms/issues/5087

    The issue is not simply images in view cells. It's when you have images AND a bunch of layouts, labels, spans, etc. Trust me, I'm not creating extremely complex cells. I can't even design a proper social media card with images, labels, buttons, etc. I've even tried using OneTime bindings, but they didn't help much.

    I'd say we also need a proper image library. We should leverage SDWebImage and Glide. I think there is GlideX out there, and idk about iOS, but we end up using two libraries instead of one. Why doesn't Microsoft invest in developing a common library? It's almost worth $1T and can't properly fund a cross platform mobile development framework. What happened to Satya's "mobile first cloud first" slogan?

    Sorry about the rant, but I'm tired of pulling hairs out. @MigueldeIcaza @DavidOrtinau

  • noob8129noob8129 Member ✭✭

    @FredyWenger I remember seeing one of your comments about threads getting buried in Xamarin's blackhole. Looks like this thread is hidden and does not even show up on the forum's recent posts. Great job, team. :|

  • FredyWengerFredyWenger CHInsider ✭✭✭✭✭

    @scxp
    It's nice, that you remember my postings (so I know, that somebody has seen it) :wink:
    And.. yes it seems as this thread now was prevent to pop on new messages - seems to be the same "technical problem" as in my old thread...
    It's a pitty and a shame for Xamarin to take such activities...
    I (really) have invested weeks (if not months) of my lifetime to try help Xamarin a few years ago and had to notice that I have wasted the time..

  • M_AllanM_Allan USMember ✭✭

    All the complains are still valid in 2019! welcome to IE experience

  • nick5454nick5454 USUniversity ✭✭✭

    @noob8129 said:
    The worst part of XF for me is ListView. It's so buggy and slow and makes me wonder why, after so many years, hasn't improved much. Now, I see CollectionView in the works, but it isn't complete yet as several vital components are lacking.

    Microsoft needs to hire a lot more devs for this team. There is a ton of outstanding bugs and feature requests. Also, why is the team wasting their time with Shell? @DavidOrtinau

    If it's slow then there's an issue with your code. The ListView is fast

Sign In or Register to comment.