MacDriver 0.5.0 Released with Major Changes

After a year of preview, MacDriver 0.5.0 has finally been released, and from this version on, the project has been renamed DarwinKit.

MacDriver 0.5.0 Released with Major Changes_0

The main changes in this version are as follows:

  • Added bindings to 33 frameworks.
  • There are currently more than 2,300 classes, almost completely covering all situations in mac development applications. In contrast, the 0.4.0 version only covered about 80 classes.
  • Currently, 23,800 methods / properties and nearly 10,000 constants / enumerations have been implemented. Previously, there were less than 50 constants.
  • Since the preview version was released, 543 structs have been implemented.
  • Automatic conversion and the use of native Go built-in types such as strings, bools, [] byte and maps etc. have been implemented in the API.
  • Supports block parameters as Go functions (callbacks) with correct type parameters.
  • Built-in delegate implementation, developers can simply use Go functions.
  • More 1-to-1 mapping with Objective-C symbol names, while improving the adaptability of Go usage habits.
  • Improved all symbols documentation, including links to the official Apple documentation of this symbols.
  • Uses the Objective-C simple model of memory management.
  • Prepares to support more platforms such as iOS, tvOS, watchOS, and visionOS.
  • Continues to support Intel and Apple Silicon.
  • Nearly generated all bindings.

In addition, v0.5.0-preview had a regression problem since the release of a newer version of Go, related to linker warnings, which is an upstream problem in cgo,the DarwinKit team said hoping that this problem can be resolved in the upcoming Go version. At the same time, they saidfuture version releases will not have such a long preview period of half a year.

It is worth expecting that the team has also verified that it can start using purego instead of cgo to improve the build speed, and will apply it in the aspect of function bindings in the next version.

Details can be viewed in the release information:

Likes