Skip to content

Releases: dart-lang/native

objective_c-v9.0.0

07 Nov 00:32
8215af2

Choose a tag to compare

  • package:objective_c is no longer experimental
  • Use FFIgen 20.0.0
  • Breaking change: The collection classes, NSArray, NSSet,
    NSDictionary, and their mutable counterparts, no longer directly implement
    the corresponding Dart collections. Instead they each have a .toDart()
    method that wraps the class in an adapter that implements the Dart collection.
    Note that this is a shallow conversion. For deep conversions, continue using
    toObjCObject and toDartObject.
  • Breaking change: Rename the internal C types ObjCObject and
    ObjCProtocol to ObjCObjectImpl and ObjCProtocolImpl respectively.
  • Breaking change: Rename the internal Dart types ObjCObjectBase and
    ObjCProtocolBase to ObjObject and ObjCProtocol respectively.
  • Fix missing NSNumber category includes in iOS and macOS objective_c.m
    files.
  • Add NSBundle and NSNull to the bindings.
  • Add autoReleasePool function.
  • Fix a bug where
    NSMutableDictionary.of returned a NSDictionary.
  • Add NSErrorException class.

package:hooks_runner v1.0.0

07 Nov 15:22
0e7789d

Choose a tag to compare

package:hooks v1.0.0

07 Nov 15:22
0e7789d

Choose a tag to compare

  • Stable release.

ffigen-v20.0.0

07 Nov 00:32
8215af2

Choose a tag to compare

  • Breaking change: Completely rewrite the public Dart API for FFIgen.
    The new API is focused on a declartive configuration: FfiGenerate(...) with
    a generate() method. The configuration describes everything w.r.t. to the
    FFIgen input and output. The generate method takes context parameters such as
    a logger and path to libclang.
    With this breaking change, also some defaults changed: (1) @Native bindings
    are now the default, and (2) struct/unions refered to by pointer will be
    generated as Opaque by default.
  • Breaking change: Rename some ObjC interface built in methods. Rename
    isInstance to isA, castFrom to as, and castFromPointer to
    fromPointer.
  • Breaking change: Change ObjC interfaces and protocols to generate as
    extension types. This gives a
    small performance boost, and in most cases won't require any code changes.
  • Breaking change: Change how ObjC protocols are generated, splitting the
    methods related to constructing instances into a separate Foo$Builder class.
    The protocol's instance methods are now directly invokable from the built
    object.
  • Breaking change: Minor breaking change in the way that ObjC interface
    methods are generated. Interface methods are now generated as extension
    methods instead of being part of the class. This shouldn't require any code
    changes unless you are using show or hide when importing the interface.
    • If you are using show/hide to show or hide a particular interface, eg
      Foo, you'll now also need to show or hide Foo$Methods.
    • In rare cases the runtime type of the Dart wrapper object around the ObjC
      object may change, but the underlying ObjC object will still be the same.
      In any case, you should be using Foo.isInstance(x) instead of x is Foo
      to check the runtime type of an ObjC object.
  • Breaking change: Minor breaking change where ObjC enums declared using
    NS_OPTIONS now default to generating int constants instead of a Dart enum.
    Users who cared about this distinction were likely already using
    enums.as-int for these enums. This change just provides a better default
    behavior, so is unlikely to cause any substantive code changes.
  • Breaking_change: The name collision resolution system has been overhauled
    to fix various bugs, and make the renaming more consistent. As a result, in
    some cases different names may be chosen when resolving collisions.
  • Breaking_change: Detect the ObjC error raising pattern, where the last
    param is NSError** error, capture any error returned, and throw it as a Dart
    NSErrorException.
  • Fix for opaque dependencies for struct/union const arrays.
  • Make the Logger argument of FfiGenerator.generate optional. It defaults to
    a logger printing to stdout and stderr.

package:code_assets v1.0.0

07 Nov 15:22
0e7789d

Choose a tag to compare

  • Stable release.

package:native_toolchain_c v0.17.3

07 Nov 15:23
0e7789d

Choose a tag to compare

Pre-release
  • Bump package:hooks and package:code_assetsto 1.0.0.

package:data_assets v0.19.6

07 Nov 15:22
0e7789d

Choose a tag to compare

Pre-release
  • Bump package:hooks to 1.0.0.

package:hooks v0.20.5

27 Oct 12:25
bb1e08a

Choose a tag to compare

package:hooks v0.20.5 Pre-release
Pre-release
  • Document input.packageRoot in more places.

package:data_assets v0.19.5

27 Oct 12:25
bb1e08a

Choose a tag to compare

Pre-release
  • Document input.packageRoot in more places.

package:code_assets v0.19.10

27 Oct 12:25
bb1e08a

Choose a tag to compare

Pre-release
  • Document input.packageRoot in more places.
  • Document CodeAsset.id package namespacing.