- 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
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.
I am challenging myself today, been struggling for many moons with how to word this without being aggressive, and it seems impossible: you have a persistent blind spot about the efficacy of iOS. It's virtually impossible to launch iOS-only today without enough funding that you can ride out the ensuing 1-2 years to also now build out and staff a web app, etc. IIRC you have a distaste for that sort of funding (which I share)
The old Mac indies have brand names and a benefit of a smoother transition since they were there before the App Store. You and your partner were both influencers in the Mac indie community dating back *2 decades* now, and benefited greatly from the visibility of that: didn't Apple have Halide on the Apple Store phones at some point?
It's very, very, very, hard to get to market, get attention, and get to a competitive wage in the US, just on UX and an iOS app, even with a year or two of patience.
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.
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).
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.
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.
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.
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.
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.
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.