This article is more than 1 year old

Apple frees a few private APIs, makes them public

Glacial thaw brings a bit more openness to hermit kingdom

Apple, by necessity, fatigue, goodwill or accident, is becoming slightly more open in how it allows developers to interact with its software.

In the wake of the company's Worldwide Developer Conference last week, software developers are reporting that some previously private APIs have been opened to the public.

Private APIs provide a way of accessing parameters or functions that aren't documented in a publicly released software development kit (SDK) or a related project. Developers working for Apple can use its private APIs as needed, but the company's App Store rules disallow third-party developers from doing the same.

In 2015, Uber was caught violating Apple's rules by using a private API, IOKit, to fetch iPhone serial numbers in order to re-identify devices after the Uber app was erased and reinstalled.

Uber received no known punishment for this beyond a scolding from Apple CEO Tim Cook. That same year, Apple banned more than 250 apps for accessing private APIs.

Private APIs have long been a concern for those developing software in Apple's ecosystem because they have the potential to give Apple's apps a competitive advantage. For example, from iOS 4.3 until iOS 8, third-party developers had to rely on the UIWebView API to render web pages in iOS apps, while Apple gave its own apps access to a private, faster API tied to its JIT-enabled Nitro JavaScript engine.

During this period, Google's mobile version of Chrome for iOS could not compete with Apple's mobile version of Safari in terms of speed.

At the same time, Apple's rationale for not making certain APIs available can often be justified by security, privacy, or quality concerns.

Steve Troughton-Smith, who creates iOS apps, observed in a Twitter post that several previously private APIs have been made available to those outside of Apple.

In subsequent conversation with The Register, he said, "I've just been slowly going through sessions, so I don't have a list. The IOSurface framework is one of them (been around since original iPhone as private API). There are more on the Mac side, like NSColor's system colors."

There are a great many of these private APIs, so Apple's decision to make a few public shouldn't be overstated. But other aspects of Apple's ecosystem are opening inch by inch. For example, the company just relaxed its developer rules to support educational coding apps and to be more inclusive in terms of allowing mechanisms for running interpreted code.

Apple also opened its HomeKit Internet of Things framework a bit by allowing developers to test the technology on non-commercial projects (eg, a Raspberry Pi) without participating in its MFi hardware licensing program.

Despite glimmers of sunlight, tradition persists. El Reg asked another developer about APIs that have been opened to the public, but he said he'd prefer not to speak to the press due to concerns that doing so might violate Apple's NDA on talking about pre-release software.

Apple, as usual, did not deign to respond to a request for comment. ®

More about


Send us news

Other stories you might like