0.6.0 (2024-08-30)
Finally: Android/Kotlin support!
Breaking: All C++ Hybrid Objects now need to manually call the HybridObject(TAG) constructor, since the specs only virtually inherit from HybridObject.
✨ Features
- Add
dispose()toHybridObject(andregisterRawHybridMethod(...)) (#82) (661bea4) - Add
NitroModules.hasNativeStateandNitroModules.removeNativeState(#83) (3fa2fe9) - Add
Promise.await()to Swift (ba1b59c) - Add Array support for Kotlin (#51) (6bd88b8)
- Add String extensions (
initandstringValue) to Swift enums (#87) (dc861b0) - Add support for
ArrayBufferin Kotlin Nitro Modules (#55) (3d4455e) - Annotate native callbacks with
@FastNative(objects) or@CriticalNative(primitives) (#52) (1c5fd39) - AnyMap for Kotlin/Android (#60) (b459224)
- Base for Kotlin methods (#48) (e222f98), closes #49
- Base for Kotlin modules (#45) (065736d), closes #46
- Create
AnyMapHolderfor Swift (#56) (dbadcc2) - Documentation base 📚 (#86) (f5b9c7d)
- Improve callbacks for Kotlin/Android (lambdas!) (#62) (a0104e9)
- Promises for Android/Kotlin (#59) (9b1b2c8)
- Safely wrap a Swift closure in a C++ accessible
SwiftClosurestruct and allow parameters bi-directionally (#81) (992c709) - Support
Record<K, V>asMap<K, V>in Kotlin/Android (#80) (9db7852) - Support arrays and objects in Kotlin
AnyMap(#76) (254967a) - Support optionals in Kotlin (#50) (119f09f)
- TS + Lint in CI (#77) (a0e2fea)
- Upgrade to react-native 0.75 (#75) (64f071b)
- Use lower-camel case for Swift (#84) (72d0e60)
💨 Performance Improvements
- Speed up
await(3e6e381)
🐛 Bug Fixes
- Fix example app usage on iOS (2c8bf91)
- Fix raw JSI functions and add test to example module (f4ef4b7)
- Replace
[#if](https://github.com/mrousavy/nitro/issues/if) DEBUGwith[#ifndef](https://github.com/mrousavy/nitro/issues/ifndef) NDEBUGto make it work on Android (#53) (acca5ba) - Rewrite Logger to use platform
NSLog/__android_log_print(#54) (e7b9f41) - Safely
guardnil unwrap for dictionary lookup in Swift (#79) (fd85cf5)
📚 Documentation
- Add some links to issues to the table (09d04ee)