I keep hearing this use of “private APIs” that Microsoft and Apple use and think it’s some evil plot.
This how software engineering works.
If I have a publicly released module, I define a public methods that are my interface and private methods that my interface uses.
Of course as the implementator I’m going to have “private APIs” that only I use. In the next release, I might change the entire underlying implementation get rid of private methods, etc. but still not change the public api. You as a developer shouldn’t depend on “private apis” and Apple should have no obligation not to break apps that depend on them.
To be even more blunt. There is no such thing as a “private API”. The Application Programmers Interface is the published spec that developers should use. By definition, if it’s private, it’s not an “API”.
This how software engineering works.
If I have a publicly released module, I define a public methods that are my interface and private methods that my interface uses.
Of course as the implementator I’m going to have “private APIs” that only I use. In the next release, I might change the entire underlying implementation get rid of private methods, etc. but still not change the public api. You as a developer shouldn’t depend on “private apis” and Apple should have no obligation not to break apps that depend on them.
To be even more blunt. There is no such thing as a “private API”. The Application Programmers Interface is the published spec that developers should use. By definition, if it’s private, it’s not an “API”.