# About the generated framework crates

The `objc2` project provides (mostly) autogenerated interfaces to Apple's
Objective-C frameworks like AppKit, Foundation, Metal, WebKit, and so on.

The bindings currently contain very little documentation, you should view
[Apple's developer documentation][apple-doc-index] for detailed
information about each API. (There are [plans][#309] for importing that
documentation here).

These crates uses `objc2` to declare the external interface to the
Objective-C classes and protocols. It is highly recommended that you read
the documentation here for details on how the Objective-C interop works.

They also use `block2::Block` in the public API, check out the documentation
for the [`block2`] crate for how to call such methods using a closure.

[apple-doc-index]: https://developer.apple.com/documentation/technologies
[#309]: https://github.com/madsmtm/objc2/issues/309
[`block2`]: https://docs.rs/block2


## Currently supported versions

- macOS: `10.12-14.5`
- iOS/iPadOS: `10.0-17.5` (WIP)
- tvOS: `10.0-17.5` (WIP)
- watchOS: `5.0-10.5` (WIP)
- visionOS: `1.0-1.2` (WIP)

These bindings are currently generated from the SDKs in Xcode 15.4.
The Xcode version will be periodically updated.
