Skip to content

Releases: dart-lang/native

package:objective_c v9.2.0

25 Nov 00:12
59a519f

Choose a tag to compare

  • Migrate to from a Flutter plugin to native assets. This enables package:objective_c to be used in command line apps.

package:ffigen v20.1.1

25 Nov 00:11
59a519f

Choose a tag to compare

  • Update tests and examples now that package:objective_c is using native assets.

package:native_toolchain_c v0.17.4

21 Nov 13:55
73b32c4

Choose a tag to compare

Pre-release
  • For Windows, include errors from the standard output of cl in the logger's
    output of CBuilder.
    (#2809)

package:objective_c v9.1.0

19 Nov 00:35
9767a50

Choose a tag to compare

Use FFIgen 20.1.0

package:ffigen v20.1.0

19 Nov 00:36
9767a50

Choose a tag to compare

  • Add xcodeUri, iosSdkUri, and macSdkUri, to mirror xcodePath,
    iosSdkPath, and macSdkPath.
  • Export some missing elements from the config API.
  • Provide more convenience utils for building FFIgen configs:
    Declarations.excludeAll, Declarations.includeAll,
    Declarations.includeSet, Declarations.includeAllMembers,
    Declarations.includeMemberSet, Declarations.useOriginalName,
    Declarations.renameWithMap, Declarations.useMemberOriginalName, and
    Declarations.renameMemberWithMap.
  • Fix a bug where function
    pointer param names could collide with keywords.
  • Fix a bug where unnamed
    enum constants were being multiply defined.
  • Fix a bug in imported
    NS_OPTIONS enums.
  • Fix a bug in the internal
    variables generated by function bindings.
  • Fix a bug where types
    imported from package:objective_c could be renamed.

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

  • Stable release.

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.