Hacker News new | ask | show | jobs
by dijit 920 days ago
In the interest of balance, since it's pretty easy to pile on when you think you're punching up:

> 1) Spend $100 a year for the privilege of being allowed to access their app store

Comparable to all curated store fronts.

> 2) Buy several $1000 iPhones (you'll be expected to test on every model they currently support by app store reviewers)

Not different than supporting any commodity device. You should have target devices for every variation you intentionally support.

> 3) Buy one $2000 macbook per developer that needs to work on the iOS app (build tooling only runs on macos)

That's not true, both the macbook line but also in general. I have worked in places that use VM's on MacMinis for iOS development, but there's also AppCode from Jetbrains.

> 4) Good luck if you want to integrate this with your CI! Either another mac mini ($1000) or a subscription to some service that does it for you. Forget about using your linux boxes that you use for everything else. Apple says no!

Mac Mini for CI, yes, if you're doing it as above then it's an additional VM on your MacMini.

> 5) Everyone who needs to log in to the apple developer portal also needs an iDevice. Apple is so secure they only support their own proprietary second factor push messages to iDevices!

That's not true, I use Linux to log in to my developer portal with the root account.

> You can see why they don't allow emulators or virtual machines.

They allow VMs and Emulators, they just require that it's official hardware.

If you are categorically opposed to owning any apple devices then I can see why you would feel a certain way.

To put it in perspective: I genuinely despise Windows, yet I need to spend a lot of money because making Windows software on any other platform is practically impossible, and "running a VM" isn't going to help because you must still license that VM.

The major differentiator here of course is that the license cost for the OS is part of the hardware cost in the Apple ecosystem and not separated out.

But ultimately every company that has a platform for software development is going to charge you:

A) Access to that platform

B) For the tools required to build on that platform in addition.

I recommend everyone votes with their wallet. (and they do, just in favour of the App Store, because it is significantly more lucrative to lean in and buy a pile of mac minis and a developer license agreement than to lose sales by not being apart of it.)

You could look at this as Win/Win or Lose/Lose depending, almost entirely, on your willingness to let Apple also profit from your work. (again: likening it to my experience with Windows).

4 comments

> Comparable to all curated store fronts.

Both the Microsoft Store and the Play Store require a single payment of ~25$. Publishing on the Amazon AppStore is free. I couldn't find any price information for Huawei AppGallery.

Apple is the only store that requires a recurring payment, and it's the single most expensive one.

Those are borne of competition with the App Store (none proceed it) - and competition often undercuts by a lot.

Valve, Microsoft online, PSN are proper contemporaries.

When you think about it the Apple ecosystem is very similar to console ecosystems in general.

Heaven knows how many Xboxs and Playstations I had to buy as a game developer.

- Valve you pay 100 USD once per game

- Xbox depends on how you manage to sell your thing to them, it can even be free

- Nintendo you also don't pay to be in, but the dev kit is 400 USD (unless this changed recently), you can dev in any machine

In the end math is still showing the Apple as the most expensive platform to develop for - I don't have information on PSN as I never did anything for it.

> - Valve you pay 100 USD once per game

The Steam Direct Product Submission Fee (while refundable after you get $1,000 in sales, of which Valve will charge 30%); is only one of the fees you must pay. For example I have had to pay for additional beta codes and if you do not charge anything for your game but you get a lot of downloads then you risk getting into bad terms with Valve. (who, while darlings to gamers are pretty aggressive bullies to game developers).

> - Nintendo you also don't pay to be in, but the dev kit is 400 USD (unless this changed recently), you can dev in any machine

Nintendo is actually a little bit of an outlier, as they really want to promote indy games (not even requiring a business address!). One caveat though is that they really want you to show your project before granting you permission to buy a dev kit, so you need to make a PC game before you make a switch game.. which is weird.

> - Xbox depends on how you manage to sell your thing to them, it can even be free

My €70,000 p.a recurring fee for XBox dev kits in Ubisoft begs to differ.

Regardless; the economics are the same. If it's too much money then nobody would pay it, so there's clearly a value.

Apple aren't forcing you to use their devices, people want to because there's a large pool of people to sell to.

Maybe, just maybe, the economics for publishing an AAA game are just a bit different than for small indie developers who wish to publish their apps?
There are historical reasons for needing a dev machine on those stores. Apple really do not need it, you are probably right that they copied the bad stuff. The Android and Apple stores are contemporary though, they have different philosophy it is not all about competition.
> AppCode from Jetbrains

is being discontinued, and won’t receive further updates.

Ah, I see.

After looking around (for literally a minute) it seems the recommendation is to use the Swift plugin with Clion which people claim "is the same".

https://www.reddit.com/r/Jetbrains/comments/zlyjuo/appcode_b...

> But ultimately every company that has a platform for software development is going to charge you:

This is why the web won, IMO.

And it's also why Apple is the only one to not implement standards such as the Web Bluetooth API. If you want to work with a bluetooth device you will have to submit to the apple app store.
Web Bluetooth is not a standard and is not on track to ever become a standard, e.g. "This specification was published by the Web Bluetooth Community Group. It is not a W3C Standard nor is it on the W3C Standards Track."

It is also not supported on any version of Firefox, for the same reasons. Here's Mozilla's "considered harmful" GitHub issue. https://github.com/mozilla/standards-positions/issues/95

PWA features could be a similar situation. They are also not a standard.
> Comparable to all curated store fronts.

Nonsense. Android is a one time fee of $25.

> Not different than supporting any commodity device. You should have target devices for every variation you intentionally support.

Android has convenient cross platform emulators. Apple insists you give them tons of money every time they release a new iDevice :-)

There is absolutely no reason to buy a physical device just to make sure your app renders correctly at some new resolution.

> That's not true, both the macbook line but also in general. I have worked in places that use VM's on MacMinis for iOS development

Please show me how to legally run MacOS in a VM on Linux while abiding by Apple's Terms of Service?

I'm currently (unfortunately) running CI on a Mac Mini and it is the most fickle system I have ever used. Needs manual intervention pretty much every month.

> but there's also AppCode from Jetbrains.

How do I use this to build an ipa file and upload it to Apple, without running on an iDevice?

> Mac Mini for CI, yes, if you're doing it as above then it's an additional VM on your MacMini.

How to run on linux like literally everything else does?

> That's not true, I use Linux to log in to my developer portal with the root account.

That means you have an iPhone for receiving the 2FA push message. Good luck logging in without any iDevices.

> They allow VMs and Emulators, they just require that it's official hardware.

Completely useless.

> If you are categorically opposed to owning any apple devices then I can see why you would feel a certain way.

I'm opposed to being gouged by a bigcorp, while I'm providing value for them. Android manages just fine, all you need is a Windows/MacOS/Linux laptop with the emulator. Completely free until you want to publish, at which point it's a one time fee of $25 instead of a yearly fee of $100.

I'm also opposed to needing a mac computer just to be allowed to publish for ios

You also won't constantly get screwed over by "reviewers" who spend 2 minutes looking at your app before complaining about something their collegue said was ok previously.

Need to push a critical bugfix? Not allowed unless you also fix these random unrelated "issues" that were fine the past 3 years!

> yet I need to spend a lot of money because making Windows software on any other platform is practically impossible

Cross compilation for windows is easier than it has ever been. It's not even possible for iDevices.

> isn't going to help because you must still license that VM.

Wrong again. Just use the free developer VMs: https://developer.microsoft.com/en-us/windows/downloads/virt...

> But ultimately every company that has a platform for software development is going to charge you:

Apple is the only one gouging me left and right. The others are far, far more reasonable.

> Android has convenient cross platform emulators. Apple insists you give them tons of money every time they release a new iDevice :-)

I've worked in places that do dual platform development, and Android has always been the one that needs a ton of testing devices just to achieve a minimally-acceptable testing coverage (and we would still end up with more issues in the wild, than on iOS)

[EDIT] Maybe this is a solo dev versus team thing? Solo dev tests on their Pixel, pokes around in the emulator for other OS versions, looks fine, submits to Google, Google accepts. App has issues on a couple major Samsung phones (their goddamn OS customizations, OMG) and maybe a major Chinese brand or two, but the App Store accepted it, so that's that to the developer.

They try to do the same with Apple and a single phone and get it thrown back with "this is broken on other models of phone" and perceive that Apple's a harder/more-expensive target to test for.

Meanwhile, a team supporting multiple popular apps has developed a kind of scar-tissue that results in a 10-device Apple test drawer and an 80-device Android closet, resulting in the opposite perception.