Releases: dart-lang/native
Releases · dart-lang/native
objective_c-v9.0.0
- 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
toObjCObjectandtoDartObject. - Breaking change: Rename the internal C types
ObjCObjectand
ObjCProtocoltoObjCObjectImplandObjCProtocolImplrespectively. - Breaking change: Rename the internal Dart types
ObjCObjectBaseand
ObjCProtocolBasetoObjObjectandObjCProtocolrespectively. - Fix missing
NSNumbercategory includes in iOS and macOSobjective_c.m
files. - Add
NSBundleandNSNullto the bindings. - Add
autoReleasePoolfunction. - Fix a bug where
NSMutableDictionary.ofreturned aNSDictionary. - Add
NSErrorExceptionclass.
package:hooks_runner v1.0.0
- Stable release.
package:hooks v1.0.0
- Stable release.
ffigen-v20.0.0
- Breaking change: Completely rewrite the public Dart API for FFIgen.
The new API is focused on a declartive configuration:FfiGenerate(...)with
agenerate()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)@Nativebindings
are now the default, and (2) struct/unions refered to by pointer will be
generated asOpaqueby default. - Breaking change: Rename some ObjC interface built in methods. Rename
isInstancetoisA,castFromtoas, andcastFromPointerto
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 separateFoo$Builderclass.
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 usingshoworhidewhen importing the interface.- If you are using
show/hideto show or hide a particular interface, eg
Foo, you'll now also need to show or hideFoo$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 usingFoo.isInstance(x)instead ofx is Foo
to check the runtime type of an ObjC object.
- If you are using
- Breaking change: Minor breaking change where ObjC enums declared using
NS_OPTIONSnow default to generating int constants instead of a Dart enum.
Users who cared about this distinction were likely already using
enums.as-intfor 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 isNSError** error, capture any error returned, and throw it as a Dart
NSErrorException. - Fix for opaque dependencies for struct/union const arrays.
- Make the
Loggerargument ofFfiGenerator.generateoptional. It defaults to
a logger printing to stdout and stderr.
package:code_assets v1.0.0
- Stable release.
package:native_toolchain_c v0.17.3
- Bump
package:hooksandpackage:code_assetsto 1.0.0.
package:data_assets v0.19.6
- Bump
package:hooksto 1.0.0.
package:hooks v0.20.5
- Document
input.packageRootin more places.
package:data_assets v0.19.5
- Document
input.packageRootin more places.
package:code_assets v0.19.10
- Document
input.packageRootin more places. - Document
CodeAsset.idpackage namespacing.