You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

32 KiB

Changelog

Unpublished

🛠 Breaking changes

🎉 New features

🐛 Bug fixes

💡 Others

1.1.1 — 2023-01-06

🎉 New features

  • Added support for concurrent (async/await) functions in Swift. (#20645 by @tsapeta)
  • [iOS] Added experimental support for building the function result from the object definition. (#20623 by @tsapeta)

🐛 Bug fixes

  • Fixed boost build error on Android. (#20719 by @kudo)

1.1.0 — 2022-12-30

🎉 New features

  • Added TS definitions for TypedArray and additional union types for Int, Uint and Float TypedArrays. (#20257 by @aleqsio)
  • Added a new executeOnJavaScriptThread method to appContext to allow for running code blocks on the JS thread. (#20161 by @aleqsio)
  • Added the Exceptions.MissingActivity on Android. (#20174 by @lukmccall)
  • Trailing optional arguments can be skipped when calling native functions from JavaScript on iOS. (#20234 by @tsapeta)
  • Events component can now be initialized with an array of event names (not only variadic arguments). (#20590 by @tsapeta)
  • Property component can now take the native shared object instance as the first argument. (#20608 by @tsapeta)
  • Added support for referencing to Property's owner properties using Swift key paths. (#20610 by @tsapeta)

🐛 Bug fixes

  • Fixed build errors when testing on React Native nightly builds. (#19805 by @kudo)
  • Fixed failed resolution of 'java.nio.file.Path' on Android. (#20037 by @lukmccall)
  • Fixed libraries using the ViewDefinitionBuilder crashes when ProGuard or R8 is enabled on Android. (#20197 by @lukmccall)
  • Fixed Either types not supporting non-primitive types on iOS. (#20247 by @tsapeta)
  • Fixed Function not supporting certain arities on Android. (#20419 by @motiz88)
  • Added React Native 0.71 support. (#20470 by @kudo)
  • Fixed the SharedObject initializer being inaccessible due to internal protection level. (#20588 by @tsapeta)

💡 Others

  • [iOS] Make Enumerable protocol implement CaseIterable to get rid of operating on unsafe pointers. (#20640 by @tsapeta)

1.0.4 - 2022-12-21

🐛 Bug fixes

  • Fixed views are not correctly initialized after reloading on Android. (#20063 by @lukmccall)
  • Fixed threading crash issue when running with Hermes on iOS. (#20506 by @kudo)

1.0.2 - 2022-11-08

💡 Others

  • Rephrased the message of ArgumentCastException to use ordinal numbers. (#19912 by @tsapeta)

1.0.1 - 2022-11-07

🐛 Bug fixes

  • Added a list of the acceptable enum values to the conversion error on Android. (#19895 by @lukmccall)
  • Fixed new NativeEventEmitter() was called with a non-null argument without the required addListener method. warnings on Android with JSC. (#19920 by @kudo)

💡 Others

1.0.0 — 2022-11-03

This version does not introduce any user-facing changes.

0.13.4 — 2022-11-02

🐛 Bug fixes

  • Fixed build errors when testing on React Native nightly builds. (#19369 by @kudo)

0.13.3 — 2022-10-30

🎉 New features

0.13.2 — 2022-10-28

🐛 Bug fixes

  • Fixed new NativeEventEmitter() was called with a non-null argument without the required addListener method. warnings on Android. (#19704 by @kudo, @kudo)

0.13.1 — 2022-10-27

🐛 Bug fixes

  • Fixed ~CallbackWrapper() dangling pointer crashes when reloading the app on Android. (#19699 by @kudo, @kudo)

0.13.0 — 2022-10-25

🛠 Breaking changes

  • Convertible enums must inherit from expo.modules.kotlin.types.Enumerable on Android. (#19551 by @lukmccall)
  • AppContext.currentActivity is not longer returning AppCompatActivity, but an instance of android.app.Activity class. (#19573 by @lukmccall)

⚠️ Notices

  • Deprecated ConvertibleArgument in favor of Convertible and EnumArgument in favor of Enumerable. (#19612 by @tsapeta)

🎉 New features

  • Implemented a mechanism for hooking into to the view lifecycle events (introduces new OnViewDidUpdateProps definition component). (#19549 by @tsapeta)

🐛 Bug fixes

  • Fixed records aren't correctly converted to JS objects in the release builds on Android. (#19551 by @lukmccall)
  • Reject promises with a CodedError instead of a plain object. (#19605 by @tsapeta)

💡 Others

0.12.0 — 2022-10-06

🛠 Breaking changes

  • Bumped iOS deployment target to 13.0 and deprecated support for iOS 12. (#18873 by @tsapeta)

⚠️ Notices

  • Removed deprecated module definition components that started with a lowercase letter. (#18851 by @tsapeta)
  • Added support for React Native 0.70.x. (#19261 by @kudo)

🎉 New features

  • Added the interface for the light sensor support on Android. (#18225 by bearkillerPT)
  • Add better JSI error handling on Android. (#18259 by @lukmccall)
  • Experimental support for typed arrays on Android. (#18379 by @lukmccall)
  • Using JSI instead of the bridge to call native methods also on legacy modules on iOS. (#18438 by @tsapeta)
  • Experimental support for Fabric on iOS. (#18500, #18678 by @tsapeta)
  • Added view prop callbacks support for old-style views written in Objective-C. (#18636 by @tsapeta)
  • Add Logger support for writing logs to a file; add Logger and associated classes to Android. (#18513 by @douglowder)
  • Experimental support for Fabric on Android. (#18541 by @kudo)
  • Add option to generate a coalescingKey in callback on Android. (#18774 by @lukmccall)
  • Automatically convert records to dicts when returned by the function. (#18824 by @tsapeta)
  • Closures passed to definition components are now implicitly capturing self on iOS. (#18831 by @tsapeta)
  • Support for CSS named colors in UIColor and CGColor convertibles on iOS. (#18845 by @tsapeta)
  • Lazy load building the module's JavaScript object from the definition on iOS (already implemented on Android). (#18863 by @tsapeta)
  • Inferring the view type in Prop setter closure. (#19004 by @tsapeta)
  • [core] Added REACT_NATIVE_DOWNLOADS_DIR environment variable to specify custom third party libraries download location. (#19015 by @kudo)
  • Add support for the android.graphics.Color class as the function parameter. (#19054 by @lukmccall)
  • Add support for android.net.Uri, java.io.File, java.net.URI and java.nio.file.Path classes as function parameters. (#19169 by @lukmccall)
  • Add the RegisterActivityContracts component to register all of activity result contracts on Android. (#19180 by @lukmccall)
  • Improves JSI/JNI type conversion to support complex function arguments on Android. (#19120 & #19094 by @lukmccall)
  • Using JSI instead of the bridge to call native methods also on legacy modules on iOS. (#19209 by @lukmccall)
  • Added cacheDirectory and persistentFilesDirectory to AppContext on Android to fix cache directories being incorrect in new Sweet API modules. It uses a new AppDirectoriesModule to get correct scoped directories from old module API. (#19205 by @aleqsio)

🐛 Bug fixes

  • Fixed the 2 files found with path 'lib/arm64-v8a/libfbjni.so' error on Android. (#18607 by @lukmccall)
  • Fixed event dispatching for Sweet API views when running in Fabric mode on Android. (#18814 by @kudo)
  • Update gradle excludes to fix detox tests. (#19254 by @esamelson)
  • Fixed event listeners do not work when running with remote debugging mode on iOS. (#19211 by @kudo)
  • Use shared C++ runtime to reduce library size on Android. (#19372 by @kudo)
  • Fixed JSCRuntime destroyed with a dangling API object on Android. (#19487 by @lukmccall)

💡 Others

  • Centralized Android emulator detection for native code and added checks to pick up additional emulator types in EmulatorUtilities. (#16177) by @kbrandwijk, @keith-kurak)
  • Created a separate high priority queue for all async function calls. (#18734 by @tsapeta)
  • The host object for native modules is now installed as global.expo.modules instead of global.ExpoModules. (#19273 & #19281 by @tsapeta, @lukmccall)

0.11.7 — 2022-10-06

🐛 Bug fixes

  • Fixed ModuleRegistry initialized twice when startup on Android. (#19384 by @kudo and @lukmccall)
  • Ensure that AppDelegate callbacks are invoked. (#19393 by @ferologics)
  • Fixed Android crash when Activity is destroyed before AppContext.onHostDestroy call. (#19406 by @kudo)

0.11.6 — 2022-10-02

🐛 Bug fixes

  • Give precedence to UIBackgroundFetchResult.newData over .failed in proxied ExpoAppDelegate.swift completion handlers. (#19311 by @ferologics)

0.11.5 — 2022-09-01

🐛 Bug fixes

  • Removed the hard dependency to Hermes or JSC in libexpo-modules-core.so on Android and fixed the broken support for react-native-v8. (#18899 by @kudo)

0.11.4 — 2022-08-18

🐛 Bug fixes

  • Fix issue with Android builds when gradle clean and build were called concurrently. (#18518 by EdwardDrapkin)
  • Fixed FabricUIManager errors when turning on new architecture mode on Android. (#18472 by @kudo)

0.11.3 — 2022-07-18

💡 Others

  • Changed access levels in the Logger and fixed the timer to log milliseconds instead of seconds. (#18271 by @douglowder)

0.11.2 — 2022-07-16

🐛 Bug fixes

  • Fix dangling pointer in the fbjni from the MethodMetadata::createPromiseBody on Android. (#18206 by @lukmccall)

0.11.1 — 2022-07-11

🐛 Bug fixes

  • Fixed a crash when remote debugging is enabled on Android. (#18165 by @kudo)

0.11.0 — 2022-07-07

🎉 New features

🐛 Bug fixes

  • Added support for React Native 0.69.x (#18006 by @kudo)

0.10.0 — 2022-06-23

🎉 New features

  • Add proxy methods for Permissions module accepting expo.modules.kotlin.Promise on Android. (#17668 by @bbarthec)
  • Create CurrentActivityProvider on Android. (#17571 by @bbarthec)
  • Create AppContextProvider on Android. (#17546 by @bbarthec)
  • Introduce dynamic properties in the Sweet API on iOS. (#17318 by @tsapeta)
  • Implemented classes in the Sweet API on iOS. (#17514, #17525 by @tsapeta)
  • Add basic support for sync functions in the Sweet API on Android. (#16977 by @lukmccall)
  • Better error handling in the synchronous functions on iOS. (#17628 by @tsapeta)
  • Experimental support for typed arrays on iOS. (#17667 by @tsapeta)

🐛 Bug fixes

  • Fix modules have not been deallocated during the application reload on iOS. (#17285 by @lukmccall)
  • Fix view props weren't recognized in the bare workflow on iOS. (#17411 by @lukmccall)
  • Fix support for optional function arguments on iOS. (#17950 by @barthap)
  • Added support for React Native 0.69.x (#17629 by @kudo)

💡 Others

  • Migrated Expo modules definitions to the new naming convention. (#17193 by @tsapeta)
  • Refactored Expo modules registration and the AppContext on iOS. (#17225 by @tsapeta)
  • Split the implementation of async and sync functions on iOS. (#17188 by @tsapeta)

0.9.0 — 2022-04-21

⚠️ Notices

  • Renamed all definition components to start with the uppercase letter. The old names will be removed in the next minor release. (#17153 by @lukmccall, #17098 by @tsapeta)

🎉 New features

  • Add ReactNativeHostHandler.getUseDeveloperSupport() to allow expo-dev-launcher to override this value at runtime. (#17069 by @esamelson)

0.8.0 — 2022-04-18

🛠 Breaking changes

  • Remove backward compatible workaround and drop react-native 0.64 support. (#16446 by @kudo)

⚠️ Notices

  • Deprecated current behavior of function module definition component in favor of asyncFunction to emphasize that it's being executed asynchronously in JavaScript. In the future release function will become synchronous. (#16630 by @tsapeta, #16656 by @lukmccall)
  • On Android bump compileSdkVersion to 31, targetSdkVersion to 31 and Java version to 11. (#16941 by @bbarthec)

🎉 New features

  • Add getDevSupportManagerFactory support to ReactNativeHostHandler. (#16434 by @lukmccall)
  • Add support for automatic setup of expo-dev-client on Android. (#16441 by @esamelson)
  • Stopped relying on deprecated ViewPropTypes from React Native. (#16207 by @tsapeta)
  • Added Android ReactNativeHostHandler.getJavaScriptExecutorFactory() for a module to override the JavaScriptExecutorFactory. (#17005 by @kudo)

🐛 Bug fixes

  • Fix the Fatal error: Expo modules provider must implement "ModulesProviderProtocol" runtime error in XCTest targets and SwiftUI Preview. (#16733 by @kudo)

💡 Others

  • Removed the opt-in feature to use the turbo module implementation of NativeModulesProxy in favor of another solution introduced in #15847. (#16825 by @tsapeta)

0.7.0 — 2022-01-26

🎉 New features

  • Allow accessing RCTBridge from the modules on iOS. (#15816 by @tsapeta)
  • Added support for native callbacks through the view props in Sweet API on iOS. (#15731 by @tsapeta)
  • Added support for native callbacks through the view props in Sweet API on Android. (#15743 by @lukmccall)
  • The ModuleDefinition will use class name if the name component wasn't provided in Sweet API on Android. (#15738 by @lukmccall)
  • Added onViewDestroys component to the ViewManager in Sweet API on Android. (#15740 by @lukmccall)
  • Added shortened constants component that takes vargs Pair<String, Any?> as an argument in Sweet API on Android. (#15742 by @lukmccall)
  • Introduced the concept of chainable exceptions in Sweet API on iOS. (#15813 by @tsapeta)
  • Sweet function closures can throw errors on iOS. (#15849 by @tsapeta)
  • Add requireNativeModule function to replace accessing native modules from NativeModulesProxy. (#15848 by @tsapeta)
  • Implemented basic functionality of JSI host object to replace NativeModulesProxy on iOS. (#15847 by @tsapeta)

🐛 Bug fixes

  • It's no longer possible to directly call methods from the ModuleDefinition in the ViewManagers on Android. (#15741 by @lukmccall)
  • Fix compatibility with react-native 0.66. (#15914 by @kudo)
  • Fix Plugin with id 'maven' not found build error from Android Gradle 7. (#16080 by @kudo)

0.6.5 — 2022-02-01

🐛 Bug fixes

  • Fix Plugin with id 'maven' not found build error from Android Gradle 7. (#16080 by @kudo)

0.6.4 — 2022-01-05

🐛 Bug fixes

  • Fix ReactInstanceManager.onHostPause exception from moving Android apps to background. (#15748 by @kudo)

0.6.3 — 2021-12-16

🐛 Bug fixes

  • Fixed the deep link wasn't passed to the application if the application wasn't running when the deep link was sent. (#15593 by @lukmccall)

0.6.2 — 2021-12-15

🎉 New features

  • Add onNewIntent and onBackPressed support to ReactActivityLifecycleListener. (#15550 by @Kudo)

0.6.1 — 2021-12-08

This version does not introduce any user-facing changes.

0.6.0 — 2021-12-03

🎉 New features

  • Made Foundation.URL a convertible type to consistently normalize file paths to file URLs. (#15278 by @tsapeta)
  • Improve external Android handlers or listeners backward compatibility by Java 8 interface default method. (#15421 by @kudo)

💡 Others

  • Add parameter to ReactNativeHostHandler.onDidCreateReactInstanceManager on Android. (#15221 by @esamelson)
  • Make the no-argument module initializer unavailable — onCreate definition component should be used instead. (#15262 by @tsapeta)

0.5.0 — 2021-11-17

🎉 New features

  • Method calls on iOS now can go through the JSI instead of the bridge (opt-in feature). (#14626 by @tsapeta)
  • AppDelegateWrapper is now written in Swift and is independent of the singleton modules. (#14867 by @tsapeta)
  • Implemented sending native events to JavaScript in Sweet API on iOS. (#14958 by @tsapeta)
  • [Sweet API] Introduced Convertibles on iOS — a way to use custom types as method arguments if they can be converted from JavaScript values. Provided implementation for some common CoreGraphics types. (#14988 by @tsapeta)
  • Introduce ReactActivityHandler and support createReactRootView hook. (#14883 by @kudo)
  • [Sweet API] Added support for array types in method arguments on iOS. (#15042 by @tsapeta)
  • [Sweet API] Added support for optional types in method arguments on iOS. (#15068 by @tsapeta)
  • [Sweet API] Added support for enums in method arguments on iOS. (#15129 by @tsapeta)
  • [Sweet API] Automatic conversion is now available for view props setters. (#15132 by @tsapeta)
  • [Sweet API] Added experimental implementation of the new API in Kotlin. (by @lukmccall)
  • Introduce EXAppDefines to get app building configurations. (#14428 by @kudo)
  • Introduce React Native bridge delegate handlers on iOS. (#15138 by @kudo)

🐛 Bug fixes

  • Fix Gradle error when running Gradle from outside of the project directory. (#15109 by @kudo)

0.4.7 — 2021-10-28

🐛 Bug fixes

  • Fix iOS app freezing in remote debugging mode. (#14922 by @kudo)

0.4.6 — 2021-10-27

This version does not introduce any user-facing changes.

0.4.5 — 2021-10-25

This version does not introduce any user-facing changes.

0.4.4 — 2021-10-15

🐛 Bug fixes

  • Fix UIManager has not setter or ivar error when reloading app. (#14741 by @kudo)

0.4.3 — 2021-10-15

This version does not introduce any user-facing changes.

0.4.2 — 2021-10-01

This version does not introduce any user-facing changes.

0.4.1 — 2021-09-29

🐛 Bug fixes

  • Removed accidentally published prebuilt binaries on iOS.

0.4.0 — 2021-09-28

🐛 Bug fixes

  • Fix imports that affect versioned code inside of Expo Go. (#14436 by @cruzach)
  • Fixed event emitter being registered after module registry initialization. (#14502 by @tsapeta)
  • Fix building errors from use_frameworks! in Podfile. (#14523 by @kudo)

0.3.2 — 2021-09-15

🛠 Breaking changes

🎉 New features

  • Added Platform.isAsyncDebugging to detect remote debugging (#14396 by @EvanBacon)

🐛 Bug fixes

  • Revert prebuilt binaries on iOS to fix build errors. (#14418 by @kudo)

0.3.1 — 2021-09-09

⚠️ Notices

0.3.0 — 2021-09-08

🎉 New features

  • Expo modules are now being automatically registered on iOS which means less installation steps. Using EXModuleRegistryProvider and EXModuleRegistryAdapter becomes deprecated. (#14132 by @tsapeta)
  • Pass useDeveloperSupport value to ReactNativeHostHandler for expo-updates. (#14198 by @kudo)

🐛 Bug fixes

  • Fix Cannot read property 'addProxiedListener' of null on Android. (#14343 by @lukmccall)
  • Fix '-[RCTModuleRegistry getAllExportedModules]: unrecognized selector crash while adding the event listener. (#14130 by @lukmccall)
  • Fix redbox error for Unable to find module for UMReactNativeEventEmitter in debug build. (#14276 by @kudo)

0.3.0-alpha.0 — 2021-08-17

🎉 New features

🐛 Bug fixes

  • Add generics to the permission hook factory to inherit right types. (#13860 by @bycedric)

0.1.1 — 2021-06-16

This version does not introduce any user-facing changes.

0.1.0 — 2021-06-16

This version does not introduce any user-facing changes.

0.0.2 — 2021-05-25

💡 Others

  • Added Interface suffix to sensors, barcode scanner and font interfaces names to get rid of name collisions. (#12888, #12912, #12949 by @tsapeta)

0.0.1 — 2021-05-07

This version does not introduce any user-facing changes.