Live data from Hacker News

Ask HN: Is Xamarin worth learning?

news.ycombinator.com

71–80 of 168 posts

Re: Ask HN: Is Xamarin worth learning?

#71
post #63

iOS developer with multiple years of experience of burning fingers in cross-platform development here. I've tried Cordova/Ionic, Xamarin, Dropbox Djinni, and native iOS development. C++ is the closest I've got the a performant cross-platform solution, even though it go it's own quirks. The problem with Xamarin is it'll always play second fiddle to quick moving targets of Android and iOS toolchains. In my case the Rea…

What about React Native?

I've not tried RN, but a team I know tried it for a professional project. They were really dissatisfied with it said it's not suited for medium to heavy applications and found the performance sorely lacking. IIRC they mentioned that the toolchain is also not as great as Android Studio/Xcode. But YMMV.

Re: Ask HN: Is Xamarin worth learning?

#72

Earlier quoted context omitted.

> Can they keep up to speed with Google,Apple and MS? Xamarin is Microsoft now.

You are right, on the other hand, Microsoft isn't famous for being able to keep up with itself (especially if you look at the number of deprecated ways of creating GUIs).

UWP is going to change that.

Re: Ask HN: Is Xamarin worth learning?

#74
post #63

Earlier quoted context omitted.

What about React Native?

I've not tried RN, but a team I know tried it for a professional project. They were really dissatisfied with it said it's not suited for medium to heavy applications and found the performance sorely lacking. IIRC they mentioned that the toolchain is also not as great as Android Studio/Xcode. But YMMV.

I've several React Native apps in both appstores. I think while React Native is not suited for all types of apps, there is a sweet spot for certain projects where it really shines. The development speed is really unparalleled, with hot reloading you can see your app changes as soon as you hit 'save' in your editor.

Re: Ask HN: Is Xamarin worth learning?

#75
My experience with Xamarin is mostly on the Android side, so that's what I'll mention. Spoiler: mostly positive, with some big caveats.

In no particular order:

Stay the hell away from Xam.Forms, unless it's improved drastically in the last 6 months. Though I also think the whole idea is misguided.

For Android, go with Xamarin or Kotlin. I would take C# over Kotlin because of the maturity of the language, the tooling around the language, and the ecosystem. Either way, having a powerful modern language will be a godsend.

Concurrency on Android is much easier to deal with in Xamarin than with native. This extends to things like complex orchestration of animations.

You will do backflips trying to get startup-time down. But once your app is in memory performance is basically native-level.

Xamarin gives you some nice framework-level things that native Android doesn't. A good API for sqlite and http. Proper data-binding. MvvmCross and ReactiveUI are light-years ahead of anything that is available in native-land.

Xamarin builds are faster and more reliable than Gradle.

Xamarin introduces its own layer of bugs and glitches. You've added another slice of Swiss cheese to the stack.

Xamarin plugin for Visual Studio is crash/glitch city. Xamarin Studio is tolerable at best. Either way, your tooling will be faster but less feature-rich than Android Studio.

Every time you want to use an existing third party library, you will go through this process: Has anyone done an official binding for it? If yes, use awkward Java syntax in C#. If no, try to find an unofficial binding. If not found, try to bind on your own - 50% chance it just works, 50% chance you fiddle for half the day and then fail. If it's the latter, try to decide if you want to do a code-level port, or abandon your idea. Code-level ports are possible nearly line-by-line, it's slow brainless work.

Re: Ask HN: Is Xamarin worth learning?

#76
post #35

I've been extremely disappointed in Xamarin. The main issue is that you don't really get code sharing. I would estimate that only 25% of the Xamarin project I manage is cross platform code. The rest is this bizarre merger of native APIs with C#. It's difficult to write because of the lack of examples and documentation. It's also buggy, even with simple things like page views. The real problem is that I can write a na…

I've gotten great levels of code-sharing, but you don't just get it out of the box. You really have to architect for it. See: MvvmCross and ReactiveUI.

Re: Ask HN: Is Xamarin worth learning?

#77
Xamarin Native developer here, I started off by trying to create a Pokemon Go Map app. Although I got off to a quick start, slowly it downed upon me that I started spending too much time finding fixes for Xamarin issues rather that programming. I used macbook as agent and visual studio as IDE. Sometimes the deployment would take 5 minutes! I then had to restart the agent to fix it. As a programmer I am rather a person who runs a code, change a little bit in code, then run it again. If I dont understand things I google it or find the documentation. Thats my way of learning things instead of reading through programming books.

For me Xamarin Native was slow and rigid. I highly doubt I could make 'innovative' apps with Xamarin. Maybe it is okay for people who want simple things like a "to-do app" or somethign that fetches list of images and displays it.

I wanted more and found no solution for things I needed, so I gave up and started xcode (swift + some objective c).

And let me be clear here, if I had spent same amonut of time on xcode as xamarin I would have been iOS dev master :)

Things just works much better. You can do anything you imagine with Xcode and swift. With Xamarin its more like find whatever library is out there and try to create something by combining these. Too many bugs.

This is no sly dig on Xamarin or Microsoft as I use alot of MS products myself. I have also tried phonegap, react native etc. and Xamarin is the best when it comes to cross platform without a question, but none of these can match true native coding (xcode swift/objc)

Re: Ask HN: Is Xamarin worth learning?

#78
post #19

I am using Xamarin.Android currently for a project, and I really like it. One thing I love is that because it maps so closely to native Android development, you don't need to look specifically for Xamarin.Android tutorials/SO Answers/blog posts etc to learn how to do something. Most of the time, information targeted towards native Android development will apply to Xamarin.Android also, and you can basically map examp…

It maps closely to android development? Then how is that a good soln for cross platform Dev?

You have access to all of the same namespaces that a native app does, and also access to all of the namespaces included in .net Framework Standard.

You can stay within .net Framework Standard and share that code between your Android/iOS/Windows Phone(lol) app, and reach into the native libraries when you need platform specific functionality.

Re: Ask HN: Is Xamarin worth learning?

#79
post #52
post #27

How is React lacking for Android?

I've heard performance problems.

The only performance problems I've seen were created by people who don't understand when React triggers a redraw, thus rerendering a 1MB image on every keyboard keystroke.

As long of you are a bit mindeful of the big pitfalls (any bigger framework has some of those), the performance of React-Native is excellent.

Re: Ask HN: Is Xamarin worth learning?

#80

iOS developer with multiple years of experience of burning fingers in cross-platform development here. I've tried Cordova/Ionic, Xamarin, Dropbox Djinni, and native iOS development. C++ is the closest I've got the a performant cross-platform solution, even though it go it's own quirks. The problem with Xamarin is it'll always play second fiddle to quick moving targets of Android and iOS toolchains. In my case the Rea…

How would C++ work for cross-platform development? Would you use a framework like Qt, or write platform-specific frontends?
Post reply on HN