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
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
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 toappContext
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 tointernal
protection level. (#20588 by @tsapeta)
💡 Others
- [iOS] Make
Enumerable
protocol implementCaseIterable
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
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
- Exposed coroutines related packages on Android. (#19896 by @lukmccall)
1.0.0 — 2022-11-03
This version does not introduce any user-facing changes.
0.13.4 — 2022-11-02
🐛 Bug fixes
0.13.3 — 2022-10-30
🎉 New features
- Added
AppContext.hasActiveReactInstance
on Android. (#19723 by @lukmccall)
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 returningAppCompatActivity
, but an instance ofandroid.app.Activity
class. (#19573 by @lukmccall)
⚠️ Notices
- Deprecated
ConvertibleArgument
in favor ofConvertible
andEnumArgument
in favor ofEnumerable
. (#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
⚠️ 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
andCGColor
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
andjava.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
andpersistentFilesDirectory
toAppContext
on Android to fix cache directories being incorrect in new Sweet API modules. It uses a newAppDirectoriesModule
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 ofglobal.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 proxiedExpoAppDelegate.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
0.11.0 — 2022-07-07
🎉 New features
- Create
AppContext.registerForActivityResult
mechanism similar toComponentActivity.registerForActivityResult
). (#17572, (#17987 by @bbarthec)
🐛 Bug fixes
0.10.0 — 2022-06-23
🎉 New features
- Add proxy methods for
Permissions
module acceptingexpo.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 allowexpo-dev-launcher
to override this value at runtime. (#17069 by @esamelson)
0.8.0 — 2022-04-18
🛠 Breaking changes
⚠️ Notices
- Deprecated current behavior of
function
module definition component in favor ofasyncFunction
to emphasize that it's being executed asynchronously in JavaScript. In the future releasefunction
will become synchronous. (#16630 by @tsapeta, #16656 by @lukmccall) - On Android bump
compileSdkVersion
to31
,targetSdkVersion
to31
andJava
version to11
. (#16941 by @bbarthec)
🎉 New features
- Add
getDevSupportManagerFactory
support toReactNativeHostHandler
. (#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 theJavaScriptExecutorFactory
. (#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 thename
component wasn't provided in Sweet API on Android. (#15738 by @lukmccall) - Added
onViewDestroys
component to theViewManager
in Sweet API on Android. (#15740 by @lukmccall) - Added shortened
constants
component that takesvargs 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 fromNativeModulesProxy
. (#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 theViewManagers
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
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
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 supportcreateReactRootView
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
0.4.7 — 2021-10-28
🐛 Bug fixes
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
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
0.3.1 — 2021-09-09
⚠️ Notices
- The package is now shipped with prebuilt binaries on iOS. You can read more about it on expo.fyi/prebuilt-modules. (#14350 by @kudo)
0.3.0 — 2021-09-08
🎉 New features
- Expo modules are now being automatically registered on iOS which means less installation steps. Using
EXModuleRegistryProvider
andEXModuleRegistryAdapter
becomes deprecated. (#14132 by @tsapeta) - Pass
useDeveloperSupport
value toReactNativeHostHandler
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
- Use stable manifest ID where applicable. (#12964 by @wschurman)
- Add permission hook factory. (#13782 by @byCedric)
- Experimental API for creating native modules in Swift (by @tsapeta)
🐛 Bug fixes
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.