return to table of content

Write code for the web - Apple doesn't care about you, Mr. Developer

zshrc
45 replies
3h13m

Apple provides thousands of APIs to make developing on the platform easier, has created their own programming language that integrates nicely with the platform and has a fully integrated IDE that works with both above.

Sure, buddy… They don’t care about you unless you develop for their platform. And who can blame? The above is a terribly expensive and timely investment.

blitz_skull
16 replies
3h3m

Lol. Have you ever used their “IDE”? My guess is you haven’t based on the tone of your remark. Apple has been developer-hostile for years, and OP was just synthesizing their thoughts around this and TBH I found the conclusion to be fairly nuanced and apropos.

romanovcode
6 replies
2h57m

I still can't figure out how to format on save in Xcode. Or format in general?

Someone
3 replies
2h53m

Or format in general?

I use the workaround of Command-A, command-X, command-V aka “Select All, Cut, Paste”.

Unfortunately that loses cursor position in the file and gives you a free newline at the end of your content.

noSyncCloud
2 replies
1h59m

You're supposed to end your document with a newline. That's a POSIX standard.

mdaniel
0 replies
1h3m

I don't mean this as snark, I'm genuinely interested: do you have a phrase I can search for or a link to that? I don't think I've ever heard that before but I would love to start citing it

Someone
0 replies
1h34m

I know, but if your file already ends in one, it adds a second one, if it already ends in two, it adds a third one, etc.

DelightOne
1 replies
2h49m

Format with this integration: https://github.com/ruiaureliano/X-SwiftFormat

Then make CMD+s the shortcut.

andrekandre
0 replies
2h25m

thats great (i use swift format plugin myself) but really apple should provide these features not 3rd parties and ideally format while typing not just save

aetch
4 replies
2h54m

Lol. Have you ever used Android Studio IDE? The grass always looks greener on the other side but Xcode and iOS development is miles ahead of how slow and unhelpful Android Studio is the majority of the time. Don’t even get me started on opening up your app 6 months later to update the code and it’s a 99% chance some Android gradle build system or dependency has changed and broken the build…

pjmlp
1 replies
2h48m

I love how it has become a meme in Android developer circles that a "stable" Android Studio release always requires a fix release shortly thereafter.

Also Gradle breaking the DSL all the time has become such a pain, that eventually they had to create an upgrade wizard, as if debugging performance issues with the build wasn't fun enough.

blashyrk
0 replies
1h58m

Say what you want against Gradle, but that method of project/workspace configuration is miles, no, lightyears ahead of the dumpster fire that is the xcodeproj format, especially when working in a team.

fsflover
0 replies
2h33m

You should try to write an app for a GNU/Linux phone, to see how being free from a duopoly helps in real life. For that, you simply use all desktop tools (and the app will also run on desktop).

blashyrk
0 replies
1h46m

I cannot disagree more on just about everything you wrote.

In my experience, Xcode has been terrible, sometimes borderline unusable. The horrible project format, merging pains when working in a team, interface builder being trash in general but completely unusable when you use a lot of custom components with @IBDesignable properties across multiple modules - in that scenario it sometimes rebuilds everything in an endless loop, and brings even the most powerful Mac machines to their knees.

In that state even changing a simple property on a view takes 15 seconds of 100% cpu time.

Sure nowadays there's SwiftUI but IMO it can't be considered as anything more than an alpha until they fix the horrible navigation woes. And even then it still uses UIKit under the hood and you can see countless internally used constraints breaking all the time in the logs. At least that's how it was when I tried it a year and a half ago.

And that's not even touching on the cruel joke that is the xcodeproj project format.

Apple didn't even provide a package manager until relatively recently for God's sake. It was left to the community (cocoapods) to fend for themselves in this regard.

realusername
2 replies
2h49m

xcode is indeed the worst coding software I ever used, it looks like some kind of 90s software which got left rot since.

The whole thing takes 13GB to download where resuming fails, has an undocumented config format which doesn't work with git properly and is more sluggish than an Electron app.

The app upload process itself is so broken that even Apple had to release a third party tool to bypass it.

I refuse to believe they are using this thing internally, they must have some kind of special internal process to make this mess sort of work.

I could say similar things about appstoreconnect where even reordering app images is broken with a race condition if you click too quickly and you have to reload the page.

smoldesu
1 replies
2h4m

The whole thing takes 13GB to download

You're one of the lucky ones, eh?

aniforprez
0 replies
1h41m

When the stars align and the mighty gods bless me, I am lucky to have Xcode download only 15GB to update. Once, the update got borked and consumed all free space in my Macbook when I kept retrying and almost bricked the laptop

It is utterly insane to me that this is the only way to build and sign apps for Apple devices locally. At one point, I almost burst into tears cause I was excited that they finally added an update that highlighted the line the cursor was on

whynotmaybe
0 replies
2h50m

I've used every major ide since turbo Pascal in the 90`s and xcode is the less intuitive ever.

I'm not an Apple user and when I have to do anything I don't know on Mac, the way to find it is always with the question "what's the simplest way to do it".

Except xcode. I always have to google or gpt to find what I want.

bmitc
10 replies
2h36m

You left out that they lock down anything that isn't those things. I tried developing an app of my own on macOS, not using Swift and their tools, and it's a huge pain. They have deprecated and version locked OpenGL for no other reason than to push their own tools. Trying to just get an external DLL to load was nearly impossible. Anything cross-platform needs to be converted down to their tooling, such as Vulkan to Metal. MacOS is even more of anomaly and special case than all the Linux distributions.

It's crazy how much easier development on Windows is. And Microsoft's is almost all cross-platform. None of those things you mentioned allow you to work in a platform agnostic manner. Whereas Windows supports their own stuff like DirectX but still allows direct running of Vulkan, OpenGL, etc.

hnfong
8 replies
2h28m

"I tried developing on <platform>, actively avoided using their tools and tech, and the experience sucked because nothing I tried was supported."

bmitc
7 replies
2h24m

It wasn't that it was not supported. It is that Apple is openly antagonistic to and actively blocks anything that isn't theirs.

And you also left out key information. I don't have any issues with the same development on Windows or Linux. Apple is the outlier and isn't doing some reasonable thing.

Apple is by far the most troublesome platform to develop for. They literally make you do it their way, and you cannot recover any of that work for other platforms.

motoxpro
3 replies
2h0m

I agree with the GP. I feel like you're trying to walk into a steakhouse and ask for pancakes KNOWING it was a steakhouse before you went in. Pancakes are great, but it says steakhouse right on the sign that says "We sell steak and nothing else"

bmitc
2 replies
1h44m

The analogy doesn't work.

It's not like Apple provides their platform and then if you don't want to use it then fine, you're on your own. They are actively hostile towards you doing something else.

If I leap off your analogy, which again doesn't really work, it's as if they throw tomatoes from their steakhouse as you go towards the pancake house.

skydhash
1 replies
29m

Are they? They own the OS. And they reserve to themselves the rights to change how it behaves. There’s no standard API, only tooling. So yeah, it’s obvious that you’ll be in great pain if you try to sidestep the tooling. Everything apart from their SDK is and will always be an hack.

bmitc
0 replies
4m

Are they what? Actively hostile? Yes, they are.

Of course they can do whatever they want. But it makes everyone slowly hate them.

kredd
2 replies
2h7m

I generally agree with you, but on the other side of the coin, if you follow the processes they’re forcing on you… it’s pretty seamless. Sometimes it’s a bit buggy when they release new APIs or versions of tooling, but given the amount of people who do Native development and the money it generates, it gets resolved.

bmitc
1 replies
1h51m

I don't have infinite time and energy. It would be easier to just not support macOS rather than learn an entire stack just for them. Microsoft also has a Windows-only stack, but its perfectly fine to use others.

pohl
0 replies
1h7m

This is an overestimation of how much effort it takes to learn another language and stack, especially in a world with Google, Stack Overflow, and LLMs.

ederamen
0 replies
2h12m

This. Apple has been slowly, relentlessly, sneakily squeezing out any open or cross platform dev options.

If you want to develop for Apple's devices, you have to sacrifice your future career options with any other tech stack/vendor by investing your limited time into skills that are only relevant in the Apple ecosystem.

Then you have to hope that it's still financially viable to do software dev in Apple's world for the next few decades - which given their demonstrated behavior of scraping back more and more of the pie for themselves and their shareholders, seems like a risky bet.

ederamen
4 replies
2h43m

They don't develop those APIs out of the goodness of their heart - it's a lock in strategy.

They've made it practically impossible to write native cross platform code that runs on IOS, and they've everything they can (within political limits) to prevent web apps from being able to compete with native apps.

dgfitz
2 replies
2h7m

I’ve had success with Qt building an app that compiles on Android and iOS. I’m not in the app development business at $dayjob though.

ederamen
1 replies
1h51m

Oh cool - I started looking into Qt a while ago but was confused by their license. Would you recommend it?

rubymamis
0 replies
1h45m

The license may look confusing, but it's pretty permissive. I highly recommend Qt. I developed a block editor[1] (similar to Notion) using Qt C++ and QML, and my development experience is pretty great.

[1] https://www.get-plume.com/

bowsamic
0 replies
2h8m

Many apps have a cross platform C++ back end

officialchicken
2 replies
3h4m

My only concern is that standard would easily place Oracle as the winner of most corporate care for developers in a terribly expensive and timely investments!!!

pjmlp
0 replies
2h50m

Actually I have my Oracle account since mid-1990's, and in some respects for DB development tooling, only MS SQL has feature parity.

Specially for applications where the DB is a platform on its own.

mouse_
0 replies
2h32m

You put this better than I could have. Extended support can in fact be malicious. Appreciate your contribution.

TillE
1 replies
2h50m

Swift is great, but the vast majority of apps really don't need to be lovingly hand-crafted for each platform, and Swift is (currently) a bad choice for anything non-Apple.

Personally if I were working on mobile stuff, I'd be looking at .NET MAUI.

itsautomatisch
0 replies
15m

I'm not sure why you think MAUI is a great choice considering its current status. There is a huge lack of learning resources, a very tiny community, and very few-to-none successful applications built entirely using MAUI at this point. There isn't any strong guidance or opinionated advice for how to architect or scale your app from Microsoft, either. Avalonia is a much better choice if you must use .NET, but outside of people who really, really like C# or have legacy apps they want to migrate, I don't think either will be very good choices for new greenfield apps. If anything, Microsoft has been signaling that Blazor Hybrid is what you should be using, and while it does use the same core technology under the hood, it is much more at home for C# developers who have been doing ASP.NET which has far more developers than WPF or Xamarin ever did.

Eric_WVGG
1 replies
2h39m

I likewise have a fairly sunny perspective of Apple development, I even like XCode (since SwiftUI, at least… could never get the hang of Interface Builder).

But the fact that he got in to work on a music app is illuminating. The Apple audio APIs are an absolute mess. Media Player, AVPlayer, Core Audio, AVFoundation, AVAudioEngine… it's like competing teams dating all the way back to NeXT kept writing their own libs and somehow they all persisted through the iPhone era.

I spent about three months of the COVID lockdown trying to make a Shoutcast/Icecast player, it was excruciating.

mnvrth
0 replies
1h54m

OP here. Funny you mention Shoutcast, because a Shoutcast player is what I'd made earlier - https://github.com/mnvr/Soundtrack. So I sort of know what you mean :)

And you know the reason why it's macOS only? because the Apple App store reviewer rejected it heh.

worksonmine
0 replies
2h19m

They didn't have to develop their own language. It's part of the lock in.

righthand
0 replies
2h54m

It’s eternally expensive as they extract more and more money from the developers in new ways too. Building those APIs and tooling is never paid off because there’s enough unpaid evangelists socially guilting you into paying for it. We should be so lucky that Apple extracts billions every year and says when and where to stop and go.

lutoma
0 replies
34m

has created their own programming language

For me, that's part of the problem. I'm sure Swift is a nice enough language based on what I've seen. But I'm not going to invest a substantial amount of time learning a language that is realistically only ever going to be useful to target one platform by a single company.

bogwog
0 replies
1h13m

Hey man.

I don't know you, but even if you had a highly successful app on the appstore, I (an internet stranger) would care more about you being hit by a bus than the Apple corporation would, or any of the MBAs over there that you worship.

Any relationship you think you have with Apple is completely in your head. They take advantage of people like you all the time. Developing for Apple is an abusive relationship, and that's always a difficult thing to come to terms with.

I know this comment is probably just going to annoy you and result in a long, ranty, defensive, passive aggressive response. I don't care. I still love you more than Tim Cook/Steve Jobs does/would, my fellow dev.

Retr0id
0 replies
2h53m

Are you writing this from the perspective of someone who has tried to consume an Apple API?

ahmedfromtunis
38 replies
2h53m

Early on, I made the choice to not to invest in learning native mobile development. I focused all my limited time on the web, and I think that, for once, I made the right choice.

Today, one can build amazing stuff for the browser. And, in my very humble opinion, the vast majority of apps should've been WebApps — except for maybe Uber, Google Drive, and games.

I worked in the journalism business, and, in my country, the early 10s were filled with media outlets spending so much of the little money they had to build mobile apps.

I was the sore thumb that rejected such trend.

I knew very well that the quality of most of these apps would be questionable at best. And of course these companies won't be investing regularly in updating their mobile fronts.

And that's exactly what happened: they're stuck with apps that are barely maintained, most of which looking like ancient artifacts from a bygone era. Because that's what they are.

host0
19 replies
2h30m

PWAs, especially those built with an offline-first approach, are so much closer to the native experience than those from half a decade ago. However what concerns me is Google's and Apple's incentives to help them get better to a point where they can rival native apps which could hit their bottom line.

maxlamb
6 replies
2h17m

I think you meant Google's and Apple's incentives to make them (PWAs) worse...

px43
3 replies
2h8m

My understanding is that there is a lot of political power inside Google (from the Chrome side of things) working to ensure that PWAs are the primary way that users interact with their phones. It's definitely a point of contention, with pressure on both sides, but there is a balance there.

Apple on the other hand is only incentivized to funnel everyone through their App Store, and for some ridiculous reason, app developers use this to justify going all in on native apps, which I think is what this article is addressing.

dickersnoodle
2 replies
2h2m

One really good thing about native apps versus PWAs is that once the user installs a native app and learns the way it works they don't need to learn it again until they upgrade. With anything sourced from the web, the user is at the mercy of the wevdevs, who are at the mercy of the marketing and merchandising wizards who want to shake up the UI to try and goad users into buying more stuff. It's kind of like those round baskets that supermarkets like to clutter the aisles with; somehow they think it prompts you to buy things, but for me it adds one more product to my "no, not buying this ever again" list.

pmontra
0 replies
1h31m

Yes and no.

Yes because for example I'm sticking to K9 mail 5.6 because of the UI change in the next versions. I picked K9 exactly because of the original UI so I'm not using the new one, which is like every other mail client. I saved the APK and I'm installing on any device of mine, also when my fingers slip on the update button. Uninstall and install 5.6 from the file manager.

And no, because if the company behind the app wants to force people to upgrade they'll make the backend incompatible with the old app. Also no, because I don't think that many normal people invest time not upgrading an app because of the UI.

nox101
0 replies
1h11m

not my experience. Apps update automatically for most people so they are no different than web pages. You can turn off the updating and then in 2-3 months you'll get a message the app no longer works with whatever service it's tied to and you're required to upgrade.

On my desktop there might be a few apps that don't need to upgrade but on my phone, 90% of all apps are tied to a service. Uber/Lift, bank apps, apartment apps, hotel apps, bike rental apps, social media apps, dating apps, streaming music apps, video apps, etc.

aCoreyJ
1 replies
1h59m

Google is the one pushing them. Apple has the incentive to keep people on the device though because they don't have an advertising business

https://fugu-tracker.web.app/

rchaud
0 replies
1h20m

Apple has a giant advertising business, but yes, it's not on the web like Google's is. It's on their own app properties like Apple News and the App Store.

echelon
6 replies
2h8m

Google and Apple should be regulated to offer the same functionality and performance to the web. Their grip on the most important technology of the century is astounding and harmful.

Honestly first-class web mobile installs without hoops and scare walls would be the thing to strive for.

idle_zealot
2 replies
1h46m

I'm not aware of any scare walls on iOS. On Android is a site is installable a little banner is supposed to pop up and ask if you want to install it. On iOS one has to open the site's share sheet and pick an install option nestled in there somewhere. I suppose that counts as a hoop, but how else would you surface the functionality without it being invasive and annoying for most users?

I think a more pertinent problem is that most devs don't want to distribute their apps as PWAs because Apple deletes saved data at unpredictable intervals and PWAs can't push engagement notifications as effectively as native apps.

When I switched from the Uber PWA to their native app I suddenly started getting bombarded with ads from them in my notifications.

echelon
0 replies
53m

Those are downloads though the app stores. The links merely funnel you though the stores.

Native web downloads of apps are impossible on iPhone/iOS. You have to go through the app store.

Native downloads of apks are possible on Android, but not until you navigate to the hidden settings and enable them. And even then, Google scares users from installing apps this way. Nobody in practice does this. It's effectively not permitted.

Aerbil313
0 replies
17m

devs don't want to distribute their apps as PWAs because Apple deletes saved data at unpredictable intervals

Does anybody know what the current situation in iOS looks like? I researched this recently and the information is conflicting. The OPFS data (Origin Private File System, which is the new storage API for PWAs and is supported in Safari) is supposed to not be deleted without explicit user confirmation, but what this confirmation looks like is unknown (is it just the usual delete Safari history button?) and I didn't run any experiments. However I've seen someone claiming Apple separates a website and it's installed PWA's storages. This is reinforced by the fact that I can see the storage space each PWA takes in Settings (which was oddly not updated when a PWA using OPFS used some more storage). However I just deleted that PWA but there were no special prompts, just the usual native app deletion prompt, absent of the usual phrase "Deleting this app will delete its data.", only the phrase "Do you want to delete this bookmark." was present.

ben_w
2 replies
1h43m

Google and Apple, both of whom make web browsers as well as OSes and could therefore cheat loads with anything like that. Of all the places to find someone conflating the companies with the operating systems Android and iOS.

But even then…

same functionality

Honestly first-class web mobile installs without hoops and scare walls would be the thing to strive for.

Coming to a future near you: npm install rm_minus_rf_slash

What's the old quote?

"""

Tech Enthusiasts: Everything in my house is wired to the Internet of Things! I control it all from my smartphone! My smart-house is bluetooth enabled and I can give it voice commands via alexa! I love the future!

Programmers / Engineers: The most recent piece of technology I own is a printer from 2004 and I keep a loaded gun ready to shoot it if it makes a strange noise.

"""

Except all the banks and railways require me to have a smartphone these days whether I want it or not.

echelon
1 replies
1h38m

One word: sandboxing.

ben_w
0 replies
13m

Is one of the ways they make browsers and app store apps more secure, that that is dissimilar to old school installation.

chilmers
1 replies
2h2m

The nice thing about the web is that while it’s no company’s favoured platform, it’s valuable to all of them as a way into each other’s platforms. That’s why whoever is “winning” the platform war a particular point tends to neglect the web. See Microsoft in the 2000s, and Apple now. But all their competitors are incentivised to push the web forward, because it’s a useful fallback as a way to get their apps into the walled garden. Then, eventually things shift and the company that was dominating falls behind a bit, or is facing antitrust problems, and suddenly they care about the web again. In that way, the web is a perpetual underdog, but never goes away.

mnvrth
0 replies
1h59m

Wow, that's a great way of putting it! Thanks, I had never linked the dots that way before.

jauntywundrkind
0 replies
28m

PWAs . . . are so much closer to the native experience than those from half a decade ago.

On the one hand I love this. I'm glad PWAs are helping drive people who wants and expect a certain thing towards the web.

I am also however super sad that PWAs removed so much greatness of the web. Most don't launch in the browser. None have visible url bars. They just added a new mode so PWAs can have some kind of tabs. They don't integrate with bookmarks, or extensions. They don't have forward/back. I like the web a lot, and I feel like PWAs are a major step backwards for me.

What's really scary to me js that new permissions are being added which are PWA only. I no longer can have a web like experience; I am forced to have an app like experience, without any of the affordances I get with a user agent/browser at my back. I feel so undermined here.

ederamen
0 replies
2h6m

I'm hoping the latest EU regulation enforcing alternate browser engines will make a dent in this.

...but when I see how petulantly defiant Apple's responses to other regulations which threaten their lock-in strategies have been, I'm not optimistic.

ahmedfromtunis
0 replies
2h6m

what concerns me is Google's and Apple's incentives to help them get better

I think that despite that, they did a decently good job. A few years ago, I created a voice-only social app: people can easily record and send voice memos.

I built it using fairly new tech at the time: the web audio api and native web components. (I refuse to touch react-style frameworks with a 20-foot pole.) It was 99% compatible with all major web browsers from the get-go, even with its fairly advanced "tech."

The only thing that wasn't cross-platform was the audio files themselves. I had to make a deep-dive into the world of encodings and codecs so that I can offer users audio files in the formats that work on their machines.

Obviously, there are areas where cross-platform-ity (??) is abysmal, but things will probably continue to evolve for the best ― hopefully.

And yes, PWAs with their offline capabilities are just awesome!

rubicon33
7 replies
55m

I just wish Web wasn't such a frustrating development experience. While it has improved leaps and bounds in the last decade, I still find it to be suboptimal when compared to native offerings.

Most of that frustration comes down to tooling and more specifically TypeScript. I'm not sure how to succinctly express my pain here but I have found generally that I wrestle with the type system in TypeScript far more than native offerings.

continuational
1 replies
37m

The TypeScript type system is obscenely complicated because it has to be able to type almost any weird pattern people used when there was no type system.

Most dynamically typed languages are adding type systems right now, and they all face the choice between rewriting/wrapping the whole ecosystem or build a very complex and ultimately unergonomic type system.

jwells89
0 replies
31m

It’s too bad that Swift → JS compiler projects are all stalled. Swift syntax is similar and I think it’d be a nice step up for people who don’t care for compatibility with legacy JS and want uncompromised static typing on the web.

FredPret
1 replies
42m

That's because you're doing something much harder with web dev. You're making something that works almost everywhere. It's actually insane this is even possible. I bet one day, computronium will run Javascript.

yCombLinks
0 replies
6m

Nah, the shitty parts of web dev are in basic building blocks other ecosystems handle without a problem. The fact that javascript can run anywhere doesn't mean it needs to have crappy build systems. It doesn't mean it needs to have constant breaking changes and flaky dependencies. CSS is crap for layouts. I've build apps with at least 10 layout systems, and CSS is the worst of all of them.

noduerme
0 replies
19m

I came from the much cleaner, simpler type system of AS3, but I don't really see a problem with the complexity of TS. There are a lot of aspects of its type system I will probably never use... but I don't have to. I've written a lot of fairly complex business and game software for the web, and never found myself reaching for a conditional type. Meanwhile, keyof and union types are handy for autocomplete hints. And to me that's all TS is really about. It's just there to make large scale javascript less of a dynamic, chaotic, untyped mess.

ahmedfromtunis
0 replies
28m

I enjoy building for the web using "native" tooling, writing CSS and JavaScript "by hand."

Years ago I tried to up my game and learn to use grunt and babble and other build tools. However, I found the process extremely complex, only to end up with finicky systems that made me even more stressful, not less.

I decided to ditch all that PoS and do things the easy (and logical) way. Never looked back.

CharlieDigital
0 replies
43m

    > I just wish Web wasn't such a frustrating development experience
It's got to be better than building to target two totally different platforms (and even more once you factor in tablets, Windows desktop/Linux/macOS) and then jumping through hoops to get your app packaged, reviewed, and updated consistently onto the target devices.

    > Most of that frustration comes down to tooling and more specifically TypeScript
I think that a lot of folks get frustrated with TS because they are coming at it from the wrong perspective. Instead of thinking about it like a static type system, think about it like "JavaScript with shape definitions". Give this a shot:

https://chrlschn.dev/blog/2023/09/typescript-is-not-a-progra...

idle_zealot
5 replies
1h52m

except for maybe Uber, Google Drive, and games

I understand Drive working better as a native app; it needs to be able to provide a virtual filesystem to the OS and do background syncing and such. But why Uber? Uber has (or maybe had) a mobile site that works fine for requesting rides and basically everything the app can do. I don't see what value Uber being a native app adds for the user. The same goes for most mobile games; they tend to have simple graphics that the browser is perfectly capable of rendering with great performance, and they tend to reinvent all common UI components so losing access to native system buttons and such wouldn't make a difference. PWAs should also provide plenty of storage for local save files and other game data. The exception of course being games that really push the system to its limits. I don't expect, say, Death Stranding or the RE4 remake to work well without direct access to native graphics acceleration, and they're too large to load as a single webpage. I will reiterate though that this is not the case for most mobile apps, even extremely profitable F2P ones that would benefit greatly from an extra 30% revenue. Why then do they not target the web? My gut feel is that it's because mobile users are trained to look in the app store for apps and games, not the web, while desktop users expect apps to be available in the browser with the exception of some professional tools and high-end games. That is to say, it's largely a cultural problem. Of course, Apple's lackluster support or PWAs doesn't help.

rchaud
0 replies
1h23m

Uber had an excellent PWA, m.uber.com.

I used it for years, but it didn't seem to work right on a new phone, with some UI elements not visible or off-screen, so I went back to the app.

pmarreck
0 replies
1h31m

Uber could have been coded to a PWA just fine. Parent comment is simply unknowledgeable.

It's funny because the very first thing that Steve Jobs pushed when the first iPhone came out was PWA's, essentially, and not an App Store, which didn't exist yet... and the same API's are still available in Webkit I believe

mplewis
0 replies
1h28m

Uber provides features like push notifications and Dynamic Island support to users. Web Push only became available recently, and it’s only available if you install the web app to the Home Screen.

depressedpanda
0 replies
17m

Of course, Apple's lackluster support or PWAs doesn't help.

Holding the web back is entirely intentional and makes strategic sense from Apple's point of view. They're well aware that a majority of apps would work perfectly fine as web apps -- but that also removes Apple from the equation. Only allowing Safari on iOS and intentionally gimping it solves the problem.

I mean, I can't even blame them. Can't lose out on that sweet 30% cut, y'know?

I'm only disappointed that legislation took this long to catch up to their shenanigans, and only in the EU.

ajross
0 replies
59m

I understand Drive working better as a native app; it needs to be able to provide a virtual filesystem to the OS and do background syncing and such.

That's a circular dependency though. You want that stuff because you want to use Drive with native apps and not web apps. But Drive is a first class backend (actually even more featureful, frankly) to web apps too. Basically the native Drive client is for native/legacy interop, not a barrier to a PWA future.

throw156754228
3 replies
2h15m

So tired of junk apps cluttering up my phone and tablet. Examples: There's a parking station near me that has an app, the library photocopier has an app. Could all be done on the web.

aronhegedus
2 replies
2h13m

I also don't understand why a parking meter needs an app, it should have a QR code>web>stripe payment (or a text to pay), rather than 2 buggy apps on iPhone and Android, which require data to download

mistrial9
0 replies
2h7m

it is "surveillance capitalism" -- they want names and contact info for "their customers" .. this is a serious sickness in the modern times IMHO

bonyt
0 replies
2h9m

I’ve heard stories of people putting fake QR codes linking to fake payment portals for parking. I don’t think an app solves this problem though.

https://www.schneier.com/blog/archives/2022/01/fake-qr-codes...

dtagames
25 replies
2h7m

This author seems confused about something that he, himself explains. The reason that Apple doesn't care about developers is that they have created such a walled garden cult w/ users that developers are forced to produce products for their platform or they lose half their market -- or more.

At my day job in mobile game development (for a small studio inside a large company), we have to fight Apple constantly -- not only on tech issues but on policies and approvals, too. But offering a mobile game without a way to run it on iOS would be unthinkable, so we comply.

In many ways, Microsoft's original strategy for the PC was the exact opposite. It catered to developers and provided copious documentation, examples, and tooling for devs. The companies behind those devs were, themselves, motivated to make software for MS and, in turn, to promote and sell it. The tidal wave of individual developers making Windows software (think back to the shelves at computer stores) is what created the desktop OS that still rules the roost.

ahmedfromtunis
12 replies
1h49m

I think this is because Apple is a hardware company, that uses software to attract consumers. While Microsoft is a software company, that uses hardware to attract consumers.

oneplane
4 replies
1h30m

A better way to describe their differences is that Apple started as an end-user company (and became a services company while at it) where hardware was a means to an end. The products they sell are based around an experience rather than just a bag of components/parts, as those are just the means to an end. It's why their design envelope is the way it is, and why the kept vertically integrating more and more over the decades. In a way, that's where the IWM and SWIM came in so long ago, not because they had to, but because it delivered a better solution to that specific experience than anyone else. (granted, back then using a computer had a very different meaning than it does today but the reasoning still applies)

Microsoft on the other hand is a typical SKU-mover, their business relies on selling 'parts' of someone else's workflow, but later on realised the only way to have a consistent experience is to also start making the hardware. Later on, they tacked on services, but because they kept the "spray the market with SKUs" business strategy it mostly just became 'more', rather than better integrated products for people. It's still "move as much stuff", even if it's not well-integrated. Heck, sometimes it is less-integrated because it enables moving more stuff.

At the end of the day, most large tech multinationals end up manufacturing a lot of stuff over the various layers (hardware, software, firmware, entire devices, individual components etc), but that no longer describes what the company actually "is". (just like it doesn't really describe much to group them together as "commercial money makers", it isn't very specific or useful)

mlhpdx
2 replies
1h16m

Microsoft on the other hand is a typical SKU-mover

As far as I can tell there is nothing typical about Microsoft. The sophisticated, deeply-root long game they’ve executed extremely well puts them in a very different place. As a contrast to Apple, the differences are striking - not because of the difference between “bing” and “bling”.

wslh
0 replies
49m

This. The Microsoft long term business execution is amazing despite their resources involved in zillions of failed projects and acquisitions, and some horrible apps (e.g. Teams). It doesn't matter they are a success anyway. Other companies would be buried much before that. Always recommend the book Hard Drive (just in a yesterday's thread) [1]. I need to not forget to add now "Idea Man" [2] by Paul Allen, Microsoft co-founder. It shows that the young Bill Gates was already a Titan.

[1] https://news.ycombinator.com/item?id=39243044

[2] https://www.amazon.com/Idea-Man-Memoir-Cofounder-Microsoft/d...

oneplane
0 replies
0m

Their throw as many SKUs at the market and see what sticks model is very typical. That is not uniquely microsoft and is very common in broad supply enterprises.

The only thing that is unique about microsoft is being in the right place at the right time, making the right B2B licensing deals and entrenching for decades because of it. Operating systems, window managers, filesystems, graphics, SDKs, IDEs, it's all been done before (and after) at equal, better and worse quality levels.

Their broad catalog is somewhat unique in having more SKUs that don't work well together (or at all) vs. ones that do, but the same applies to IBM and Google for example. And the things that do work well together tend to be based on technologies that have little to do with the company itself (like WebDAV and Kerberos), and that's not unique to Microsoft either.

The sophistication is in their business and SKU broadness, not in making proper end-to-end vertically integrated user experience that make people happy.

jsjohnst
0 replies
1h19m

In a way, that's where the IWM and SWIM came in so long ago

I’m going to assume based on minimal context you are meaning the 40 year old floppy controllers?

Since these acronyms are fairly obtuse / not well known…

IWM - integrated woz machine https://en.m.wikipedia.org/wiki/Integrated_Woz_Machine

SWIM - replacement for IWM which supported the SuperDrive

clarkmoreno
4 replies
1h38m

Re-read that. Microsoft uses hardware to attract customers?

rplst8
1 replies
1h4m

Yeah I don't agree with that assertion either. Microsoft will produce hardware to show the art of the possible with their software. It largely comes out of a situation where the PC/device manufacturers were doing a sh* job of it.

dragonwriter
0 replies
53m

Hardware manufacturers that aren't Microsoft have little reason to take speculative risks that might prove that there's a market for a new configuration of commodity hardware to sell Microsoft’s latest non-commodity software; it's all potential downside with very little potential upside.

ysavir
0 replies
1h26m

I don't know the GP's intention, but I'm guessing it's that MS's actual products are all software (Windows, Office, etc) and the allure is that they can be sold on/come packaged with relatively cheap and available computing. Compare to Apple, where they primarily sell hardware, and use software (whether their own or 3rd party) to make that hardware desirable, especially at high price points.

yoav
0 replies
1h16m

Everyone universally loved the zoon and the windows phone.

medstrom
0 replies
1h37m

That's an old saying. It's not so clear-cut now.

coffeebeqn
0 replies
1h39m

Apple is a vertically integrated company. They offer you (in theory) everything you need for computing

mvdtnz
3 replies
1h9m

I have been writing software professionally for 15 years and I have never written a single line of code for an Apple device, and I never would. Contributing to the Apple ecosystem is a choice, no one is forced to do it. Any developer who contributes to the Apple ecosystem is taking an active part in the situation.

Rohansi
2 replies
1h2m

Unfortunately for mobile games iOS tends to be where the majority of the money is.

lcnPylGDnU4H9OF
0 replies
23m

Where are all the good iOS games? I don’t know if I’d be able to name more than a handful[0]. How many people are making -- and similarly monetizing: upfront cost sans micro-transactions -- things like Mindustry?

0: Mindustry https://apps.apple.com/us/app/mindustry/id1385258906 and two more which are available with an Apple Arcade subscription, maybe also for individual purchase: Dandara https://apps.apple.com/us/app/dandara-trials-of-fear/id15761... and Fantasian https://apps.apple.com/us/app/fantasian/id1517339045.

criddell
0 replies
25m

I don’t think it’s just games. iOS users in general are more willing to pay for software than Android users and Android users are more willing to pay than web users.

asimpletune
1 replies
57m

Apple doesn't make developers do anything. Developers write apps for their platform because it is the one where consumers want to spend their money. They do this by being mean to developers, or, rather, not allowing developers to be mean to customers. It's the same way that apple leans hard on their suppliers but at the end of the day it has led to creating a healthy and wealthy ecosystem that those developers and suppliers still seem to contribute apps to.

mouzogu
0 replies
7m

not allowing developers to be mean to customers.

apple has a history of denying apps for monopolistic reasons & collusion price fixing : https://apple.fandom.com/wiki/Criticism_of_Apple#Restriction...

t's the same way that apple leans hard on their suppliers but at the end of the day it has led to creating a healthy and wealthy ecosystem

yes, like using child labour and working environments that require suicide nets: https://apple.fandom.com/wiki/Criticism_of_Apple#Student_and...

LibrePenguin
1 replies
1h23m

Apple users deserve the abuse they get from Apple directly and indirectly.

Every anti consumer decision and design Apple makes is justified by their fanboys followed by giving them more money.

Apple tax will be passed on to customers and they deserve it.

skydhash
0 replies
57m

I take more abuse from developers than Apple in the majority of cases. But I agree that some of their decisions is overreaching. But most developers have bad intentions especially with telemetry, privacy invading measures and dark patterns. Apple offers a safe place for those with simpler computing needs. Other ecosystems are worse for them.

ysavir
0 replies
1h28m

This feels like a different situation than the article author. My impression is that they were concentrating on services where mobile is just one point of access, but make sense in any scenario. Stuff like social networks, dating apps, reddit, stackoverflow, etc. Services that don't depend on the mobile experience whatsoever, unlike, say, Uber, that requires location tracking, or mobile games, which are often designed to be played on the go.

If a business doesn't depend on the mobile experience, then they are still able to offer their services without offering a native app. People on mobile can still access the service through a mobile browser--perhaps not the ideal experience on mobile, but it is still an option. And I think that is the author's point: If there isn't a necessity or dependency on the mobile platform, don't build for it.

ip26
0 replies
1h44m

Your description is basically aggregation theory in practice.

dpkirchner
0 replies
1h37m

What sort of mobile gaming related things have you seen Apple push back on?

WarOnPrivacy
0 replies
1h41m

This author seems confused about something that he, himself explains... they have created such a walled garden cult w/ users that developers are forced to produce ...

In the presence of a cultish relationship, I think a persistent sense of puzzlement is reasonable.

Quothling
18 replies
2h55m

I once had to setup an Apple developer account to have one of our municipality apps shown as ours. I'm not sure why that was considering all our other apps never needed that, but it was what it was. It was a pretty terrible experience. First I needed an Apple account, and since I didn't really want to use my private one, I needed to create one for work. I couldn't create an "organisation account" so it was tied to me. Luckily we had an old iPhone waiting to be thrown out, so I could use that. Then I had to wait for days to have Apple confirm who I was, but this was basically just Apple calling the person I had listed as my boss and then having him say yes. I hope they did more research than that, but I'm not sure they did, and the people who called us were even worse at English than us so it was hilarious to say the least.

Then we had to set up payments, because for some reason you need to pay money to have an Apple developer account. Whatever, in the budget of an entire city of 60.000 people, that's not even going to show up anywhere, right? Well... Since it's a foreign subscription and since Apple has no way of doing this as a B2B purchase that can be easily registered with our local tax agency, it had to go under yearly reviews. It was also only possible to pay with a credit card which again tied it to something the organisation would need an actual person to renew and since organisational credit cards are tied to people, and since people change jobs, and since you need to be in actual human contact with Apple to change owners... well you can imagine how much fun that was.

This was some years ago, so maybe things have changed, but out of any of our 300+ enterprise IT solutions that I ever worked with, Apple was the only one that was this horrible. To be fair, I'm a developer, I'm not sure how I ended up with the task and maybe these things are simply more common in the operations side of IT than I know.

coliveira
15 replies
2h48m

This was some years ago

This is probably worse today, they're all the time throwing more roadblocks to avoid people to publish apps in their "ecosystem", except if you're a large US company that can easily handle the paperwork.

bmitc
14 replies
2h42m

I have never understood how Apple gets away with it and even more than that gets a huge amount of love. Whereas, if Microsoft just looks at you wrong, pitchforks are out. I'm not cheerleading any company here, but it has been frustrating in my career where people absolutely refuse to touch or even consider anything Microsoft related but love their Apple computer. Apple is probably hundreds of times more agressive, more stubborn, and moat building than Microsoft. Microsoft's dev tools are some of the most open in the world for a big company, certainly more so than Apple and Google.

bitwize
6 replies
2h13m

Apple's entire stock in trade is "computing as it should be". Their stuff is the coolest platform ever to exist, which means that developing for their gear is like getting into Studio 54: only the hottest and coolest are allowed in, permitting anything less would tarnish the club's reputation. Which sucks for most devs but it's part of being the coolest.

Microsoft just wants to dominate. They don't care if the UX is garbage, as long as the user doesn't have a choice.

realusername
3 replies
1h43m

only the hottest and coolest are allowed in, permitting anything less would tarnish the club's reputation

It's kind of a cult in other words, personally I'm not part of it and not afraid of blasphemy when I see stuff broken.

bitwize
2 replies
1h36m

It would be kind of a cult, if Apple products weren't more pleasant and joyous to use by far than any of the alternatives.

realusername
0 replies
1h35m

Experience is subjective I'd say, I certainly disagree with that after using the old iPhone of my wife for a year to not make more ewaste. I found the whole thing buggy and confusing, I finally got rid of it after an error loop when installing apps meant that I had to format it again to fix it.

I'm sure most users do love it though, to each their own. There's certainly enough space for all kinds of products and all kinds of consumers.

bigstrat2003
0 replies
24m

They aren't. I find them worse by far than any alternative.

smoldesu
0 replies
2h9m

Which sucks for most devs but it's part of being the coolest.

What if we determine that the "coolness" motivation is a scapegoat for anticompetitive behavior?

AT&T could have argued the same thing but I'm not sure if the coolness of their infrastructure would have saved them from a breakup.

rchaud
0 replies
1h15m

This sounds it's coming from 2006 when we would laugh at the mess that was Windows Vista.

Only the hottest and coolest allowed in? Let me share the good news with the thousands of developers making Bible apps and Clash of Clans clones.

javcasas
2 replies
2h8m

Whereas, if Microsoft just looks at you wrong, pitchforks are out.

Not to nitpick, but Microsoft looking wrong at you is more like the Eye of Sauron looking wrong at you.

Just pointing to the gigantic amount of dark patterns on Microsoft products, especially Windows.

bmitc
1 replies
1h42m

Apple's iOS and macOS have very similar dark patterns, but they go unmentioned. Yes, Windows has been making some really bad decisions with the Windows and Edge products, and it is really annoying. But at least their dev tooling is top notch, and you can easily interact with actual Microsoft employees in their repos. It's a nice experience.

javcasas
0 replies
1h28m

Apple's iOS and macOS have very similar dark patterns, but they go unmentioned

So you agree pitchforks should be out both for Apple and Microsoft.

Count me in.

hnfong
1 replies
2h33m

As an Apple user, the experience is generally fine, especially when compared to Microsoft.

Most of the complaints about Apple seem to have come from devs. And in contrast, Microsoft [in]famously loves developers (Balmer on stage...)

bmitc
0 replies
2h17m

I was an Apple user and even fanboy for many years. I left because they ignored macOS and then started making it iOS like. I have far less issues on Windows than I do on macOS.

Apple sucks dealing with anything that doesn't have their name on it. External monitors have terrible support because Apple refuses to implement a specific protocol making that nice, like everyone else does. You basically have to use Apple's monitors or their overpriced officially supported LG monitors they sell in the Apple Store if you want an integrated monitor experience. Several other issues with Apple exist with peripherals. I have to make special router settings in my home because my partner's work Macbook can't switch between the mesh network. My partner also had to get IT to give her admin access so that she could rename iTunes because it was the only reliable way to keep iTunes from opening every time her non-Apple Bluetooth headphones connected. Search about what it takes to rename an app like iTunes. It is literally insane.

pmontra
0 replies
1h0m

how Apple [...] gets a huge amount of love.

The wind is changing.

If somebody dared to write a comment on HN criticizing Apple in the 10s, downvotes rained down on that comment. HN's policy is to downvote to express disagreement, among the other things.

That's not been the case anymore since a few years. This very thread would have been nearly impossible 10 years ago, maybe 5 years ago too.

bigstrat2003
0 replies
23m

It's because Apple doesn't have users, they have fanboys. Apple customers aren't there because of the quality of the product, they're there because they've been convinced that Apple is cool.

rstephenson2
0 replies
22m

If you were doing it today it’d probably be much easier from the enterprise procurement side. They often give out single-use virtual card numbers per service now.

realusername
0 replies
2h42m

It's still the same, I had some error loop on the iPhone when setting up a developer account and their support just didn't understand what's going on until something like 6 months after, it somehow worked suddenly.

It's as random as ever, it might work straight away or you are unlucky and hit some of the random bug in this process and it'll fail for a long time

dickersnoodle
8 replies
2h5m

Go ahead and write "code for the web" but be prepared to have to choose among a bunch of different JS libraries and CSS design systems depending on who the CTO is for your organization and who has their ear; writing bare-metal HTML/CSS and minimal Javascript won't get you far with the C-suite and you'll be pulling your hair out trying to get things to play nicely with each other (or wind up digging through five or ten <div> layers to find a DOM element you need to augment).

65
2 replies
1h41m

Huh? If you don't want to write bare HTML/CSS/JS you can use one of the many frameworks that make writing web apps easier. Even if you hate React or Vue you can use Alpine. If you really hate Javascript you can use HTMX.

The web has the best tooling out of any platform because it's the biggest platform. It also has the best documentation... because it's the biggest platform.

I don't know what your point is, that web development is hard or complicated? Writing web apps are way easier than writing iOS apps.

mattgreenrocks
1 replies
57m

Web tooling is still not great.

It’s still too low-level. We shouldn’t be writing div over and over with different interacting class properties. Something like SvelteKit’s level of frontend/backend integration feels 5 years too late.

Ultimately it seems like the web ecosystem gets trapped in local maxima (“put JS in everything!”) and really seems to avoid actually creating useful, productivity-enhancing primitives. And that comes from loving the trinity of web tech so much you cannot imagine life without them.

65
0 replies
52m

We shouldn’t be writing div over and over with different interacting class properties.

This is why we have frameworks like React with components, so you don't have to do this.

Even if you don't want to use a framework, you can use Web Components which allow you to create "productivity-enhancing primitives".

aniforprez
1 replies
1h35m

I would, a million times, pick writing web apps over interacting with Xcode in any capacity or deal with the proprietary project formats or deal with git in an iOS app project or debug the arcane errors that xcode spits out. Drilling down to figure out where a div is that I need to change is child's play in comparison. You are citing imaginary problems. CSS-in-JS is not that bad and, given the choice, you don't even need to use it. In contrast, you have no choice but to use Xcode and Apple's incredibly poor DX to ship to iOS and I do not want to suffer that

mdaniel
0 replies
1h8m

And I hate Xcode as much as the next person, but that's not even getting into the dumpster fire of trying to have CI/CD pipelines for iOS or macOS artifacts. I am aware that both GitHub and GitLab are now offering macOS runners, and AWS has macOS instances, but it's still "not the same" and is one more innovation token to manage

julianeon
0 replies
56m

I feel like a lot of these answers come from a circa-2010 understanding of JS, that haven't updated to the present.

By analogy, if we answered this way about mobile phones, it'd be like someone asking 'how should I do mobile development?' and someone else responding 'good luck, you have to pick between Windows phone and Blackberry and Palm and iPhone and ...'

In 2024, that's easy: you develop for iPhone and Android, and if you have to pick one, make it iPhone. Simple.

Similarly, for JS, you pick React Native. It's dominant and the alternatives are like infinitesimals - so small you can ignore them.

"What about..." Again, you're thinking of the options that lost. It's 2024, React Native won. So you just use React Native. It's not complicated.

jahewson
0 replies
1h34m

C-suite is too busy migrating to yet another database to worry about frontend.

gymbeaux
0 replies
4m

Echoing what others have said - Xcode is worse than all of that.

BuyMyBitcoins
7 replies
2h15m

Years ago I decided to delve into learning Swift and native iOS development. I simply could not get accustomed to using XCode. The UI/UX of XCode is atrocious in a way that I’m struggling to articulate. I found myself constantly opening and closing panels just to click on icons that weren’t intuitively grouped together. To open one panel would forcefully minimize the other. It’s like a tenth of my time was dedicated towards “panel jockeying”.

I got the sense that Apple’s designers wanted to make an IDE that was visually pretty and minimalistic, not one that was low-friction for the developers. But IDE’s aren’t supposed to be minimalistic, they should be allowed to be as customizable and cluttered as each individual developer would like, according to the needs of what they trying to build.

Imagine a physical garage workstation. Whereas Visual Studio would let me make my workspace as cluttered and customizable as I would want, Apple would insist that I put each tool back in the box before grabbing the next one. This is what I mean about panel jockeying.

I’m curious if other developers feel the same way, of if my analogy makes sense.

biddit
1 replies
1h40m

This really speaks to me and is exactly what stopped me from my multiple attempts to get into native Mac/iOS development - the IDE. Your assertion of form over function has helped me articulate what I hated about xCode - so thank you for sharing.

I've been in the JetBrains ecosystem for over a decade now and while there are faults, I've never felt that JetBrains wasn't designing their IDEs to work how I wanted them to work.

abroadwin
0 replies
1h7m

I'm sad that AppCode is being abandoned instead of updated for the new SwiftUI world.

yellow_lead
0 replies
1h27m

I would agree. Most times I look for something simple to find in other IDEs (Build Output, Project Settings, etc), I get lost easily and have to search Google on how to open that pane.

saintlunaire
0 replies
1h10m

I agree. Another thing I really dislike about XCode is the error/warning messages – you stop typing and wait with bated breath for them to appear, only for them to be positioned over the very line of code you’re trying to debug and can no longer see.

jwells89
0 replies
35m

Really depends on development style and what you’re used to, IMO.

Xcode doesn’t bother me at all while Android Studio, which is built around the vaunted IntelliJ, is constantly getting on my nerves. Visual Studio (the IDE, not the editor) is similarly frustrating and has odd restrictions to boot (I can’t use italics in syntax highlighting? Why??).

This goes for editors too. I find VS Code mildly irritating in ways that Sublime Text and TextMate aren’t.

jahewson
0 replies
1h40m

Everyone feels this way about Xcode, right? It’s a relic of the 90’s.

airstrike
0 replies
1h44m

IMHO XCode is both great and terrible. I miss it when I'm in vscode, but I also hate it when I'm in XCode, if that makes sense?

It's like a heavy IDE of yore, which means the more you comply with it, the more you'll enjoy it—but that also leaves a feeling that you're not really in control.

It's definitely worse than it could be if Apple cared enough to make it half as snappy as vscode feels. The shitty support for vim keybindings alone makes me furious (e.g you can't redo most actions like "c" or "r")

Finally, I'm not sure if you were using SwiftUI back then or if you were fighting with storyboards in UIKit. The latter is an ATROCIOUS experience I wouldn't wish upon my worst enemy. SwiftUI in comparison feels like the future, even if it's still in its early days and some stuff needs to be ironed out

sspiff
5 replies
2h9m

The dependency goes Developer -> Apple and Apple -> Consumer, there is no reverse arrow from Apple to the developers.

Is that really true? If Apple is abandoned by large developers (let's say of Adobe, Microsoft calibre), does it not harm their sales or revenue?

It certainly isn't universally true. For young or new platforms, like the transition to ARM a few years ago, or the Vision Pro today, Apple needs developer adoption to be successful.

Of course, it's existing success on other platforms almost ensures a certain degree of developer engagement with their new products.

djbusby
1 replies
2h4m

Apple can make a new thing, while others (and the web) are playing catch-up. There are no open-standards for this VR road (yet (a-frame?)). These vendors will continue to "innovative" on their closed platforms.

smoldesu
0 replies
2h2m

There are no open-standards for this VR road

There's a few, actually. WebXR is supported by Safari but coverage is supposedly really weak: https://www.roadtovr.com/apple-vision-pro-webxr-support-safa...

There's also OpenXR for native applications, which the Vision Pro does not cover. That's where the closed-platform "innovation" is happening, supposedly.

singron
0 replies
2h3m

If a developer pulls out of Apple, the developer loses half of their mobile market, and Apple loses a single customer. I guess if you got all developers to leave Apple, and then all iOS users switched to Android, then it could hurt Apple more than developers, but that's probably not happening.

berkes
0 replies
1h49m

I doubt it is true.

Apple's recent malevolent compliance with the EU anti-monopoly rulings, show that Apple at least cares a lot about the money these developers have to pay Apple (fees etc).

andrewfurey2003
0 replies
1h28m

"They care for and need to collaborate with corporate dev “partners”, but that's different."

lagniappe
5 replies
2h57m

Apple users are conditioned to pay for things. Apple applications have higher buy rates than other platforms because outside of HN the average Apple user is less capable and less likely to pirate or need "Free" to entice their attention. I don't think anybody writes software for Apple thinking that they "care" any more than Google or Microsoft.

mrweasel
1 replies
2h27m

Apple users are conditioned to pay for things.

Not that I entirely disagree, but that doesn't seem to be consistent with the complaint from app developers that they are unable or barely able to cover their development cost from app store sales.

skydhash
0 replies
35m

Everyone is conditioned to pay for things. Either in the form of taxes or directly. Everyone is used to recccurent payments (internet, electricity, water,…). Google, Facebook have been the biggest proponents of software in exchange of your data instead of money.

jahewson
0 replies
1h48m

the average Apple user is less capable

Do you actually have any evidence to back up this claim? I’m assuming the real reason is because the average Apple user has a higher income than the average non-Apple user.

brookst
0 replies
2h37m

Same concept with more charitable framing: Apple has built an ecosystem where users don’t want to mess with tech and are willing to pay for value.

But yeah, there is no morality here, it’s just business.

aetch
0 replies
2h50m

Most users are incapable, that’s why they’re buying and using other peoples software. How much is your time worth? Apple does happen to capture the market of users that are able to pay more to save more time, though.

jwells89
5 replies
43m

The web is great in theory, but the bare-bonesness of the browser environment makes it an exceedingly unappealing platform for apps specifically when you’re used to developing with a throughly batteries-included experience like you get on Apple platforms.

Where on macOS a highly capable, polished app can be easily be developed with a list of dependencies and sub-dependencies that can be counted on a single hand (and with a little effort, none at all), the equivalent web app has many tens or hundreds because of all the feature gaps needing filling in.

For example, I don’t see why browsers can’t furnish basic list and table views that are capable of efficiently recycling their cells without any (or extremely minimal) JavaScript. It’s not unusual to need to be able to scroll through hundreds or thousands of items without causing the device to chug or run out of memory, and that’s handled nicely out of the box in AppKit, UIKit, SwiftUI, Android Framework, Compose, and probably even Flutter (haven’t checked) but in the browser you’re either pulling in a library or writing custom code for this very basic capability.

And that doesn’t even get into the package management and general tooling situation, where the same fundamental problems doggedly persist even as solutions come and go.

deadbabe
4 replies
35m

What’s wrong with Javascript

vorticalbox
0 replies
31m

Nothing really but lots of it is not a nice experience.

lta
0 replies
24m

What is not ?

jwells89
0 replies
27m

It’s not JS itself that’s the problem, it’s the need to write it to fill gaps in browser facilities. Rather than there be 10k different implementations of a scrolling recycler list of wildly varying quality, there could just be one in each browser engine that web devs can rely on, allowing them to instead focus on writing application code.

bsimpson
0 replies
0m

The web was originally a document sharing program for academics. JavaScript was never a "batteries included" language because the web wasn't built as an app platform.

It evolved into one, and the platform has improved for app development with things like modules, but it is still part of an ecosystem that expects the developer to bring the app framework. Custom Elements tried to solve this, but React came and solved the same problem in a more ergonomic way. So now, we're in the same place: apps are built with open source stacks like React where you have to bring your own toolkit because the browser doesn't make assumptions about which one you're using.

The web is a lot like Linux: it evolved as thousands of developers try thousands of different ways of doing things. Some of those things are great and become de facto standards, but it's an ecosystem you can't manage top-down.

If you've ever worked at Google, there's a famous internal deck about how decentralized ecosystems evolve like an amorphous slime mold. It's written in the context of Google product management, but it applies to things like Linux, and the web too.

coliveira
4 replies
2h42m

Writing for the web would be great if you didn't have to learn a new framework every six weeks because people will not stop coming with new ways to do the same thing over and over again.

righthand
0 replies
2h37m

Not even new ways, just old ways repackaged and reorganized based on a developer’s ability to get 15 minutes of fame.

pacomerh
0 replies
1h9m

I haven't needed to learn a framework in 5 years. What you're describing is FOMO developer, which is not a good idea anyways.

marcosdumay
0 replies
1h45m

You don't have to do any of that. The older options never go away, and don't stop working unless they are so complex that they require a working npm-enabled requirements solving. (But then, if they do that, they are best avoided anyway.)

javcasas
0 replies
2h0m

Just go with react bro... Now seriously, React has been working fine for 10 years. If you need to chase something different every 6 months, I'm inclined to say you are doing something wrong.

DotaFan
3 replies
2h15m

Native stack is tailored for native devices, using web for that is just not as reliable/maintainable/cost efficient in my opinion. Sure, you can have less devs to support both platforms, but as soon as you need some hardware functionalities, you're not gonna have much of an options, besides what web tech libs you have in the store.

berkes
1 replies
1h53m

But a surprisingly large amount of apps don't need hardware functionalities or could easily provide (most of) their value without them.

Sure, some high end games. But they're more an exception. What other app are you thinking of?

DotaFan
0 replies
1h44m

This is true, if it's basic app I'd certainly recommend web technology. But it's also true that clients many times don't know what they want and where they're heading. So, before we decide on tech, I do analyze with my clients what are their plans for the future with the app. It does pan out many of them would like to have notifications, storage, camera, offline..

ederamen
0 replies
1h57m

Agreed, but it's because Apple has deliberately and relentlessly sabotaged PWAs as a competitive option.

If it were in their financial/competitive interest for PWAs to be amazing on iOS, they would be.

Unfortunately for us this would circumvent their 30% app tax, so they'll be dying on this hill.

mark_l_watson
2 replies
2h42m

I like the author's healthy attitude towards large corporations - basic modern survival skill.

If I had my way, I would not have to install any apps on my iPhone or iPads but platform limitations make this a requirement. I noticed that on Safari, the X/Twitter web app is not playing videos, even after I turned off Lockdown Mode for X. Is this Apple's fault for a platform inconsistency or X trying to force users to install their app? I would like to know.

I specialize in deep learning and LLMs, but I have also always enjoyed web development. What holds me back is how complex the tooling is. That said, someone I know has been writing a lot about ClojureScript + Dart so maybe I will give that a try. I would like to find a simple stack for web apps that I could learn in a few days and that was well supported. Any suggestions?

jahewson
1 replies
2h14m

ClojureScript + Dart

Ignore people who write about finding the perfect stack. The perfect stack does not exist and it is not requisite for shipping great software that real users value.

Much of web development consists of knowing the browser well, and web.dev is a great resource for that. Beyond that just go and learn React + TypeScript, the new react.dev is great. While React is not perfect it’s such a good paradigm for creating UI that even Apple copied it when they created SwiftUI. Grab yourself Vite and get coding.

The number one thing that I would recommend is to really go and study those resources. Start from page one of the docs and work your way through. There’s not much that you’re going to learn in a few days though, frontend work is hard for a good reason.

mnvrth
0 replies
2h3m

I would second that. Frameworks are secondary. React + TypeScript was the key (for me at least). After that it is just learning web standards - starting with CSS, HTML, JS - and then moving on to Canvas, WebAudio etc if one desires.

dartharva
2 replies
2h58m

Just here to praise the literary quality of the article. It is quite well-written and has a lovely flow, especially as tech-based blogs go.

mnvrth
1 replies
2h55m

Thank you for saying that! Such feedback is very encouraging, much appreciated :)

WarOnPrivacy
0 replies
58m

I think some of the processes you include nudge your presentation in a positive direction. ex's:

     Google is an example where I never grieved much because I understood the dynamics ... With Apple I didn’t understand the dynamics.

     The point where I disgustedly gave up was when I found out that while I was jumping all these kafkaesque hoops, instead you could just go to Apple's own web music player, type MusicKit.getInstance().developerToken in your browser console, and you’ll get an unrestricted root token for free! 
Eventually, this is what getting-to-usable-tech looks like. I think it gets withheld from the narrative because

1) people wrongly heap damnation on wrong roads and

2) some folks who missed some particular wrong road will demean those who ran into it.

And there's this...

     This realisation has made me happier since I now know my place. I can like their products without wanting to develop for them.
...which neatly defuses some (pointless) stigma tied to helpful errors & failure. I think it makes healthy thinking more approachable.

akkad33
2 replies
2h8m

What's the most beginner friendly framework for web app development that is lean and not bloated like angular

w4
0 replies
1h34m

IMO if your goal is to get up and running fast as a single developer I would suggest that you pick a battle-tested server side framework in a language you already know (Django, Rails, Flask, Laravel, Play, Express, ASP.net, whatever), and use HTMX or its equivalent for the framework you’ve chosen (Hotwire for Rails, Livewire for Laravel, etc.) along with vanilla JS and either Bootstrap or Tailwind for CSS. Keep it simple.

On the other hand, if your goal is to make complex interactive apps, or if you do not want to to launch apps yourself and instead want to be more employable by midsized or large companies, pick up React.

65
0 replies
1h40m

React/JSX is the easiest to read and comprehend. I find it a little more intuitive than Vue. If you want something simpler I would suggest Alpine. If you want something even simpler than Alpine I'd suggest HTMX.

wackget
1 replies
1h1m

It was obvious to me that Apple doesn't care about developers the moment I learned that they charge a $99 per year fee to open a developer account.

I refuse to pay a company so that I can contribute value to their ecosystem.

CharlesW
0 replies
40m

The point of the article is that you, as an individual, don't contribute to their ecosystem — that "Apple has no dependency on individual developers".

The way that Apple cares for developers in aggregate is by keeping the ecosystem vibrant. This means giving developers what they need, but not necessarily what they want. It means that when it comes down to what developers want vs. what users (like the author's mom) need, users win.

$99/year is nothing in terms of development costs, but even that token amount will generally keep out the Apple fanboys who just want to download iOS developer releases and should not be let into the developer party.

therealmarv
1 replies
2h16m

I'm deeply worried that this new Apple Vision Pro will get successful and there is no real competitor or openness.

dns_snek
0 replies
2h5m

At the end of the day it's "just" a display, a few sensors and cameras strapped to your face, it's not exactly rocket science. Quest 2 gets you 80% of the way there for 1/10th the cost, and if VR/AR become widespread, there's probably going to be a few dozen companies that will compete on hardware.

VR currently suffers from a chicken & egg problem. There isn't a ton of investment in software & hardware because the user base is relatively small and vice versa. Once that changes, other hardware manufacturers will follow.

squigglydonut
1 replies
2h8m

Having been in apps for the past 10 years I am not incredibly motivated to build for the web. PWA works, has local storage, and best of all no 30% profit sharing!

maxlamb
0 replies
1h44m

Isn't building PWAs building for the web?

quantum_state
1 replies
2h41m

This provides yet another reason for a FOSS phone platform.

fsflover
0 replies
2h32m

Which already exists. Sent from my Librem 5.

pjmlp
1 replies
2h54m

For everyone that comes into Apple as an outsider, specially after iPhone and OS X saved the company, I advise getting

"The Cult of Mac"

https://www.goodreads.com/en/book/show/1341309

Those are the developers and users Apple cares about.

macNchz
0 replies
2h10m

Obviously I can’t speak for others, but I was, for a long time, a part of this world (parents bought a Quadra as our first home computer in 1993, I had a colored iMac in 1999, I released a few crappy freeware OS X 10.2 “Jaguar” desktop apps as a teenager, had an early iPod and an early iPhone, shipped a couple of iOS apps, watched keynote livestreams, actively participated on the MacRumors forums etc etc), yet I have become increasingly frustrated with Apple’s approach and have switched to using Linux on my primary (non-Mac) computer.

I don’t feel like Apple cares about my business in the slightest. Macs have become increasingly locked down in both software and hardware, and the level of control Apple wants over what end users can do with their hardware feels more onerous than ever. When that book came out, being a Mac user felt like being part of a fun community of oddballs (I was one of like 5 or 10 in my school of 600), which is absolutely nothing like today.

keb_
1 replies
2h17m

Reading this reminded me of two recent experiences I've had with Apple products, myself being solely a Windows and Linux user my whole life.

1. Friend gave me his old iPhone. I'm already happy with my current Android phone, so decided I would turn into a Retro emulation machine. I went to install Retroarch only to find that the steps for installing Retroarch on iOS is convoluted, doesn't allow auto update of cores, must be sideloaded with AltStore unless you have a jail broken phone, and apps installed with AltStore expire after 7 days if you don't pay $100/year to Apple for a developer account. I gave up and the phone is collecting dust in a drawer now.

2. Mom has an iPhone with 512GB storage that she filled with photos and videos. She's not keen on the iCloud pricing. No worries, I'll just back up her photos on her 2TB laptop I bought her a while back. Simple right? Just transferring files from one device to another just 2 inches away with a USB cord. Nope. iPhone won't give me access to those photos from her PC because it's Windows. Let me try the Windows photo backup tool... failed, crashes, and iPhone disconnects. OK someone told me I can backup photos using iTunes, lets get that started. Oh wait, Apple encrypts the files in some proprietary format when I back them up. Let me just use what iCloud storage she has, back them up in batches and... oh she has the free tier, 5GB. That will take ages and its damn ridiculous that I have to rely on a cloud middleman to transfer files to a device sitting literally next to the iPhone. OK my last resort, I'll install Syncthing... oh... no Syncthing for iOS.

What ended up working was a $5 app on the AppStore called Moebius that is just a wrapper around an outdated Syncthing. The most frustrating experience were the amount of people online whose solutions were "just pay for iCloud bro!” The entire reason I'm doing this is to NOT do that.

Anyway, after those two experiences, I swore off Apple products. Not for me, and apparently not for normal people like my mom either.

realusername
0 replies
1h14m

"just pay for iCloud bro!” The entire reason I'm doing this is to NOT do that.

Even if you do pay for iCloud you have essentially no way to know what's going on apart from owning a Mac or using iTunes.

There's not even a basic progress bar on the iPhone of what's being backed up there or not.

izietto
1 replies
2h16m

Google has a bug. I have dynamic light/dark mode, and if I search on Google at night, the first page shows up in light mode. [...] In the morning, my laptop automatically switches back to light mode. [...] The people like me who use alternate search engines like DDG have already moved on years ago. The rest of the (overwhelming) majority is stuck with Google.

You don't move from Google for this bug because there's an easy workaround: F5 (aka refresh the page)

mnvrth
0 replies
2h5m

I didn't move from Google because of this bug. I'm just using that bug as a (pretty symptomatic) example.

isodev
1 replies
1h26m

Writing for the web of today is merely changing one walled garden for another. We don't live in a state of "free and open web" - it's dominated by two ad companies controlling the browser and social aspects of it.

Some would argue that we should keep pumping browsers with native-like APIs to escape the "big bad App Store" while in reality this merely increases the foothold of Big G and their cousin Meta.

The issue is not how much Apple cares about developers (they do, because developers make Apple's ecosystem but this is a business relationship, not a friendship). In my view, the root cause is that the "happy path" of creating an app mandates choosing an ecosystem. For everything from tools to where you'd store your data and how you'd send push notifications - you have to choose which one of the MFAANGs you will support or else.

hu3
0 replies
52m

I don't understand this rationale.

Web apps can be used by many devices, mobile or desktop, iOS, macOS, iPadOS, Android, Windows, and Linux.

If web dominance changes I'm still left with an application that works everywhere.

How is that comparable to native applications that only work in the latest versions of a single OS?

The only reason web apps didn't dominate yet is because Apple can't force them to pay 30% of their revenue plus $100/year per developer license so Apple goes out of their way to nerf web app functionality.

Safari is historically lagging behind in implementing functionality to enable web apps.

gymbeaux
1 replies
9m

When I think about it, it astonishes me that there are people in the world who take Apple's developer tools, and make some really beautiful and useful iOS apps. I've tried on and off since high school and have never been able to do it. I started in high school with Xcode and Objective-C, which is a very difficult language to work with (being not that far removed from C/C++). When they moved to Swift I thought "okay finally, now I can make some iOS apps!", but Swift also proved to be a bit of a strange language, it's like the pendulum swung in the opposite direction- Apple was trying to cater to non-devs with it. So we ended up with something that was sort of like Python but still retained some elements from Objective-C.

Of course during this entire time span, Xcode remained a garbage IDE. That's probably the main hindrance for devs and would-be devs. Swift can be navigated, Xcode is a black hole of doom.

spacedcowboy
0 replies
2m

ObjC is not “a very difficult language to work with” by any means, and Xcode is fine - it’s not the absolute best IDE out there, but having tried several, it’s ok.

Honestly, having “enjoyed” decades of different systems, from the days of 8” floppies onwards, developers today are spoilt rotten, and still find things to complain about. Grumble, mumble, kids today, get off my lawn etc etc

dsign
1 replies
1h43m

Apple’s own music player was, and still is, unusably bad.

And here I thought it was just me. I really like Dolby Atmos in their airpods, and it seems that it only works with Apple Music. But Apple Music just doesn't click with me.

airstrike
0 replies
1h42m

Importantly, you also cannot uninstall Apple Music on Mac OS, forcing people to resort to (brilliant) things like https://github.com/tombonez/noTunes

codegeek
1 replies
2h51m

Sometimes, we forget how open the original web/www was and even today, how open it is overall compared to the "app ecosystem" monopolized by Apple and Google. Yes, there is "cloud" but nothing stops me from renting a server and hosting my own stuff. That didn't work out ? Np. Get it out of there and rent another one. Yes it may have "lock in" and not that easy but it's not impossible.

With the whole App ecosystem, you only have 2 choices and you are at their mercy. Literally.

I personally would never build an entire business around an "app". Never. I may have an app as a small supplement if at all and that too if my audience really demands it. I hate products that force an app on me when I am on a mobile device. No Thanks. Heck, bring back the whole m.website.com thing but I prefer to avoid the whole app ecosystem.

mdaniel
0 replies
1h10m

With the whole App ecosystem, you only have 2 choices and you are at their mercy. Literally.

And if it's the two I'm thinking of, one of them is a customer-service black hole with a ban hammer, so overnight one could find oneself in the "beg the front page of HN for help" camp for any reason or no reason

I say prayers that the new sideloading thing for the EU will inspire similar calls here in the US, but also I'm super cognizant that such a thing would require a sufficient mass of folks who know or care what "walled garden" or "sideloading" mean :(

cod1r
1 replies
2h40m

I really like the sights and sounds section on your website

mnvrth
0 replies
2h30m

Thank you! :) What has really made me happy recently is realizing the web now has at-par capabilities, and I can make all sorts of cool AV stuff that works straight out in the browser. It's heady really, the possibilities, I'm excited to learn more and make more of these.

charlie0
1 replies
2h14m

The $100 developer fee is very annoying, but understand it's there to add a small barrier to entry. It makes people think twice about whether they really want to launch an app on the app store and therefore stops many users from publishing junk apps.

mdaniel
0 replies
58m

And yet, also impairs enterprising folks from also wanting to kick the tires on an idea. I don't mean established software engineers, I mean some teenager for whom $100 is an annoying enough sum to be a headache.

I would guess the long and capricious review cycle stops a lot of junk submissions, not the $100. If my mental model is correct any such junk app would easily make back the $100 in spammy ads on every click

bowsamic
1 replies
2h3m

Unfortunately from a non-professional perspective, writing for the web is just soul crushingly boring and honestly depressing. I'd rather not be reminded that this is where the cross-platform development takes place. It genuinely makes me hate programming and I find negative joy in it

mnvrth
0 replies
1h42m

I feel sad that you feel like that, because it really isn't! Of course, different things work for different people, and you and I just might have different ideas of fun, but for me it's the opposite. I find great joy in writing web code.

I will give it to you though - the ecosystem is complex. It takes a while to figure out what works for oneself and what is just chaff. And there is a lot of needless complexity.

Anyways, my point here is - do try to give the web another try. Maybe it'll click, and you'll start having fun writing code knowing that you can send a link to anyone and they'll be able to enjoy what you've created irrespective of what device they're on, and instantly.

tailspin2019
0 replies
2h33m

To the degree that you can describe a company in general as such, Apple is one of the most arrogant companies I've ever had to deal with, sometimes as a customer, more often as a developer and very much so when I was involved with a partner in one of their many supply chains.

I think this is true at the same time that it's also true that they currently create some of the highest quality, almost perfectly fully integrated computing products in the world.

I have a real love/hate relationship with this company. I'm deep in their ecosystem, I don't really want to have to leave it, but I still see the arrogance bleed through and it pisses me off every time I notice it.

What this article describes - a seemingly widely perceived arrogance and disdain towards developers - isn't purely developer focused in my view - though I think they get the brunt of it. I think this is symptomatic of a wider issue. A cultural thing which is as deeply embedded in Apple as is their high attention to detail, technical excellence and sense of design.

I wonder if it came from Jobs himself - who, a bit like Musk, was by many accounts a bit of an asshole to those around him, but was also an extremely talented visionary, with that rare ability to pull together talented multi-disciplinary teams to help synthesise beautifully designed and - often - thoughtful products. (The current trend is against also thinking about Musk like this but I do think he and Jobs have a lot in common).

The high quality output of the company is either in spite of or dependent upon the slightly morally compromised and contradictory means of producing that output. I'm not sure which.

I often feel like I'm in a bit of an abusive relationship with Apple. I can't quite put my finger on it. They make wonderful things, which I often really really love using, but then in another moment they seem to manage to gaslight me in some way - making me feel utterly stupid for continuing to give them my money. Sometimes I think their products are literally unmatched and I focus on the fact that their attention to quality and innovation pulls the whole industry forwards, other times I just think I'm in their predatory ecosystem simply because they're the best of a bad bunch.

I think the thing the most annoys me with Apple is the disparity between the "perfect" public image they try extremely hard to portray - more than any other tech company - and the very obvious contradictory behaviour that can often be revealed just by scratching the surface.

//rant

solarized
0 replies
3m

The only reason why native apps is : Control !

they really want keep you inside their ecosystem. so they can control you as much as they can.

* they want you to pay the apps submission fee.

* they want your user payment subs processed within the ecosystem

* they want easily track everything.

they keep doing this hyprocysy to the web eco. while they really know: almost the problem in native can be solve under the web browser stack.

snyp
0 replies
2m

Web app developers which I also used to be once upon a time seem to some how miss always miss the point that making a web app and having them run on the desktop is not the same as having them run on a mobile device. The constraints for power consumption, memory usage and cpu time simply don’t apply on a desktop/laptop sized machine. It’s very easy to have a browser bee the biggest resource hog on a laptop if you have more than 5-6 tabs open with some big apps. Thats what these native mobile dev bashers seem to never get.

selimnairb
0 replies
1h19m

What hole has this guy been living in? It took him a decade to figure out who Macs are primarily for? Hasn’t that been known since 1984?

ricardo81
0 replies
31m

Quirky that DDG is mentioned as a Google alternative when it's a meta search engine. I'd hope the average developer appreciates that DDG isn't a "true" search engine as in, they don't have their own index of web documents.

rchaud
0 replies
1h24m

The problem is, I want to be able to run apps on my device entirely offline.

On Android, I can do that with web apps, because Android for the time being has "web server" apps that let you run a local Apache server. So if your application files are stored locally on phone storage, you can use the app entirely offline.

Anything similar on iOS?

ramesh31
0 replies
2h52m

There really is nothing like the web. Having spanned the gamut of native development, I can say confidently give me my HTML and CSS any day of the week. Concerns about framework churn and build system complications are nothing in the face of dealing with a locked down platform that simply will not allow you to do something you want to do.

nottorp
0 replies
2h10m

[quote]Ironically Google is the good guy here, they’re doing great work for the web. On the other hand, literally every single workaround I’ve had to write in the recent past in web related code has been due to Safari's princessness.[/quote]

There's no mention of Firefox or other browsers (except Safari because he hates it) so my conclusion is that 'for the web' means 'for Chrome'.

So it's not 'write code for the web because Apple hates you', it's 'write code for Google'. Doesn't look like such a good idea to me.

mlcrypto
0 replies
1h26m

Apple and their fans always represented peak arrogance to me. Idiots who would spend $1000 on a phone and $3000 on a laptop that had more bugs and compatibility issues with hardware and gaming than Windows. Only decent product they made was the iPod

ksec
0 replies
27m

I think this is beautifully written. Giving a lot of context as to "why" they way they are now. I even like it was tagged as "Rant". Which isn't really my standard rant at all. At least not "angry" rant.

It also capture a lot of things that I share. Especially post Steve Jobs' Apple.

With Apple I didn’t understand the dynamics.

The dynamics is very simple. Once you understand one thing. As a developer, the user using your App are not your user, they are Apple's user. Apple is granting you access to their user base. Another way to think about it is the App Store, Apple is sharing 70% you earned from Apple's user to you. Rather than Apple taking 30% from you. The first one implies Apple think that 100% ( or vast majority ) of those value belongs to Apple in the first place. While the second is Apple's tax on your value you created.

That is to say Apple treat its developer as an extension of their own. And ultimately only to serve Apple's user ( or Apple's interest ). This is not just on software but also on hardware. As anyone in supply chains working with Apple would understand this.

Apple’s own music player was, and still is, unusably bad....... think it is because the people who're making these apps were never around in the Justin Frankel era of Winamp.

I have been stating this since the dawn of Apple Music. If anyone remember, when Tim Cook launch Apple Music. It was all about the magical "Next Song". That is the modern day speak of AI knowing what the next song should be. That was the pitch from Jimmy Iovine on Beats Music, from a guy who thinks they have some of the best sound quality in the headphone market. Luckily the original "taste" of Apple's speaker quality didn't get diluted by this acquisition. Many thanks to those ex- B&W engineers. But iTunes was basically swallowed by Apple Music, or Beats. For some time Apple Music doesn't even have a loop for listening to the same song repeatedly. They want you to listen to the "Next Song". It was a platform primarily designed for New Music Discovery. Hence the Design is centred around Radio and curated playlist. Rather than "letting what user want which is to curate their own music library in iTunes". Quote from an NBC interview with Steve Jobs in 2006. ( Full Interviews on the Internet are all dead for some strange reason. ) And then every version of Apple Music they added back some pieces of iTunes function. But the design remains the same as it was in 1.0. It was first and foremost designed for New Music Discovery. Or to quote Jimmy Iovine, 2016 that the intention for the service is to become a "cultural platform", and Apple wants the service to be a "one-stop shop for pop culture". It you watch Apple closely and think where some of these culture changes came. That is probably the start of it.

Which brings me to the third thread of this story, how all this made me reevalute my relationship with companies.

The bulk of many of these conversion is that we are comparing Steve Job's Apple against Tim Cook's Apple. Those of us who were there before the iPhone. And the two are a very different company. Modern day Apple is very much profit driven development model. From Product segmentation, service strategy to operational efficiency.

The Final Quote :

"If you were a product person at IBM or Xerox, so you make a better copier or computer. So what? When you have monopoly market share, the company's not any more successful.

So the people that can make the company more successful are sales and marketing people, and they end up running the companies. And the product people get driven out of the decision making forums, and the companies forget what it means to make great products. The product sensibility and the product genius that brought them to that monopolistic position gets rotted out by people running these companies that have no conception of a good product versus a bad product. They have no conception of the craftsmanship that's required to take a good idea and turn it into a good product. And they really have no feeling in their hearts, usually, about wanting to really help the customers.

So that's what happened at Xerox, that the people at Xerox PARC used to call the people that ran Xerox tonerheads. And they just had these tonerheads would come out to Xerox PARC and they just had no clue about what they were seeing." - Steve Jobs

jjtheblunt
0 replies
2h7m

The dependency goes Developer -> Apple and Apple -> Consumer, there is no reverse arrow from Apple to the developers.

The App Store gets a developer’s apps in front of a huge audience and significantly simplifies distribution and billing and so forth. People complain the cut is high to use the App Store which is probably valid.

ederamen
0 replies
2h22m

Apple has done an incredible job of gaslighting developers into believe they care about them and are making generous investment into APIs and tooling, while simultaneously doing everything in their power to lock those devs into the platform and and force them to spend their limited time/resources learning the Apple-exclusive tech stack.

The intolerable part for me is that after you've spent years investing in learning their (non-portable outside of Apple) languages and APIs, they can reject anything you build for mobile for any reason, and you ultimately have zero recourse.

In other areas of software you could take the skills you've learned to your next job/project - but as Apple is moving more towards declarative frameworks where you aren't supposed to think about what's going on under the hood (I.e. SwitfUI), the amount of actual deep, transferable software engineering skills you gain from working with these frameworks approaches zero.

The investment just doesn't feel worth it to me, when there are so many other things I could be learning to advance my career.

bigstrat2003
0 replies
29m

Write code for the web if you like, but please don't make your text 500px wide. It's awful to read. I don't have a big monitor so that you can take up a small thin vertical strip.

axegon_
0 replies
1h38m

I spent most of my career in the gaming industry(apart from the last few years really). To be more specific, mobile gaming. A very lucrative industry but that's a whole different topic. Either way, back in the days when I started, Adobe Flash played a big role. The games the company was developing were banking heavily on Flash: all menus were built with Flash and it worked as a charm on both Android and iOS. At that point Apple had already put the final nails in the coffin but the company I worked for had managed to figure out a hack to keep using it and it worked up until mid 2017. I guess it was around that time Apple figured out the hack the company was making to keep it going. That entire fiasco caused several big shock waves around the company: it wasn't a small company, so there were a fair bit of Flash and ActionScript developers. Also there were several EOL games which the company wanted to keep since money was still flowing in through them so a large amount of people had to deep dive into legacy codebase no one had touched in years, just to re-make the menus using something else.

My point is, Apple has a long history of wanting to keep it's ecosystem closed, which is a huge problem for both large companies and even more so for small publishers and indie developers. It is one of the many reasons I've hated Apple with a passion for as long as I can remember.

Meanwhile I am working on an app with several friends/former co-workers and we opted for Flutter. Since I am the only one who has any experience with smartphones in general, this seemed to be the best candidate. For one, I know Dart more or less - I'm by no means expert in either Flutter or Dart but I can navigate myself with ease and documentation is fairly good. Which is enough to be fairly productive. Also Dart is an OK language overall - at least you know what to expect from it, unlike js or ts.

Having said all that, I won't lie, I have this fear in the back of my mind that at some point Apple will try to lock flutter out of their ecosystem and be like "Tough luck, rewrite it in Swift, deal with it". Which does sound like a very Apple thing to do, even if you are the most die-hard Apple fan.

The situation is bad, there's no way to sugarcoat it. But I'd argue that even with everything I just said, the web is in a worse state. If we roll the tape back to when I wasn't even a teenager, I learned basic HTML by simply looking at Yahoo!'s source. Yes, there weren't fancy animations or shiny colors and whatnot but it was simple enough to get it going. These days, it's an absolute nightmare. A simple "hello world" page adds an ungodly amount of node_modules to your drive, long, slow and convoluted build systems, horrible setup processes and horrible development experience. On the subject of the app we are making, having a few microservices, a few databases, a set of docker images, a docker compose setup for development and kubernetes with ingress for deployment is a lot of work as it is. We can get it up to speed in a matter of a few hours since we have a total of 25-30 years of experience between the 3 of us. But if we have to add web to the equation(which personally I would not mind, considering I'm more likely to use a computer rather than a phone), it would be a catastrophe. We'd need to rope in at least 3 other people to work on that and keep in mind that this is a project for our spare time and we are investing our private time and money. The web is simply not feasible.

In the early 2010's when I was coming out of uni, I would have preferred to work with web out of the two options - you had to endure Apple's products which I wouldn't have wanted to spend money on and you had to endure Java for Android. No way I would want to deal with either of those. But these days, I'd do anything to avoid the web, simply because the web is an absolute mess - I'm far more willing to risk shooting myself in the foot than having to deal with it.

Razengan
0 replies
1h46m

Swift and Apple APIs are the most pleasant environment I have ever experienced by far.

If only their documentation wasn't so often lacking though.

LispSporks22
0 replies
2h38m

One would think that of all the leetcode certified staff…

I’m sure they left shortly after finding out all they’ll actually be doing is putting fields in structs and waiting on CI/CD to see if it worked.

BlueTemplar
0 replies
2h25m

Ironically Google is the good guy here, they’re doing great work for the web.

Still naive, eh ? I would be extremely wary of following in Google's footsteps : the use Chrome(ium) and their web apps as a trojan horse to wrestle control of general computing from the OS and native apps.

And it typically results in a worse user experience, because you lose performance by running in an emulator (and/or the extra, always somewhat leaky, layers of abstraction complicate the developer's job), and the browser's interface gets in the way.

So no, please do NOT write code for the web (except if your program is extremely basic and you don't think it will ever get more complex), write code for Linix (or other libre software/hardware, and excepting the likes of Android) - Librem 5 and PinePhone are particularly in need of your help, since they have quite the task ahead of them, going against Google, Apple, and Huawei.

AshleysBrain
0 replies
2h34m

I don't think it's true that developers do nothing for Apple. If there were no third party apps for iPhone, Apple would sell many fewer phones. I suppose many could theoretically move to the web, but then the point still stands that third party apps are still making the iPhone much more worthwhile to own.

With proper competition, OS makers work hard to attract developers - think of Ballmer's "developers developers developers" clip from back in the day - as they recognise that developers add value to their platforms and help sway consumers. The trouble these days is there is no meaningful competition. No matter what Apple's rules are, developers are obliged to provide something for iPhone, and Apple can rest assured there is negligible chance of a third mobile platform gaining traction.

Apple know this and through their strict policies have imposed a cruel reversal of the situation: they claim they are doing developers a favour by deigning to allow them to access all of Apple's iPhone customers, and tax all their revenue for the service they ostensibly provide, even though developers do a lot to make iPhones worth having. It's an abuse of their market position and there's not much anyone can do about it - except as the blog says, publish to the web instead. It's not perfect but it's the only meaningful alternative to regulation, which Apple are obviously going to use every trick in the book to wriggle out of, because why willingly shut off billions of revenue from taxing app developers? Hopefully the web can gain traction as a way to avoid abusive app publishing rules.

65
0 replies
1h32m

Every day I think about how great the web is, and how much of a shame it is that Apple has tried to destroy as much of the web as possible by getting developers to make iOS apps instead of web apps. If there was no app store the web would be so much better. We'd have more variety in our content consumption, our social media sources, our algorithmic recommendations, our digital experiences.

The web runs on everything, and there are so many great APIs that can be used to make immersive/next gen applications like WebXR. But someone making some WebXR app and charging for it on their own site wouldn't make money for Apple, so Apple never promotes these web apps.

Long term... the web never dies. Companies come in and extract their profit and then die. But the web never dies.