Skip to content

v0.5.0

Latest
Compare
Choose a tag to compare
@progrium progrium released this 11 Jul 21:31
· 2 commits to main since this release
c9ae70a

MacDriver is now DarwinKit!

After a year in preview, v0.5.0 is finally released as DarwinKit. As mentioned in the preview release, this is not only a rename but a major rewrite and expansion on the bindings. We've also started a collection of high-quality examples and starter projects that you can access if you sponsor this project using GitHub Sponsors.

FocusTimer Demo ScanDrop Demo LargeType Demo SnowScape Demo

With every release we'll add to this sponsors collection. As a sponsor you not only get priority support but you can suggest additions for us to make to the collection. These aren't just simple code examples, they're actually useful utilities. Many are modeled after our favorite Mac utilities. We hope these are useful, educational, and might convince you to support this open source project as a sponsor.

Getting back to this release, there have been some changes since v0.5.0-preview so here is an updated overview of what's in this release:

  • Bindings for 33 frameworks and more are on the way
  • Over 2,300 classes with near complete coverage. v0.4.0 we had partial coverage of about 80.
  • 23,800 methods/properties and nearly 10,000 constants/enums. We had less than 50 constants before.
  • New since the preview release we have 543 structs generated.
  • Automatic conversion and use of native Go builtin types in APIs like strings, bools, []byte, maps, etc.
  • Support for block arguments as Go functions with properly typed arguments (callbacks!)
  • Pre-made delegate implementations you can simply set Go functions on
  • More 1-to-1 mapping to Objective-C symbol names while also improving Go idiomaticness
  • Documentation for all symbols including a link to official Apple docs on that symbol
  • Simple model for working with Objective-C memory management
  • As the new name implies, we are set up to support more platforms like iOS, tvOS, watchOS, maybe visionOS
  • Continued support for both Intel and Apple Silicon
  • Bindings are nearly all generated

There is one regression since v0.5.0-preview for more recent versions of Go with a linker warning. Unfortunately this is upstream in cgo, but we expect it to be resolved in Go with an upcoming.

Regardless, we're happy to finally be cutting this release. Future releases will not involve such a lengthy preview period. And we're excited about what's to come since we've also verified we can start using purego instead of cgo to improve build speed. We'll be using it in the focus of our next release: function bindings.

Contribution Highlights

New Contributors

Full Changelog: v0.4.0...v0.5.0