I don't know what your background is, but private APIs aren't actually private, they are just undocumented. Apps trying to call them light up like a christmas tree in the review process. Apps can be blocked from accessing them from inside the sandbox by leveraging app entitlements, but the entitlement must already exist for it to be callable by Apples own apps. When it comes to iPhone mirroring it's a client/server architecture, and the APIs being called are on the network or over USB, as such there's no concept of public or private APIs there as we generally talk about it, it's just authenticated and authorised vs unauthenticated and/or without authorisation. Likely this system requires some specific JWT claim to be able to unlock remotely, probably generated through iCloud.
What I'm trying to get at is that the only thing that would be missing from this for cross-platform support is a client application on e.g. Windows, and that's not Apples responsibility to build regardless, they just maybe need to be helpful if someone wants to build a Windows/Linux app.
Basically, by launching the feature in iOS 18, they are offering access to the API, no way around it.
My point was it's a new feature, using new private (or if you prefer, undocumented) APIs, with presumably significant security components given the requirement for T2/M Series Mac and Two-Factor authentication on the user's iCloud account, so I don't think we can compare it to the QuickTime mirroring the previous commenter mentioned.
Per the DMA, Apple is REQUIRED to give others access to that functionality if requested. I am quoting from Article 6, Section 7 of the DMA, which I have been told repeatedly, on this very thread, is unambiguous in its meaning (despite also being told repeatedly that you can't go by what the law SAYS, you have to go by the spirit of the law). Emphasis below is mine.
The gatekeeper shall allow providers of services and providers of hardware, free of charge, effective interoperability with, and access for the purposes of interoperability to, the same hardware and software features accessed or controlled via the operating system or virtual assistant listed in the designation decision pursuant to Article 3(9) as are available to services or hardware provided by the gatekeeper. Furthermore, the gatekeeper shall allow business users and alternative providers of services provided together with, or in support of, core platform services, free of charge, effective interoperability with, and access for the purposes of interoperability to, the same operating system, hardware or software features, regardless of whether those features are part of the operating system, as are available to, or used by, that gatekeeper when providing such services.
That is pretty clear to me - Apple is required to offer "access for the purposes of interoperability" to the feature. Apple could have plenty of perfectly legitimate reasons to not to want to do that. Just off the top of my head:
- They are still polishing the API and want to have it in a better state before committing to supporting it as a public API
- The EU has told them privately they will have to offer access to the feature and Apple wasn't planning on having to do so, so they need more time to implement
- They have security or privacy concerns with it working on non-Apple hardware
- Adding support for others' access is lower on the priority list and they just haven't gotten around to it yet
And that doesn't include the simple "They want to use it as a competitive advantage to sell more Macs." Which I think is a perfectly reasonable thing for a company to want to do, even if I'd prefer them to open it up to everyone, but the EU has decided that is illegal in the EU. Or the other simple "they want clarity from the EU whether or not they would have to offer access to the feature, and so aren't going to support it until they hear back".
I'm not happy about that. My guess is Apple isn't either. I think everyone at Apple truly wants to make the best devices possible and delight its customers. I know lots of you disagree and think all they care about is money. But even if you think that's all Tim Cook cares about, I bet you can agree that the engineers who worked so hard on these features are bummed the EU is missing out.
This has been going on for too many days and I feel like I'm arguing with a brick wall, so I really should stop, but to clarify one more time:
If you want the EU to be able to tell Apple that they can't offer features and not give competitors the ability to have access to/offer the same features, you're not allowed to complain and say Apple is "throwing a tantrum" when they decide they either can't immediately offer the feature to competitors on Day 1 or, decide they would rather not offer the feature in the EU than be forced to offer it to competitors.
What I am MOST concerned there are new features that won't be built because Apple decides it's not worth it to further fragment the OS and offer it only in some parts of the world and not others. Remember the EU only represents 7-8% of Apple's revenue, and they've already spent significant engineering resources to support this law only to be told "try again." If stuff is borderline, Apple might just decide not to bother for anyone because it isn't worth the ROI. And, because we'll never know what we don't get, I'll never be able to point to the DMA and say "See, I told you so".