@Andreas_Hegenberg I would like to ask something. Apparently Apple has public and private APIs. In order for BTT to do everything it does, you also use private API. But they are not documented because they are not supposed to be used. So how do you know how they work? Do you just try it out?
I've read that Apple can remove private APIs overnight without notice. Would that mean that BTT (or parts of it) will no longer work?
correct. However BTT uses public apis for most parts. Mostly only touchpad & magic mouse stuff is private. For keyboard etc BTT uses public API. (and I have some fallbacks in case apple breaks any of them)
Various actions might rely on private API for performance reasons but often there are other less performant fallback mechanisms.
Also apple has also broken public API in the past, so there is always a risk of things stopping to work, regardless of API
Apple also once tried to close the private touchpad apis (many years ago) then I asked nicely to keep them open and they did 
2 Likes
Interesting, thank you. Other developers say that the use of private APIs is not in the interest of the user because the functioning of the software cannot be guaranteed in this way. However, if Apple can also change the other API at will, then the difference hardly matters.
In any case, it's good to know that you have workarounds for many cases.
This shows that Apple has no intention of pushing products out of the market. At least not yours. 
No, wait, it's the other way around. Probably a lot of Apple employees use BTT. They didn't do it for you, they did it for themselves.
I think the best example of this being not true is iOS. long before the app store existed developers created awesome apps relying completely on private API. Also most of iOS functionality nowadays was available long before via super popular tweaks that relied completely on private API
A lot of API that was once private got public equivalents once Apple noticed it being useful to developers.
BTT would not exist without private api because it all started with the trackpad.
With BetterSnapTool I tried only using public API. Then in 2012 Apple decided that public API was not allowed on the App Store anymore.
Just recently macOS Sequoia broke some public keyboard shortcut API for many apps.
The rules are random so I stopped caring too much and will adapt when required.
I know there is some argument about bavkwards compatibility - but even the first versions of BTT from 15 years ago still run on modern macOS.
1 Like
I would do the same.
Do you happen to know if many Apple employees use BTT?
I know quite a few myself 
(I can’t (/won’t
) tell numbers)
Ich frage nicht weiter. Es ist klar, was das bedeutet 
Thanks @Andreas_Hegenberg for sharing this information – it's valuable for me to understand this context.
@Frank1 a recent example where Apple broke a private API was in macOS 15.4 where they broke "Now Playing" – extremely frustrating!
latest BTT alpha might restore most of the now playing info (for now), I’ll do more tests next week (and I’m pretty sure this will soon be an example of a private API transforming into a public API with some added security, they had to do a quick fix because apparently some malicious apps have tried to record what media a user has been watching)
1 Like