Hacker News new | ask | show | jobs
by mikece 2939 days ago
I refer to my period as a Xamarin contractor as "bomb technician programming." The biggest advantage of Xamarin is also the greatest source of its problems: anyone who programs C# can start a Xamarin.Forms app and get a proof-of-concept sufficiently advanced to show their boss who will run it up the chain and get it approved as a project. And THEN the devs -- who are awesome web developers -- begin to realize just how much they don't know about mobile and that they've coded themselves into more than a few corners and aren't sure how to get out... and I know this from first-hand experience from my first couple Xamarin projects. There comes a point where you realize that knowing C# is only part of the solution. You wouldn't take an accomplished ASP.NET MVC developer who has only done web work and assign them to an Akka.net or advanced, massively concurrent, highly-multi-threaded Windows Service project and expect them to succeed right away just because it's all C#. Same idea... different platform.

Xamarin is great for people who want to use C# to write mobile apps and know the underlying platforms well enough to know where the landmines are and how to side-step them. There's undeniable time-savings in being able to write non-platform-specific code one time and just link to it from the Xamarin.iOS and Xamarin.Android project. It's also possible to write cross platform apps very, very quickly with Xamarin.Forms if you understand where the issues are there as well...

But it's even faster to just write a mobile web site. When I am asked for my recommendations for a mobile app idea my first question always is: "Can this be done with a mobile web site (which is PWA these days)?" If yes, why go further? If you really want the app store exposure then packing up your PWA as a hybrid app isn't all that difficult so mobile web is still my first choice. It's not unless you have specific, unambiguous needs that mobile web or hybrid cannot handle that going native -- Xamarin or otherwise -- is recommended.

Keep it simple, deliver value, and go home happy and a little richer.

2 comments

> If you really want the app store exposure ...

thanks. i got a lot out of your comment, but then you lost me when i read that.

i mean, what are the benefits of app store exposure? it's a needle in a haystack. the standard experience after putting an app in the store is crickets. do users pay more attention to app store listings than they do to mobile web sites?

You and I know that, but some managers and companies soliciting mobile solutions only think in App Store terms. For these folks a PWA can be packaged and put in the store. And we can bill it as a value-add. :-)
Thanks for your very helpful and detailed reply.

I take it that you didn't compare xamarin to anything besides pwa- I'm assuming it's your way of saying that anything else you evaluated didn't stand up to xamarin?

Please let us know if there are any helpful getting started pointers and also for pitfalls.

Right now PWA is not something I'm considering although I see how they are the future (and am glad they are)

I’m not exclusive to PWA and Xamarin; React Native is huge right now and Google is pushing Flutter heavily (in order to ease the transition from Android to Fuchsia, but I digress). And Swift/ObjC with Xcode and Kotlin/Java with Android Studio are always solid options and the ones Apple and Google officially recommend if you ask them.

The stacks and options are just tools in a box; I believe in using the right tool for the job (or the tool required for the contract) rather than being a tool about this stuff. But if asked my opinion I will default to PWA until I know there's a feature requirement beyond PWA's growing abilities.