top | item 40367743

I'm Sticking with Native iOS Development

35 points| riveralabs | 1 year ago |riveralabs.com

21 comments

order

pzo|1 year ago

I'm doing the opposite even though been ios dev for a decade and now learning react / react native. Reasons: - golden days of mobile apps are gone, these days less and less people download apps

- it is more important to have desktop / mobile web app these days

- pwa and mobile apps and tech are slowly getting good enough

- if you are native ios or android you are limiting your jobs and business opportunities - native mobile dev is like niche inside niche these days. Probably half of jobs is typescript/javascript/ python related.

- in current market and ai landscape your have to prototype and ship fast to be competitive even at the cost of slighly worse UX

sandofsky|1 year ago

> - it is more important to have desktop / mobile web app these days

On what are you basing this? Every normal person I know picks a native app over a web app.

> - pwa and mobile apps and tech are slowly getting good enough

This has been claimed for well over a decade, yet I can't tell the difference as a consumer.

> - if you are native ios or android you are limiting your jobs and business opportunities - native mobile dev is like niche inside niche these days. Probably half of jobs is typescript/javascript/ python related.

Technically a brain surgeon has fewer job opportunities than a dentist, yet they make way more money.

> - in current market and ai landscape your have to prototype and ship fast to be competitive even at the cost of slighly worse UX

This is quite a generalization. I think that in some markets users will tolerate a worse UX, and in some markets UX is everything. My company has done quite well by not compromising UX.

I think it's a false dichotomy that you can either build fast with a web app or slow with a native app. I can build some things in SwiftUI way faster than if I used web technology.

dreamcompiler|1 year ago

Completely agree. "Download our App!" is a huge red flag. It suggests at best that some VP at the company wanted to check a box and at worst that the company wants to harvest your sweet, sweet personal data and they cannot do so with a mere website.

There are some apps whose existence makes sense like Uber and turn-by-turn navigation but the vast majority of apps now should just be websites.

Ologn|1 year ago

There are three billion Android devices in active use. Writing native applications for a platform with three billion active users is niche, but not that niche. Over 100 billion apps were downloaded on Google Play last year.

There probably are more Javascript/React jobs, but there are also more Javascript/React programmers. In mid-2022, many places had trouble finding good senior Android programmers. In the past few months I saw OpenAI, Anthropic, Perplexity etc. looking for Android programmers.

In terms of knowing Java and Kotlin well, there are plenty of Java/Kotlin backend jobs around (don't know about that in hot startups, but outside of Microsoft-world, JVM has been the bedrock of backend for almost 30 years). So that's a logical shift out of an Android job if desired.

Also, Android gives analytics to the business that they have more trouble getting on web. On the web companies are at the mercy of Chrome, Safari etc., with Android they're writing their own app to their own specifications (with some Google Play restrictions).

Where I work, Android and iOS sometimes are ready to launch before the web team has finished their work. How does that fit into prototyping and shipping fast?

It's possible the golden days of launching an app like Instagram and getting acquired a year and a half later for a billion dollars is over, but there is plenty of money to be made. Also, even if a company does launch on web first (most, but not all, companies), if they're successful they often look into launching a mobile app. Even if they start with React Native, KMM or the like they often move to native later (although there are exceptions, I believe Discord launched with RN and it works for them - so different platforms work for different scenarios).

riveralabs|1 year ago

I don't disagree with you. Especially the native development limitations. I don't think there's a right or wrong answer here. You just have to adjust your expectations and learn to live with your choices.

yatz|1 year ago

Unless you are in the business of building apps for others, in my experience, cross-platform development rarely works. The amount of time you spend on implementing platform-specific conditional logic, dealing with UI latency, additional debugging time due to cross-platform masking actual errors, and above all keeping your codebase in order, outweighs the benefits by a huge margin.

The team that originally started might do a decent job but over time new people come on board, deadlines and other challenges make people start cutting corners and making design choices inconsistent with the original designers leading these codebases to become unmanageable.

What can work with some serious dev team discipline is to build common frameworks that you can use cross-platform and never dare to attempt cross-platform user interfaces.

refulgentis|1 year ago

For what it's worth, economically for an individual, it's sort of the reverse in my experience. I feel like I snuck into Google in ~2016 because pure-iOS is so rare. I only had 1 out of 7 interviewers who worked on iOS, 2 who had tangential brief experience, 4 who had never used it. Also, Swift was new, so the people who did know iOS couldn't really speak to it when I used it to write code.

If I'm launching a product, I'm doing Flutter. To me, it's Swift but with no rough edges. Most importantly for a product, it lets me maximize leverage and get cross-platform. The performance is really astonishing compared to my days with React Native, it's native in that it's not being JIT'd.

But if I'm happy with a nice gig / set of consulting clients doing iOS, that's great, probably can do that until the end of time. I think we're seeing the first wave of startups doing Flutter to maximize engineering leverage, but long-term, it's too divisive to have a singular Flutter codebase for most large businesses. They'll specialize.

flax|1 year ago

I understand the author's point, sticking with what's comfortable and working.

In a sense, I'm doing the same thing, but what's comfortable and working for me is Flutter. I don't have any Apple devices to develop on (but I do have a work macbook, and can borrow my wife's iPhone), so to target iOS at all, I vastly prefer cross-platform. Apple still makes that artificially difficult in many ways. You can't even upload a build without xcode (mitigated by codemagic.io). My distrubution certificate recently expired and I spent a lot of time on the Apple connect site before realizing there's no way to request a new certificate without using Apple tools that only run on Apple hardware. It should be a button in the same UI that shows the certificate!

Anyway, without cross platform tools like Flutter, I wouldn't target iOS at all. Apple just takes every opportunity to try to leverage you into their ecosystem, and I'm not going to do that.

And now that the WebAssembly target is officially supported, maybe I won't bother anymore.

airstrike|1 year ago

IMHO SwiftUI is so good, no amount of describing its greatness can do it justice... you have to try it to really understand it

rumori|1 year ago

I could not disagree more, SwiftUI is a black box that is great when it works but is infuriatingly incomplete to this day. I filed dozens of radars in the past year. I’ve worked on app of the year type applications and they use zero SwiftUI for a reason.

akmarinov|1 year ago

Cross platform does seem to be slowly eating away at native apps - if you look at a lot of big companies out there, all of them use cross platform - like GM uses React Native for their car apps, Microsoft uses it in their Office Suite, Skype, Amazon, Shopify, Walmart, Tesla and many many more.

It seems that if you play at scale and are a big company - you're pretty much on React Native or maybe Flutter though that doesn't make a ton of business sense imo.

I wonder at what point Apple looks at things and wonders why they even bother investing so much in Swift and SwiftUI. At which point they'll either

1. Leave it to dry on the vine

or

2. Go the other way and put in a "no cross platform frameworks" in their developer agreement and force companies to use native code.

munchler|1 year ago

I think this is a niche of a niche of a niche, but it’s interesting to see the creative decisions young developers are making to carve out a sustainable career. I hope this path works out for you!

riveralabs|1 year ago

Thanks!! I'm usually making this decision because I'm an older developer. I'd rather try making it on my own than having 25 year old manager micromanaging me. At this point, I'd rather switch careers than getting a traditional 9-to-5 development job.

moribvndvs|1 year ago

That’s great for you. I don’t have the resources to build the same app from scratch for three different platforms at the same time.

giantg2|1 year ago

Isn't true native iOS development objective-C?

But yeah, this article is basically the same for me, only I'm an Android dev. I don't release anything on iOS. I probably would if it wasn't for that $100/year Apple dev fee. My stuff is free, so why should I pay Apple such a high fee. If I did write for iOS, I'd probably do Swift or SwiftUI at first to learn it. Then maybe I'd look at a cross-platform framework.

pjmlp|1 year ago

Metal is the last Framework that was designed Objective-C first, everything else now is focused on Swift.

However a big difference to Android, is that you don't see Objective-C shots from Swift team, as Kotlin/Compose folks do against Java (while using Java 8 as counter example, and ignoring the ecosystem Kotlin depends on), which has really put me off from Android.