Carieer path advice: .NET vs. iOS
presuming that you have on the table two offers: one for fullstack .net (C# + angular, react or blazor) and one for ios developer.
the interesting part is that both are almost identical (salary, office, benefits etc.)
an advice will be very welcome - what will you choose and why?
p.s. my background is mostly backend in golang (so the technology switch should be done anyway). and yes - I googled it but decided to ask here so that search engines bubble filters can be excluded..
p.s.s. I'm fine with both ones (maybe a little more inclined to choose ios). But interested also in your opinion about eventual perspective (looking into the future) related to chosen path.
23 comments
[ 5.1 ms ] story [ 62.6 ms ] threadiOS is the minority platform in all markets and likely to continue to shrink in the face of a free competitor. If you were doing iOS app development for yourself as an independent developer then it would shift the equation a bit since iOS apps have always had more revenue allowing you to charge a slight premium over Android.
I've done both .NET and mobile in my career and plan to stay on .NET for the foreseeable future. With your background in back-end Go I think .NET would be a better option.
With over 1 billion active devices[0] (practically all running a current[ish] version of iOS[1]) ... I don't see "shrink" happening any time soon
-----------
[0] https://www.theverge.com/2021/1/27/22253162/iphone-users-tot...
[1] https://www.digitaltrends.com/mobile/ios-distribution-news/
.NET is HUGE in Europe, great rates (100EUR median hourly rate for consultants), hard to find good people.
I got hired when they were expanding some and the first company outing was a celebration of the native Android and iOS apps being released so no one on the team had to ever work with Xamarin again.
Both are great options
pros: there is no shortage of roles, my experience has been (especially now) that skilled ios devs are always in demand.
it’s fun to work on mobile software, imo —- you get to live in a cool space where good software and good UX are both essential. hopefully you like doing lots of UI debugging and thinking about performance.
you get to work a lot with product and design on almost any consumer mobile app you dev for. fun if you like collaboration
cons: for the same reasons a niche is a good thing, there’s an eventual ceiling. you could probably sell your mobile experience and jump into an android or maybe front end web dev, but it’s easy to get “stuck” which is bad if you like versatility
there are definitely some annoyances in dealing with the “walled garden” or whatever you want to call it.
app store can arbitrarily decide you can’t visually style your app a certain way anymore (had this happen)
provisioning devices is annoying though has gotten less bad
i could go on… i’ve done it a long time and made a career out of it and really enjoyed it! if you like the idea of making products that are in people’s hands day to day it’s the right way to go.
I've mostly worked at SaaS startup companies, not quite line of business apps so still a good amount of challenge. I'd take the fullstack .NET position personally, I find mobile development to be most frustrating than web development.
.NET isn't popular with the cool kids, and you rarely see it mentioned here on HN. But man, it's just a joy to develop in. The C# language is incredibly elegant, the libraries are very well thought out, and Visual Studio with Intellicode just feels like a modern miracle. Development just feels really, really fun again.
One point to keep in mind with .NET: it also opens up the world of Unity dev to you. And there's a ton of really fun development to be done there in games, VR, etc. At the moment my days are filled with cranking out APIs for business apps, while my nights are filled with playing around with cool VR ideas in Unity. All in the same IDE and language.
The downsides to the .NET world: as others have and will mention, the great bulk of the opportunities out there will be in the business world, doing fairly mundane dev. But, they're stable (and relatively easy) jobs. Also, I find more often than not that your typical .NET project is horribly overengineered with layers upon layers of needless abstraction. (Now that I'm realizing just out easy .NET dev is, I'm beginning to suspect all the needless abstraction is just bored devs making themselves feel relevant.)
But you won't go wrong with either choice. iOS dev can be a lot of fun too. Good luck!
I occasionally do backend stuff, though. Sometimes in PHP, sometimes in Go.
On the other side, not familiar with .NET development scene. At least on Indonesia, it's not that popular. Major established companies like telcos and banks still use Java, while the cooler startup folks prefer Node, Go, Ruby etc.
I suggest you try iOS first, simply because Go still lacks manpower/resource for mobile dev. If you don't like, then try .NET, then :D