Changelog
Unpublished
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
💡 Others
2.2.3 — 2025-03-11
🐛 Bug fixes
- Fixed
kotlinx.coroutines.CancellableContinuationImpl.alreadyResumedError
error on Android. (#35114 by @kudo)
2.2.2 — 2025-02-14
🎉 New features
- [iOS] Support async functions by SwiftUI views (#34853 by @jakex7)
2.2.1 — 2025-02-06
This version does not introduce any user-facing changes.
2.2.0 — 2025-01-27
🎉 New features
- [Android] Added support for Jetpack Compose views. (#33759 by @aleqsio)
🐛 Bug fixes
- Fixed AppDelegate.mm methods not be called on iOS. (#34464 by @kudo)
- [Android] Fixes
AppContext
is lost in nested converters. (#34373 by @lukmccall)
💡 Others
- [Android]: Added callback to executeTask method signature after adding package expo-background-task (#33438 by @chrfalch)
2.1.4 — 2025-01-19
🎉 New features
💡 Others
2.1.3 — 2025-01-10
This version does not introduce any user-facing changes.
2.1.2 — 2024-12-16
🐛 Bug fixes
2.1.1 — 2024-12-02
This version does not introduce any user-facing changes.
2.1.0 — 2024-11-29
🎉 New features
- Added support for rendering children components in SwiftUI views. (#33271 by @tsapeta)
🐛 Bug fixes
- Fixed backwards compatibility in the
EventEmitter
constructor. (#33294 by @tsapeta)
💡 Others
- Fixed compatibility for React Native 0.77. (#33277 by @kudo)
- [Android] Bump KSP version for Kotlin 2.0.21. (#33306 by @kudo)
2.0.6 — 2024-11-22
🐛 Bug fixes
- [Android] Fixed issue with RNHeadlessAppLoader destroying the reactHost instance in the new architecture. (#33176 by @chrfalch)
2.0.5 — 2024-11-22
🐛 Bug fixes
- [iOS] Fixed build error when using jsEngine=jsc. (#33130 by @kudo)
- Fixed TypeScript incompatible
process
type error when including @types/node
. (#33155 by @kudo)
💡 Others
- [Android] Introduced
applyKspJvmToolchain()
gradle helper to enforce JVM Toolchain version for KSP. (#33148 by @kudo)
2.0.4 — 2024-11-19
🎉 New features
- [Android] Supported css properties (border, background and shadow) by default. (#33074 by @lukmccall)
🐛 Bug fixes
- Fixed type errors when using
ts-jest
. (#32954 by @kudo)
- [Android] Fixed `no non-static method "SharedObject.getSharedObjectId()" when proguard is enabled. (#33011 by @lukmccall)
💡 Others
- Use
findNodeHandle
with a native ref instead of a class component instance to avoid expensive calls to findCurrentFiberUsingSlowPath
. (#33016 by @tsapeta)
- Introduced
ReactNativeFeatureFlags
compat to fix React Native 0.77 breaking changes. (#33077 by @kudo)
- Fixed compatibility for React Native 0.77. (#33079 by @kudo)
2.0.3 — 2024-11-14
🐛 Bug fixes
- Fixed requests from
expo/fetch
being stuck on iOS. (#32894 by @kudo)
- [Android] Fixed sending event containing
ByteArray
from the Kotlin module results in string ID instead of Uint8Array
. (#32945 by @lukmccall)
2.0.2 — 2024-11-13
💡 Others
- [Android] Added
executeTask
method to TaskManagerUtilsInterface
(#32849 by @chrfalch)
2.0.1 — 2024-11-12
🐛 Bug fixes
2.0.0 — 2024-11-10
🐛 Bug fixes
- [Android] Ensure that the headless app loader is started on the main thread. (#32705 by @chrfalch)
2.0.0-preview.10 — 2024-11-07
🐛 Bug fixes
2.0.0-preview.9 — 2024-10-31
💡 Others
- [Android] Fix
ClassCastException
in headless app loader under the old architecture. (#32390 by @robertying)
2.0.0-preview.8 — 2024-10-31
🛠 Breaking changes
💡 Others
- [android] Added helper for looking up TaskService instance used by expo-task-manager (#32300 by @chrfalch)
- Made TypeScript declaration for
process
an interface. (#32464 by @tsapeta)
2.0.0-preview.7 — 2024-10-29
💡 Others
2.0.0-preview.6 — 2024-10-29
This version does not introduce any user-facing changes.
2.0.0-preview.5 — 2024-10-28
🐛 Bug fixes
- Fixed updating props on SwiftUI views on the New Architecture. (#32381 by @tsapeta)
- Fixed build error when
use_frameworks!
. (#32358 by @kudo)
2.0.0-preview.4 — 2024-10-25
💡 Others
- Added a new dynamic type dedicated for Either types. (#32328 by @tsapeta)
2.0.0-preview.3 — 2024-10-24
This version does not introduce any user-facing changes.
2.0.0-preview.2 — 2024-10-24
🐛 Bug fixes
💡 Others
2.0.0-preview.1 — 2024-10-22
🐛 Bug fixes
- [iOS] Removed window synthesis in
EXAppDelegateWrapper
to fix crashes caused by deallocated RCTFabricSurface
. (#32233 by @tsapeta)
2.0.0-preview.0 — 2024-10-22
🛠 Breaking changes
🎉 New features
- [Android] Add support for
onUserLeaveHint
. (#32033 by @behenate)
- [Web] Modules are now registered in global. (#29870 by @aleqsio)
- [iOS] Add support for passing SharedObjects as a function parameter. (#30314 by @aleqsio)
- Added support for
startObserving
and stopObserving
on the web. (#28953 by @aleqsio)
- Switched exported
EventEmitter
to the C++ implementation. (#28946 by @tsapeta)
- [Android]
OnStartObserving
and OnStopObserving
can now be attached to a specific event. (#29012 by @lukmccall)
- [Android] Add the ability to change the name of the exported shared object. (#30040 by @lukmccall)
- [Android] Supported returning of the
SharedObject
from functions. (#30426 by @lukmccall)
- [iOS] Support implementing
customizeRootView
in ExpoAppDelegateSubscriber
. (#30550 by @alanjhughes)
- [Android] Added support for primitive arrays in functions. (#30657 by @lukmccall)
- Implemented
toJSON
function on shared objects that includes dynamic properties defined in their prototype chain. (#30813 by @tsapeta)
- [iOS] Added experimental support for rendering SwiftUI views. (#19888 by @tsapeta)
- [Android] Introduced experimental converter to support a broader range of types that can be passed to the JS. (#30944 by @lukmccall)
- [iOS] Add functions that are called before and after a shared object is removed from the registry. (#30949 by @alanjhughes)
- [Android] Rewrite map converter to support a broader range of types that can be passed to the JS. (#31016 by @lukmccall)
- [Android]
EitherTypeConverter
now can work with the Dynamic
class. (#31074 by @lukmccall)
- [iOS] Added a way to provide shared objects memory pressure to improve garbage collection of native objects retaining some heavy data. (#31168 by @tsapeta)
- [Android] The single parameter now can be auto-cast to the list. (#31290 by @lukmccall)
- [Android]
SharedRef
converter now checks the inner ref type. (#31441 by @lukmccall)
- [Android] Added support for changing if functions are enumerable. (#31495 by @lukmccall)
- Introduced a base class for all shared refs (
expo.SharedRef
). (#31513 & #31706 by @lukmccall)
- [Android] Add support for react-native 0.76 (#31580 by @gabrieldonadel)
- [Android] Added
onStartListeningToEvent
and onStopListeningToEvent
to the SharedObject
. (#31385 by @lukmccall)
- Added Apple shared app groups support. (#31519 by @kudo)
- [Android] Added a way to provide shared objects memory pressure to improve garbage collection of native objects retaining some heavy data. (#31784 by @lukmccall)
- Added
nativeRefType
to SharedRef
. (#31776 by @lukmccall)
- [Android] Added
kotlin.time.Duration
support. (#31858 by @lukmccall)
- Return duration from logger timer block methods. (#31805 by @wschurman)
- [iOS] Made
CMTime
from CoreMedia
a convertible type. (#31967 by @tsapeta)
🐛 Bug fixes
- [Android] Fixed
RNHeadlessAppLoader
class for New Architecture support. (#32146 by @chrfalch)
- [iOS] Fix using enums as optional arguments. (#32147 by @aleqsio)
- [Android] Change JS return type for kotlin
null
to be null
instead of undefined
. (#31301 by @aleqsio)
- [iOS] Swift
Enumerable
s did not correctly convert to JS values. (#30191 by @vonovak)
- [jest] Fix
uuid
mock in jest-expo
. (#29840 by @EvanBacon)
- [Android] Fix error: no viable constructor or deduction guide for deduction of template arguments of 'weak_ptr' (#29075 by @rafi16jan)
- [Android] Fix
getContext().getNativeModule(UIManagerModule.class)
in Bridgeless. (#29203 by @arushikesarwani94)
- [iOS] Fix data race in
PersistentFileLogSpec.swift
. (#28924 by @hakonk)
- [Android] Fix the event emitter, which might crash during the reloads. (#29176 by @lukmccall)
- [iOS] Fix random conversion errors when converting JavaScript floating point numbers to
Swift.Float
. (#29053 by @behenate)
- Fixed a crash when the event listener throws an error. (#30065 by @tsapeta)
- [Android] Fixed the record's constructor with default parameters were being ignored when converting from JavaScript to native. (#30217 by @lukmccall)
- [iOS] Fixed returning already registered shared objects. (#30241 by @tsapeta)
- [Android] Provide value in
getName
of ModuleRegistryReadyNotifier.java
(#30358 by @WoLewicki)
- [Android] When a
SharedObject
that was passed as an argument is returned, it no longer creates a new object. (#30231 by @lukmccall)
- [Android] Fixed some types weren't correctly converted when using coroutines. (#30227 by @lukmccall)
- [Android] Fixed not throwing when setting read-only properties. (#30428 by @lukmccall)
- [Android] Fixed
expo.modules.kotlin.jni.tests.RuntimeHolder
class not found crash when R8 is enabled. (#30572 by @kudo)
- [Android] Fixed
Class declares 0 type parameters, but X were provided
on Android when R8 is enabled. (#30659 by @lukmccall)
- [Android] Fixed SharedObject class names are obfuscated when R8 is enabled. (#30948 by @lukmccall)
- [Android] Fixed
CodedException.getCode()
crash when R8 is enabled. (#31392 by @kudo)
- [Android] Fixed getter for the third parameter of
Either
. (#31443 by @lukmccall)
- [Android] Fixed R8 build error
Missing class expo.modules.kotlin.types.ExperimentalJSTypeConverter$URIConverter
. on macOS host. (#31452 by @kudo)
- [iOS] Fixed
No space left on device
when saving persistent log. (#31583 by @RodolfoGS)
- Fixed iOS reload crash on New Architecture mode. (#31789 by @kudo)
- [iOS] Fixed views using the incorrect
AppContext
instance. (#31897 by @lukmccall)
- [iOS] Fixed crashes on the New Architecture when dispatching events during the props update. (#31971 by @tsapeta)
- Fixed
registerAdditionalModuleClasses
deadlock issue on old architecture mode. (#32209 by @kudo)
💡 Others
- Added documentation links to
Record
and Field
implementations (#31997 by @vonovak)
- Remove web hydration
process.env
type. (#31267 by @EvanBacon)
- Added an
async
extension for OkHttp requests. (#30841 by @aleqsio)
- Change
sideEffects
to use src
folder. (#29964 by @EvanBacon)
- [web] Use global
crypto
object for UUID. (#29828 by @EvanBacon)
- [iOS] Send open url event to all matching subscribers. (#29645 by @aleqsio)
- Use
process.env.EXPO_OS
for Platform.OS
and Platform.select
, when available. (#29429 by @EvanBacon)
- [Android] Removed unneeded in-between function call when resolving promise without arguments. (#28944 by @lukmccall)
- Exported some TypeScript declarations (e.g.
EventEmitter
) from expo-modules-core/types
. (#28994 by @tsapeta)
- [Android] Switch to the JS thread when sending an event. (#29753 by @lukmccall)
- Moved
process
object declaration to global declaration. (#29745 by @tsapeta)
- Use the
src
folder as the Metro target. (#29702 by @tsapeta)
- Make it possible for TypeScript to infer EventEmitter's events map. (#29056 by @tsapeta)
- [iOS] Stop throwing runtime errors when the promise is settled more than once. (#30000 by @tsapeta)
- [iOS] Renamed
pointer
property in the SharedRef
class to ref
for parity with Android. (#30061 by @tsapeta)
- [Android] Started using
noexcept
. (#30128 by @lukmccall)
- [Android] Decouple the modules state from the
AppContext
(#30098 by @lukmccall)
- Bumped Kotlin version to 1.9.24. (#30199 by @gabrieldonadel)
- [Android] Bump Kotlin coroutines version to 1.7.3. (#30226 by @lukmccall)
- [Android] Limit the number of "Current Activity is of incorrect class" log entries. (#30427 by @lukmccall)
- [iOS] Refactor and expose
URLSessionSessionDelegateProxy
class. (#30173 by @kudo)
- [Android] Supports passing
Accept: text/event-stream
header to bypass streaming requests from ExpoNetworkInspectOkHttpInterceptors
. (#30219 by @kudo)
- Replaced
@testing-library/react-hooks
with @testing-library/react-native
. (#30742 by @byCedric)
- Cleaned up the podspec and replaced
RN_FABRIC_ENABLED
flag with RCT_NEW_ARCH_ENABLED
. (#31044 by @tsapeta)
- JS values are now used directly instead of using shared pointers to improve the overall performance. (#31219 by @tsapeta)
- [iOS] Use singletons for string and data dynamic types. (#31220 by @tsapeta)
- [iOS] Fixed a bottleneck in the performance-critical code by getting away from
enumerated
function. (#31226 by @tsapeta)
- [Android] Cached argument's type information to improve memory and startup time. (#31297 by @lukmccall)
- [iOS] Make
func application(_ application: UIApplication, supportedInterfaceOrientationsFor window: UIWindow?)
open
. (#31398 by @abulenok)
- [Android] Expose
RuntimeContext.eval()
as JavaScriptRuntime.eval()
on iOS. (#31445 by @kudo)
- Removed all
NativeModulesProxy
occurrences. (#31496 by @reichhartd)
- Align web implementation exports as native to support DOM components when using
@expo/dom-webview
. (#31662 by @kudo)
- Removed
expo_patch_react_imports!
and align more stardard react-native project layout. (#31700 by @kudo)
- Removed deprecated code for react-native 0.74.0. (#31740 by @kudo)
- [Android] Improve error messages when converting the
Either
type. (#31787 by @lukmccall)
- [iOS] Improved converting function results. (#31827 by @tsapeta)
- [iOS] Disabled
ExpoView
recycling from the New Architecture. (#31841 by @tsapeta)
- [Android] Renamed
SharedObject.deallocate
to SharedObject.sharedObjectDidRelease
. (#31921 by @lukmccall)
- [Android] Throws a descriptive error when trying to use a released
SharedObject
. (#31922 by @lukmccall)
- Include error cause message in logger (#31929, #31953 by @wschurman)
- [Android] Started using view's event dispatchers with the
surfaceId
. (#32227 by @lukmccall)
⚠️ Notices
1.12.24 - 2024-09-03
🐛 Bug fixes
1.12.23 - 2024-08-23
This version does not introduce any user-facing changes.
1.12.22 - 2024-08-20
This version does not introduce any user-facing changes.
1.12.21 - 2024-08-14
🐛 Bug fixes
1.12.19 - 2024-07-11
💡 Others
- [iOS] Added
customizeRootView:
support to EXAppDelegateWrapper.createRCTRootViewFactory
. (#30245 by @kudo)
1.12.18 - 2024-06-28
🐛 Bug fixes
- Fixed
RCTTriggerReloadCommandListeners
not found build error on iOS. (#30014 by @kudo)
- Fixed blocking SSE responses from network interceptor on Android. (#30062 by @kudo)
1.12.17 - 2024-06-27
🐛 Bug fixes
- [Android] Reduce the number of global references to JSIContext. (#29936 by @lukmccall)
- Fixed
getPathPermissions
permission error for local path with spaces on iOS 16 and older. (#29958 by @kudo)
- [iOS] Fixed broken
addUIBlock
and executeUIBlock
on New Architecture mode. (#30030 by @kudo)
💡 Others
- [iOS] Exposed
Utilities
class for Expo Modules common tasks. (#29945 by @kudo)
1.12.16 - 2024-06-20
🐛 Bug fixes
- Fixed resource leakage from
ExpoRequestInterceptorProtocol
. (#29798 by @kudo)
1.12.15 - 2024-06-13
🐛 Bug fixes
- Fixed reload crash on Android. (#29593 by @kudo)
- [Android] Fixed converting from
null
to Record
sometimes didn't work as expected. (#29508 by @lukmccall)
1.12.14 - 2024-06-06
🐛 Bug fixes
- [Android] Fixed
No implementation found for com.facebook.jni.HybridData expo.modules.kotlin.jni.JavaScriptModuleObject.initHybrid
. (#29513 by @lukmccall)
1.12.13 - 2024-06-05
💡 Others
- [iOS] Refactored
ExpoFabricView
and remove the view wrapper for each native component. (#28829 by @kudo)
1.12.12 - 2024-05-29
This version does not introduce any user-facing changes.
1.12.11 — 2024-05-14
🐛 Bug fixes
- Fix expo-modules-core is broken on the server side. (#28764 by @alantoa)
1.12.10 — 2024-05-09
🎉 New features
- Added
onKeyDown
and onKeyLongPress
to ReactActivityHandler
on Android. (#28684 by @lukmccall)
1.12.9 — 2024-05-06
This version does not introduce any user-facing changes.
1.12.8 — 2024-05-03
🐛 Bug fixes
- Fixed building error when use_frameworks on new architecture. (#28451 by @kudo)
1.12.7 — 2024-05-02
🎉 New features
- Introduced the
reloadAppAsync
to reload the app. (#28400 by @kudo)
1.12.6 — 2024-05-01
🐛 Bug fixes
- [Android] Fix
field operation on NULL object
when reloading the app. (#28555 by @lukmccall)
1.12.5 — 2024-05-01
This version does not introduce any user-facing changes.
1.12.4 — 2024-04-29
🐛 Bug fixes
- [Android] Fixed gziped payload does not correctly shown in network inspector. (#28486 by @kudo)
- [Android] Fixed crashes during the deallocation of shared objects. (#28491 by @lukmccall)
- [iOS] Fix accessing the view registry to avoid infinite loop crash. (#28531 by @tsapeta)
1.12.3 — 2024-04-26
🐛 Bug fixes
- [Android] Fixes SEGFAULTs caused by
std::shared_ptr<JavaCalllback::CallbackContext>::__on_zero_shared
. (#28483 by @lukmccall)
1.12.2 — 2024-04-23
This version does not introduce any user-facing changes.
1.12.1 — 2024-04-22
🐛 Bug fixes
- Fixed
AppContext.onHostResume()
sometimes getting null currentActivity
on Android. (#28338 by @kudo)
- Fixed backward compatibility in the build.gradle from third party Expo modules. (#28359 by @kudo)
1.12.0 — 2024-04-18
🛠 Breaking changes
🎉 New features
- [Web] Add
createWebModule
function to wrap web functionality with the NativeModule class. (#27739 by @aleqsio)
- [Web] Add web implementations of event emitter and stubs of shared objects and native modules. (#27595 by @aleqsio)
- Mark React client components with "use client" directives. (#27300 by @EvanBacon)
- [iOS] Added basic filesystem module to decouple expo-file-system from other packages. (#27069 by @aleqsio)
- [Android] Added syntactic sugar for defining a prop group. (#27004 by @lukmccall)
- Introduced a base class for all shared objects (
expo.SharedObject
) with a simple mechanism to release native pointer from JS. (#27038 by @tsapeta & #27331 by @lukmccall)
- [iOS] Added native implementation of the JS EventEmitter. (#27092 by @tsapeta)
- [iOS] Allow for the export of views that conform to
AnyExpoView
(#27284 by @dominicstop)
- [iOS] Added support for bridgeless mode in React Native 0.74 (#27242, #27289, #27531 by @tsapeta)
- [iOS] Implemented sending events from native shared objects. (#27333 by @tsapeta)
- Added support for
startObserving
and stopObserving
in the new EventEmitter
class. (#27393 by @tsapeta)
- [Android] Implemented sending events from native shared objects. (#27523 by @lukmccall)
- JS object of the native module is now an instance of the
NativeModule
class that inherits from EventEmitter
. (#27510 by @tsapeta)
- [iOS] Exposed a function on the runtime to schedule some work with synchronized access to JS. (#27567 by @tsapeta)
- [iOS]
OnStartObserving
and OnStopObserving
can now be attached to a specific event. (#27766 by @tsapeta)
- [iOS] Provide Exception.code to JavaScript (as Error.code) for all types of functions. (#27960 by @cltnschlosser)
🐛 Bug fixes
- Fixed breaking changes from React-Native 0.74. (#26357 by @kudo)
- Fixed breaking changes from React-Native 0.74. (#26357, #26587 by @kudo)
- [Android] Unit converter now ignores nullability. It will always return unit regardless of whether the input value is null or not. (#27591 by @lukmccall)
- Fixed
RCTHost
is not retained on iOS bridgeless mode. (#27715 by @kudo)
- Fixed errors on Android when running on bridgeless mode. (#27725 by @kudo)
- Fixed breaking changes from React Native 0.75. (#27773 by @kudo)
- Fixed crash from reloading on iOS and bridgeless mode. (#27928 by @kudo)
- Fixed SharedRef class names are obfuscated when R8 is enabled. (#27965 by @kudo)
- [iOS] Fix
recreateRootViewWithBundleURL
parameters. (#27989 by @gabrieldonadel)
- Fixed
ExpoBridgeModule.installModules()
is broken on Android and bridgeless mode. (#28065 by @kudo)
- [Android] Fixed segfaults in
expo::MethodMetadata::convertJSIArgsToJNI
. (#28163 by @lukmccall)
- Fixed random
TypeError: Cannot read property 'NativeModule' of undefined
exceptions on Android. (#28200 by @kudo)
- Fixed white screen flickering when using expo-updates with longer
fallbackToCacheTimeout
. (#28227 by @kudo)
- [iOS] Fixed random crashes when reloads and
EXJavaScriptObject
accesses to dangling pointers. (#28262 by @kudo)
💡 Others
- Deprecated
expo.modules.core.Promise
. (#27471 by @aleqsio)
- Removed deprecated
global.ExpoModules
. (#26027 by @tsapeta)
- Remove most of Constants.appOwnership. (#26313 by @wschurman)
- Added an alternative way of installing the JSI bindings. (#26691 by @lukmccall)
ObjectDeallocator
is now a native state instead of a host object. (#26906 by @tsapeta)
- Moved away from
SharedObjectRegistry
being a singleton. (#27032 by @tsapeta)
- Moved and added more JSI utils to the common C++ codebase. (#27045 by @tsapeta)
- Introduce
EXCreateReactBindingRootView
to create correct React Native setup for New Architecture mode. (#27216 by @kudo)
- Set bridge on
AppContext
in ExpoBridgeModule
. (#27378 by @alanjhughes)
- Added TypeScript declarations and documentation for global JSI bindings. (#27465 by @tsapeta)
- [iOS] Added bridgeless support on ExpoReactDelegate. (#27601, #27689 by @kudo)
- [Android] Added bridgeless support on ReactNativeHostHandler. (#27629 by @kudo)
- Refactored out
EXReactRootViewFactory.createDefaultReactRootView:
to RCTAppDelegate.recreateRootViewWithBundleURL:
category. (#27945 by @kudo)
- Added
ReactNativeHostHandler.onReactInstanceException()
for client to listen for exceptions on Android. (#27815 by @kudo)
- Removed the legacy interfaces for font processors as they are no longer used by
expo-font
and nothing else depends on them. (#26380 by @tsapeta)
- Removed deprecated backward compatible Gradle settings. (#28083 by @kudo)
- Bumped Kotlin version to 1.9.23. (#28088 by @kudo)
- Introduced
onDidCreateDevSupportManager
handler to support error recovery from expo-updates. (#28177 by @kudo)
- Dropped support for custom type converters on Android. (#28252 by @lukmccall)
- Introduced
ExpoReactDelegateHandler.bundleURL
for clients to override newer bundleURL. (#28256 by @kudo)
1.11.11 - 2024-03-11
🐛 Bug fixes
- [Android] Ensured that
onCreate
before OnActivityEntersForeground
event. (#26944 by @lukmccall)
- [Android] Fixed activity contract registration after host destruction. (#26881 by @lukmccall)
1.11.10 - 2024-03-06
🐛 Bug fixes
- [Android] Thrown an exception when nested types can't be converted instead of crashing the app. (#27449 by @lukmccall)
1.11.9 - 2024-02-16
🎉 New features
- Add timer capability to Logger. (#26454, #26477 by @wschurman)
- Add iOS support for
PlatformColor
and DynamicColorIOS
color props. (#26724 by @dlindenkreuz)
BarCodeScannerResult
interface now declares an additional raw
field corresponding to the barcode value as it was encoded in the barcode without parsing. Will always be undefined on iOS. (#25391 by @ajacquierbret)
1.11.8 - 2024-01-23
🐛 Bug fixes
1.11.7 - 2024-01-18
This version does not introduce any user-facing changes.
1.11.6 - 2024-01-12
This version does not introduce any user-facing changes.
1.11.5 - 2024-01-10
🎉 New features
🐛 Bug fixes
- Adjust proguard rules to prevent issues with types implementing
Enumerable
. (#26108 by @alanjhughes)
💡 Others
- Replace deprecated
com.facebook.react:react-native:+
Android dependency with com.facebook.react:react-android
. (#26237 by @kudo)
1.11.4 - 2023-12-21
This version does not introduce any user-facing changes.
1.11.3 - 2023-12-19
🐛 Bug fixes
- [iOS] Fixed
SharedObjectRegistry
crash for accessing internal data structures from multi-threads. (#25997 by @kudo)
- Fixed splash screen view flickering in dark mode on iOS. (#26015, #26029 by @kudo)
- Fixed
SharedObject
leakage on Android. (#25995 by @kudo)
1.11.2 — 2023-12-15
💡 Others
1.11.1 — 2023-12-12
🐛 Bug fixes
- [Android] Fixed
OnCreate
was called before the React
instance was ready. (#25866 by @lukmccall)
1.11.0 — 2023-12-12
🎉 New features
🐛 Bug fixes
- [Android] Prevent the app from crashing during reloading when an unfinished promise tries to execute.
- [Android] Fix
JavaScriptFunction
not working when the return type wasn't provided. (#25688 by @lukmccall)
- [Android] Fix requesting only
WRITE_SETTINGS
rejecting promise even if the permission was granted. (#25732 by @lukmccall)
- [Android] Fix functions that are scheduled on the main thread weren't being called as soon as possible. (#25757 by @lukmccall)
💡 Others
- [iOS] Made dynamic types creation faster. (#25390 by @tsapeta)
- [iOS] Add
FileSystemUtilities
to replace legacy interfaces. (#25495 by @alanhughes)
- Bump C++ compiler setting to C++20. (#25548 by @kudo)
- Marked
NativeModulesProxy
as deprecated in favor of requireNativeModule
and requireOptionalNativeModule
. (#25666 by @tsapeta)
1.10.0 — 2023-11-14
🛠 Breaking changes
🎉 New features
- Add
preventModuleOverriding
to ModuleRegistry.register
method. (#24860 by @wschurman)
- [iOS]
CGFloat
can now be used as an argument type. (#25140 by @tsapeta)
🐛 Bug fixes
- Mock native code on web platforms. (#25264 by @EvanBacon)
- [iOS] Fixed the object identifier for shared object types. (#25060 by @tsapeta)
- [iOS] Fixed concurrent functions (async/await) not converting results such as records and shared objects. (#25075 by @tsapeta)
- [iOS] Fixed concurrent functions (async/await) not supporting an owner argument (view and class functions). (#25141 by @tsapeta)
- Fixed UIView arguments not being resolved correctly when passed in with findNodeHandle (#24703 by @javache)
- [Android] Improve boot time on low-end devices. (#25267 by @lukmccall)
- [Android] Improve performance of enum and map converters. (#25272 by @lukmccall)
- [Android] Improve logic responsible for obtaining converters that slow down the startup time. (#25273 by @lukmccall)
- [Android] Improving the creation process of views for better performance. (#25274 by @lukmccall)
💡 Others
- Remove
unimodule.json
in favour of expo-module.config.json
. (#25100 by @reichhartd)
- Remove deprecated
REACT_NATIVE_OVERRIDE_VERSION
for React Native nightly testing. (#25151 by @kudo)
- Removed backward compatible code for deprecated SDKs. (#25154 by @kudo)
1.9.0 — 2023-10-17
🛠 Breaking changes
🎉 New features
🐛 Bug fixes
- Fixed typed arrays couldn't be returned from synchronous functions. (#24744 by @lukmccall)
- [iOS] Fixed exception when deallocating shared objects. (#24836 by @kudo)
- [Android] Fixed
null
or undefined
wasn't converted to JavaScriptValue
. (#24899 by @lukmccall)
- [Android] Fixed
Either
converter not working with types that have common representation in JavaScript. (#24903 by @lukmccall)
- [Android]
Any
converter doesn't use ReadableMap
or ReadableList
anymore. Objects and arrays are converted to Kotlin's primitives. (#24963 by @lukmccall)
💡 Others
1.8.0 — 2023-09-15
🎉 New features
💡 Others
- Remove deprecated
RCTDeviceEventEmitter
. (#24298 by @EvanBacon)
- Remove
deprecate
utility function. (#24298 by @EvanBacon)
- Deprecate
SyntheticPlatformEmitter
in favor of DeviceEventEmitter
. (#24298 by @EvanBacon)
- Introduced an AppContext config to provide things like documents and caches directories for the modules. (#24292 by @tsapeta)
- Fixed random
NullPointerExceptions
when calling Updates.reloadAsync
on Android. (#24442 by @lukmccall)
- Converting shared object id passed as a prop to the associated native object. (#24431 by @tsapeta)
- Added a convenient method to get the app delegate subscriber of the given type. (#23943 by @tsapeta)
1.7.0 — 2023-09-04
🎉 New features
- [Android] Surfaced errorManager to allow throwing errors and warnings from modules. (#23848 by @aleqsio)
- [Android] Enums can now be used to define events. (#23875 by @lukmccall)
- [Android] Promises can now be resolved without arguments. (#23907 by @lukmccall)
- Added support for React Native 0.73. (#24018, #24019 by @kudo)
- [Android]
Property
component can now take the native shared object instance as the first argument. (#24206 by @lukmccall)
- Introduced
requireOptionalNativeModule
that returns null
when the module cannot be found instead of throwing an error. (#24262 by @tsapeta)
- [Android] Introduced shared refs – a way to pass native objects among different independent modules. (#24446 by @lukmccall)
🐛 Bug fixes
- [Android] Refresh NativeModulesProxy if app bundle is reloaded. (#23824 by @douglowder)
- [Android] Fix nullability of parameter type in
List
and Map
when converting from JS to native. (#23942 by @lukmccall)
- Fixed Fabric setup error on iOS. (#24004 by @kudo)
- Fixed uuid v4 generation. (#24123 by @tsapeta)
- [Android] Fixed owner type of view functions. (#24135 by @lukmccall)
- [Android] Fixed IOException
No space left on device
when saving persistent log. (#24247 by @RodolfoGS)
💡 Others
- Use native UUIDv4 generation on
Android
and iOS
. (#24199 by @behenate)
- [Android] Add type converter for the
ReadableArguments
class to allow backward compatibility with older modules. (#24137 by @lukmccall)
- [Android]
SharedObjectTypeConverter
now can work with the Dynamic
class. (#24207 by @lukmccall)
- [Android] Expose a conversion between id and shared objects. (#24220 by @lukmccall)
1.6.0 — 2023-07-28
🐛 Bug fixes
- [iOS] Fixed custom fonts support on Fabric. (#23666 by @aleqsio)
- [Android] Fixed splash screen is missing when using the
getDelayLoadAppHandler()
from expo-updates. (#23747 by @kudo)
💡 Others
1.5.8 - 2023-07-23
🐛 Bug fixes
- Fixed the
ErrorViewGroup
cannot be cast to module view class exception on Android. (#23651 by @lukmccall)
- [iOS] Fix allowed orientations set in
Info.plist
being ignored when no delegates requested a different orientation. (#23593 by @behenate)
1.5.7 — 2023-07-12
🐛 Bug fixes
- Fixed regressions and crashes in the dev client introduced by #23405. (#23491 by @kudo)
1.5.6 - 2023-07-10
🐛 Bug fixes
- Fixed the Network Inspector cannot preview response body for response without the
Content-Length
header. (#23405 by @kudo)
- Fixed
SoLoader
does not work on Android. (#23415 by @kudo)
- Fixed slower boot time on Android. (#23345 by @lukmccall)
1.5.5 - 2023-07-07
🐛 Bug fixes
1.5.4 - 2023-07-04
🐛 Bug fixes
- Fix the
View cannot be cast to ViewGroup
exception on Android. (#23264 by @lukmccall)
💡 Others
- Changed Objective-C names for
ExpoReactDelegate
and ExpoReactDelegateHandler
to fix issues with versioning in Expo Go. (#23229 by @tsapeta)
1.5.3 — 2023-06-24
🎉 New features
- Supported other network CDP types like
Image
and Media
rather than Fetch
. (#23058 by @kudo)
1.5.2 — 2023-06-24
This version does not introduce any user-facing changes.
1.5.1 — 2023-06-22
This version does not introduce any user-facing changes.
1.5.0 — 2023-06-21
💡 Others
- [iOS] Added Interface Geometry Management section to ExpoAppDelegate. (#22599 by @behenate)
1.4.0 — 2023-06-13
📚 3rd party library updates
🎉 New features
- Added
ReactActivityHandler.getDelayLoadAppHandler
interface on Android. (#20273 by @kudo)
- [iOS] Introduced shared refs – a way to pass native objects among different independent modules. (#22583 by @tsapeta)
- Added support for React Native 0.72. (#22588 by @kudo)
🐛 Bug fixes
- Fix failing instrumentation tests in JavaScriptViewModule. (#22518 by @aleqsio)
- Fixed Android build warnings for Gradle version 8. (#22537, #22609 by @kudo)
- [Android] Fix the
Color
converter doesn't work on devices with SDK version below 26. (#22191 by @lukmccall)
- Refactored network inspector code and add unit tests. (#22669, #22693 by @kudo)
💡 Others
- Updated
androidx.activity:activity-ktx
to 1.7.1
and androidx.fragment:fragment-ktx
to 1.5.7
#22658 by @fobos531
1.3.2 — 2023-05-09
🐛 Bug fixes
1.3.1 — 2023-05-08
💡 Others
1.3.0 — 2023-05-08
🎉 New features
- [iOS] Introduced native functions on the native component instances. (#21746 by @tsapeta)
- View tag and React component ref can now be converted to an instance of the native view when used as a function's argument. (#21816 by @lukmccall, #21829 by @tsapeta)
- JavaScript functions can now be passed as an argument to a module method. (#21976 by @lukmccall, #22245 by @tsapeta)
- [iOS] Initializing and returning shared objects from the native side. (#22195 by @tsapeta)
🐛 Bug fixes
- Fixed build errors on React Native 0.72.x. (#22170, #22189 by @kudo)
- [Android] Fixed argument trailing not working correctly when all parameters are optional. (#22293 by @lukmccall)
💡 Others
- [Android] Made
fallbackCallback
optional in the registerForActivityResult
method. (#21661 by @lukmccall)
- [iOS] Removed the legacy implementation of view managers. (#21760 by @tsapeta)
- [iOS] Passed the app context instance down to dynamic types, object builders and convertibles. (#21819 by @tsapeta)
- [iOS] Use
jsi::WeakObject
for weak objects on Hermes. (#21986 by @tsapeta)
- [iOS] Removed legacyViewManager references from ExpoFabricView. (#22089 by @gabrieldonadel)
- [iOS] Dropped
proxiedProperties
prop. (#22280 by @tsapeta)
1.2.7 - 2023-05-03
🐛 Bug fixes
- [Android] Improve the initial loading speed of the native view. (#22153 by @lukmccall)
1.2.6 - 2023-03-20
🐛 Bug fixes
- [Android] Fixed
ReadableNativeMap
cannot be cast to the Record
. (#21773 by @lukmccall)
1.2.5 - 2023-03-14
🐛 Bug fixes
- [Android] Fixed coroutine functions crashing when invoked with more than 1 argument. (#21635 by @lukmccall)
- [iOS] Fix automatic percent-encoding when converting to the
URL
object. (#21569 by @tsapeta)
1.2.4 - 2023-03-03
🐛 Bug fixes
1.2.3 - 2023-02-21
🐛 Bug fixes
- [iOS] Fixed URI with encoded
#
getting cut off. (#21326 by @lukmccall)
- [Android] Fail gracefully when the view cannot be constructed due to the missing activity. (#21328 by @lukmccall)
1.2.2 — 2023-02-14
🐛 Bug fixes
- [iOS] Fixed convertible implementation for
URL
type to support unencoded UTF8 urls and file paths. (#21139 by @tsapeta)
- Fixed AppDelegateSubscriber broken when running on iOS dynamic framework or static framework mode. (#21206 by @kudo)
1.2.1 — 2023-02-09
🐛 Bug fixes
1.2.0 — 2023-02-03
🎉 New features
- View-related DSL functions do not require providing the view's type in function parameters on Android. (#20751 by @lukmccall)
- Add support for the
Long
type as function parameters on Android. (#20787 by @lukmccall)
- [Android] Added experimental support for building the function result from the object definition. (#20864 by @lukmccall)
- Removed boost dependency which needs extra downloading on Android. (#21000 by @kudo)
🐛 Bug fixes
- Fix view prop setter not being called when its new value is
null
or undefined
. (#20755 & #20766 by @tsapeta & @lukmccall)
- Fixed "Tried to register two views with the same name" error on fast refresh. (#20788 by @tsapeta)
💡 Others
- On Android bump
compileSdkVersion
and targetSdkVersion
to 33
. (#20721 by @lukmccall)
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
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.