![]() alt-tab-macos.xcodeproj file describing AltTab itself.1 xib (InterfaceBuilder UI file, describing the menubar items like “Edit” or “Format”).You can’t cut the dependency completely though as only XCode can build macOS apps. We minimize reliance on XCode, InterfaceBuilder, Playground, and other GUI tools. To mitigate the issues listed above, we took some measures. We have tried my best to document the ones we are using, as well as ones we investigated in the past. These are not documented at all, not guaranteed to be there in future macOS releases, and prevent us from releasing AltTab on the Mac AppStore. There are however, retro-engineered private APIs which you can call. For instance, there is no API to ask the OS “how many Spaces does the user have?” or “Can you focus the window on Space 2?”. This means often we just don’t have an API to do something. OS APIs are quite limited for the kind of low-level, system-wide app AltTab is. The community came up with Cocoapods which is the de-facto dependency manager for Apple ecosystem projects these days, even though Apple is now trying to push their own. ![]() They could pay an intern to update the docs over the summer for instance, just to give you context of the lack of care we are talking about here.ĭependencies were historically never handled by Apple. They are in such a good position that people will struggle and just push through to deliver on their ecosystem because it is so valuable, and because they don’t have to care, they don’t. You can truly tell Apple doesn’t care about supporting third-parties. Compared to other ecosystem I’ve worked on in the past like Android, nodejs, Java, rust, this is really a bad spot. Very simple things are not documented at all, and good information is hard to find. Swift + objc + c + bridges + compiler + toolchain + etc)ĭocumentation is abysmal. This means that from a machine running let’s say macOS 10.10, you have access to only a specific range of XCode versions (you can’t run the latest for instance), and these give you access to a specific range of SDKs (i.e. Here the SDK is bundled with XCode, and XCode is bundled with the OS. Regarding SDKs, it’s very different from other (better) ecosystems like Java. Swift itself is the mainstream language with the worst governance I’ve seen in modern times. Note that swift just recently started being stable, but overall any change of version breaks a lot of stuff. All these are bridging with each other with a bunch of macros, SDKs glue, compiler flags, compatibility mode, XCode legacy build system, etc. ![]() They keep piling on the tech stacks on top of each other, so you have C APIs, ObjC APIs, Swift APIs, Interface builder, Playgrounds, Swift UI, Mac Catalyst. ![]() Mac development ecosystem is pretty terrible in general. It will add the pre-commit hook to ensure that your commits follow the convention and will pass the PR. If you want to contribute a PR, please run npm install once.
0 Comments
Leave a Reply. |
Details
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |