Changelog History
Page 10
-
v0.57.6 Changes
INFO NOTE: It's highly recommended that you skip this version and upgrade to 0.57.7.
NOTE WELL: when you upgrade to this version you NEED to upgrade
react
andreact-test-renderer
to version"16.6.1"
. ๐ This patch release fixes a number of crashes, resolves build issues (both for iOS and Android). Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.โ Added
iOS specific
- โ Add iOS 12 textContentType options (#21079) (644fc57fad by @ultramiraculous)
โ Removed
- โ Remove useless additional blur call (#22156) (ada7089066)
๐ Fixed
- Improving Modal
visible
prop check to handle undefined and null (#22072) (cc13a7367b by @MateusAndrade) - ๐ Fix crash in nativeInjectHMRUpdate (#22412) (0b4fd621e3 by @vovkasm)
- ๐ Fix IllegalArgumentException when dismissing ReactModalHostView (e57ad4ee37 by @mdvacca)
- ๐ Fix regression in StyleSheet.setStyleAttributePreprocessor (#22262) (04085337bc by @brentvatne)
- ๐ Fix React Native AsyncMode and DevTools (f41383fb6d by @bvaughn)
- โ CxxReact: Silence 'unused lambda capture' warnings in open-source (#22240) (0c0540965a by @empyrical)
Android specific
- ๐ Fixed HTTP connection timeout on Android (#22164) (a508134724)
- 0๏ธโฃ resizeMode applies to Image.defaultSource (#22216) (673ef39561 by @dulmandakh)
- Android: Close websocket properly when remote server initiates close (#22248) (2e465bca15 by @syaau)
- โช Workaround a wrong fling direction for inverted ScrollViews on Android P (#21117) (b971c5beb8 by @mandrigin)
- ๐ Fix crash when releasing RN views (83405ff316 by @ayc1)
iOS specific
- ๐ iOS: Support inline view truncation (#21456) (70826dbafc by @rigdern)
- NetInfo: try to solve crash with releasing _firstTimeReachability (eebc8e230a by @mmmulani)
- Generate ip.txt before SKIP_BUNDLING check (#20554) (9c1ea45d38 by @keatongreve)
- ๐ Revert [Performance improvement for loading cached images on iOS ] (7eeb305933 by @kelset)
- ๐ Fix inability to remove 'Disabled' state from AccessibilityStates (5eaa2d29c0)
-
v0.57.5 Changes
NOTE WELL: when you upgrade to this version you NEED to upgrade
react
andreact-test-renderer
to version"16.6.1"
.๐ This patch release fixes a number of crashes, resolves build issues (both for iOS and Android), and brings React to v16.6.1. Thanks everyone who contributed code or participated in the discussion for cherry-picking commits.
๐ Changed
- React is now at v16.6.1 (8325e09e5c and 76c99f20e3 by @yungsters)
iOS specific
- ๐ Performance improvement for loading cached images (54f7eb3424 and 3a98318c91 by @esamelson and others)
๐ Fixed
- Fix crash in VirtualizedList during pagination (5803772017)
- Fix polyfilling of regeneratorRuntime to avoid setting it to undefined in some situations (2a7e02edf6 by @rafeca)
- Fix View, Text, and ActivityIndicator's
displayName
(7a914fcef4 and 53da585832 by @rajivshah3 and others) - ๐ Fix crash that happens when a component throws an exception that contains a null message (6debfdf6d6 by @mdvacca)
Android specific
- ๐ Fix incorrect merged asset path with flavor for Android Gradle Plugin 3.2 (e90319e9fa by @yatatsu)
- Fix crash in ReadableNativeArray.getType when size of ReadableNativeArray's length > 512 (09c78fe968 by @dryganets)
iOS specific
- Fix crash in rapid use of NetInfo.getCurrentConnectivity (67afaefa78 by @mmmulani)
- ๐ Fix Xcode 10 errors relating to third-party (277c19c93e by @mmccartney)
- ๐ Fix build errors when path to
$NODE_BINARY
contains spaces (7d4e94edcc by @sundbry) - ๐ Fix case where content of inline views didn't get relaid out (798517a267 by @rigdern)
- Fix InputAccessoryView's safe area when not attached to a TextInput (2191eecf54 by @janicduplessis)
-
v0.57.4 Changes
NOTE WELL: when you upgrade to this version you NEED to upgrade
react
andreact-test-renderer
to version"16.6.0-alpha.8af6728"
(next version, 0.57.5, will update to16.6.0
, and it will come soon). Also, please check the Known issues section below, especially if you are using Xcode 10.๐ Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
โ Added: new features
Android specific additions
- ๐ Android textTransform style support (22cf5dc566 by Stephen Cook)
๐ Changes: existing functionality that is now different
- โ Add deprecation notice to SwipeableListView (99471f87b9 by @TheSavior)
Android specific changes
- Consolidate native dependencies versions (ba608a2db7 by @dulmandakh)
- โฌ๏ธ bump okhttp3 to 3.11 (10fc548809 by @dulmandakh)
- Android: Send
<Text>
metrics in onTextLayout events (737f93705c by @mmmulani) - ๐ Use TextLegend example in Android as well (335927db44 by @mmmulani)
iOS specific changes
- โฌ๏ธ Bump [email protected] (b9514995a2 by @peat-psuwit)
- Text: send metrics after rendering (iOS) (737f93705c by @mmmulani)
- ๐ Allow specifying iOS version for run-ios with simulator option (0fab27cbac by @elyalvarado)
- ๐ Relax the requirement that lazy module cannot be initialized on the main thread (dbc864c9cd by @spredolac)
๐ Fixed: bugs that have been resolved
- ๐ Fix crashes on invalid regex (298f14da12 by @RSNara)
- ๐ Fix pull to refresh refresh component clipping on Android (8a3a0ad2d0 by Andy Huang)
- ListView requestAnimationFrame leak (70b5eb3aa2 by @exced)
๐ Android specific fixes
- โก๏ธ reverted Update bad method
- ๐ Fix accessibility role crash (1f96ff62cf by Haseeb Saeed)
- ๐ Fix accessibilityRole value lookup (1f96ff62cf by @ayc1)
- ๐ Fix DynamicFromMap object pool synchronization (b0d68c0bb9 by @haitaoli)
- ๐ Back out "[react-native][pr] Rounded corner rendering fixed on Android N." (bb407fa1ec by Jonathan Lee)
- ๐ Fix onTextLayout metrics on Android when using alignText (1c240ae898 by @mmmulani)
- Cleaning up imports in ViewGroupManager (082a869dae by @mdvacca)
๐ iOS specific fixes
- ๐ Fix issue when inserting text at 0 when maxLength is set (17415938c7 by @ejanzer)
Known issues
There are a few issues that don't have a finalized solution (as it happens for 0.x projects). In particular:
- ๐ when using Xcode 10 and
react-native init
, your build may fail due to third-party build steps (#20774). There is a commit we are planning to cherry pick in a future release that should help - in the meantime, you should be able to run these commands from the project folder to fix the issue (you should need to do it only once per project):
cd node_modules/react-native scripts/ios-install-third-party.sh cd third-party/glog-0.3.5/ ../../scripts/ios-configure-glog.sh
- React
16.6.0
works for the most part, aside from the Context API (check this issue) - and if you are eager to test the new React Hooks you will have to be patient, as they are not production ready and16.7.alpha
is not yet supported by React Native.
-
v0.57.3 Changes
NOTE WELL: when you upgrade to this version you NEED to upgrade
react
andreact-test-renderer
to version"16.6.0-alpha.8af6728"
. Also, please check the Known issues section below, especially if you are using Xcode 10.๐ Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
โ Added: new features
- ๐ฆ Expose enableBabelRuntime config param externally (89a358f347 by @rafeca)
Android specific additions
- โ Add test for InterpolatorType (b7526b2095 by @ejanzer)
๐ Changes: existing functionality that is now different
- ๐ React sync for revisions ade5e69...d836010 (fa6035bda6 by @yungsters)
- React: Bump Canary Version (8258b6a280 by @yungsters)
- โฌ๏ธ FBJS: Upgrade to 1.0.0 (ee034596fe by @yungsters)
- โฌ๏ธ Bump [email protected] (bf47589b8b by @rafeca)
- โก๏ธ Update to Detox 9 (15c05988e9 by @kelset)
- โ Add Deprecation Warning to ListView (e90f5fa263 by @TheSavior)
- ๐ Deprecate legacyImplementation of FlatList (3aa8f09b44 by @TheSavior)
Android specific changes
- โฌ๏ธ bump Android NDK to r17c (436cf154bb by @dulmandakh)
- Resolve protocol http, https when not in lowercase (d00bdb9bb8 by @hyunjongL)
- Normalize scheme for URL on Android (4b6f02ea75 by @radeno)
iOS specific changes
- โฌ๏ธ Bump up the buffer size and show a warning if the trace might be truncated (1fc8a46570 by @alexeylang)
๐ Fixed: bugs that have been resolved
- ๐ Fix deprecation warning message in Switch (997f382adc by @radko93)
๐ Android specific fixes
- ๐ Fix default accessibility delegate (fa6035bda6 by @ayc1)
- ๐ Fix accessibility role/label (fa6035bda6 by @ayc1)
- When converting arguments JS->Java, handle integers correctly (bb9b9a8b9d by @mhorowitz)
- ๐ Fix CameraRoll.getPhotos() crash on Android if device has a problematic video asset (4768bea0cf by @naxel)
- Android ScrollView fix for snapToInterval not snapping to end (6eeff75849 by @olegbl)
- ๐ Fix for InterpolatorType crash (01a1004808 by @ejanzer)
- โก๏ธ Update bad method (1592a8d424 by @grabbou)
๐ iOS specific fixes
- Dealloc first time RCTNetInfo reachability callback (e7e63fd409 by @mmmulani)
- iOS: fix the baseline issue when displaying a mixture of different-language characters (c1561ab441 by @BingBingL)
- ๐ Fix artifacting on RN-drawn borders with asymmetric radii (9e6522374b by @jamesreggio)
- check isAvailable key on simulator object (1031872784 by @antonychan)
- 0๏ธโฃ ios-simulator: change default iphone version (6d09df5b72 by Vitor Capretz)
Known issues
๐ There are a few issues that don't have a finalized solution. In particular, when using Xcode 10 and
react-native init
, your build may fail due to third-party build steps (#20774). There is an open pull request which we are testing and hope to land soon (#21458). In the meantime, you can find a workaround here: https://github.com/facebook/react-native/issues/20774. -
v0.57.2 Changes
๐ Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
โ Added: new features
Android specific additions
- Android subpixel text (65e4e674fc by @kevinresol)
๐ Changes: existing functionality that is now different
- ReactScrollView should account for
overflow: scroll
(201f2f189f by @mcolotto) - โฌ๏ธ bump metro 0.47.0 (4750f52b34 by @rafeca)
- ๐ Use babel runtime instead of relying on global babelHelpers and regenerator (36033bd0ed by @janicduplessis)
- โฌ๏ธ React: Upgrade to react-devtools@3.4.0 (25119f95c8 by @yungsters)
- ๐ Change new Date() to Date.now() to save on date allocations (bbb2d9a5b3 by @dulinriley)
- ๐ Make config object read-only (2c1057062e by @rafeca)
- Cleanup the transformer flow types (28dedfb6d6 by @rafeca)
- โฌ๏ธ bump metro 0.47.1 (12ab08a5aa by @rafeca)
Android specific changes
- ๐ Android ScrollView support for
overflow: visible
(4af4da9089 by @olegbl) - ๐ฆ Expose a getter for overflow setting in ReactViewGroup (02ad56f541 by @kmagiera)
- โ Add workaround for Android Gradle Plugin 3.2 change to asset dir (ff084a4e80 by @edilaic)
๐ Fixed: bugs that have been resolved
- ๐ Fix HEAD request failing with
Invalid response for blob
(7e9c3f77cc by @anthonyhumphreys) - Check if child view != null before dropping (af181fb192 by @chrusart)
๐ Android specific fixes
- ๐ Fix event handlers for DPad arrows on Android TV (4d71b1525d by @krzysztofciombor)
- ๐ Rounded corner rendering fixed on Android N (748cf82c97 by @dryganets)
- Android: fix cookies lost on Android 5.0 and above (ea53727e16 by chenwenyu)
- ๐ allow zero offset when shadow radius is nonzero (97f0e43710 by Timothy Kukulski)
- Android ScrollView fix for pagingEnabled (e0170a9445 by @olegbl)
โ Removed: features that have been removed; these are breaking
- โ Remove global babelHelpers and regenerator (458d56c0a1 by @janicduplessis)
- โ Remove overflow hidden killswitch (59aada873e by @ayc1)
- โ Remove absolute path parameter from transformers (2e0d5c87e9 by @rafeca)
-
v0.57.1 Changes
๐ We are trying, for 0.57, to approach it as a version with a longer "support", while waiting for some features to land that will allow for 0.58 to be cut.
๐ Thanks to everyone that contributed to the discussion for cherry-picking the commits that landed in this release, and the developers who submitted those commits!
โ Added: new features
- ๐ฆ Expose AllowFileAccess property in WebView (0c576ef84a by @mdvacca)
iOS specific additions
- ๐ฆ Expose scrollEnabled as iOS prop for TextInput (b9c28c236b by Chun Chen)
๐ Changes: existing functionality that is now different
- ๐ Give RNPM the ability to look for plugins in
@Scoped
modules (4b106be477 by empyrical) - โฌ๏ธ Upgrade babel-eslint to 9.0.0 (44dc283bcd by @rafeca)
- โฌ๏ธ bump metro 0.45.6 (7bac0565e8 by @rafeca)
iOS specific changes
- Making RCTIsIPhoneX() return true for the R and Max models (5e7c3ca005 by @shergin)
- ๐ Way to register RCT_MODULE in Plugin2.0 instead of +load (5c160e5ded by Jeff Thomas)
- โก๏ธ Update RCTLinkingManager.h to explicitly state the 'nullability' of parameters (2271d1f912 by Warren Knox)
๐ Fixed: bugs that have been resolved
- ๐ท Pass the maxWorkers config param correctly to Metro (7a69f1aa27 by @rafeca)
- ๐ Fix ignored --projectRoot/watchFolders arguments ((9fca769e76 by @oblador)
- ๐ Debug only code were leaking into release builds on iOS. ((d1ff0b0cc5 by @dryganets)
๐ iOS specific fixes
- ๐ Fix RCTNetInfo first time connection status (e7e63fd409 by @karanjthakkar)
โ Removed: features that have been removed; these are breaking
iOS specific removals
- Removing development team from Xcode project (8103c431c8 by @hramos)
-
v0.57.0 Changes
๐ Welcome to the 0.57 release of React Native! This release addresses a number of issues and has some exciting improvements. We again skipped a monthly release, focused on quality by extending the release candidate phase, and let some upstream packages reach stable for inclusion.
๐ This release includes 599 commits by 73 different contributors! In response to feedback, we've prepared a changelog that contains only user-impacting changes. Please share your input and let us know how we can make this even more useful, and as always let us know if you have any feedback on this process.
Highlights
๐ New features
- โก๏ธ Accessibility APIs now support accessibility hints, inverted colors, and easier usage of defining the element's role and states; read more at @ziqichen6's excellent blog post
- On iOS,
WKWebView
can now be used within theWebView
component; read more at @rsnara's awesome blog post - ๐ Better support for out-of-tree platforms. For details, please refer to the discussion that the community used to get this up and running (there will be a new page in the docs dedicated to it too) - huge props to @empyrical for working on this!
โก๏ธ Tooling updates
- Android tooling has been updated to match newer configuration requirements (SDK 27, gradle 4.4, and support library 27); building with Android plugin 3.2 doesn't work due to the gradle scripts, so please stay on Android Studio 3.1 for now
- ๐ Support Babel 7 stable landed! Be sure to read here about using TypeScript and check out the Babel 7 migration guide for help migrating.
- ๐ Metro has been upgraded (with Babel 7 and better transformer support), and in the next major release we plan on having two new features (ram bundles and inline requires) optional for you all to use - you can read how it will happen here; moreover, if you have a custom packager config, we recommend you read also the "updating to this version" section.
- โก๏ธ Flow, React, and related packages have also been updated; this includes working support for the React Profiler.
The Slimmening is happening
As mentioned a few times in the past, the core team is reviewing the repository to trim it to the base React Native features in order to make the whole ecosystem more maintainable (by using a divide-et-impera approach, the community will move faster and enable pull requests to be reviewed and merged quicker). This change requires extracting some components into their own separate repos and removing old, unused code (details here).
0.57 is not directly affected by any changes, but we want you to know that:
- ๐
WebView
will be moved to its own repo at react-native-community/react-native-webview. There is already a base implementation there. Help us out by giving that a try, and expect thatWebView
will be deprecated soon NavigatorIOS
will be fully removed from the main codebase starting 0.58.0 (via this commit); it is now deprecated
โก๏ธ Updating to this version
โฌ๏ธ 1. Upgrade the version of React Native in the
package.json
from0.56.0
to0.57.0
, and the React version to16.5
๐ง 2. Change the babel-preset dependency from"babel-preset-react-native": "^5",
to"metro-react-native-babel-preset": "^0.45.0",
, then change the.babelrc
configuration to:{ "presets": ["module:metro-react-native-babel-preset"] }
๐ 3. Ensure that you have all the babel dependencies to version
^7.0.0
(you may also need to add"babel-core": "7.0.0-bridge.0"
as a yarn resolution to ensure retro-compatibility). The Babel team has released a tool, babel-upgrade, that should help you in this migration. โฌ๏ธ 4. Upgrading android gradle version to 4.4- In your project's
android/gradle/wrapper/gradle-wrapper.properties
file, change thedistributionUrl
tohttps\://services.gradle.org/distributions/gradle-4.4-all.zip
- In
android/build.gradle
file addgoogle()
right abovejcenter()
in bothbuildscript
andallprojects
repositories. Then change Android build tools to version 3.1.4classpath 'com.android.tools.build:gradle:3.1.4'
- In
android/app/build.gradle
file update all yourcompile
statements to beimplementation
, e.g.implementation 'com.facebook.fresco:animated-gif:1.10.0'
- Do note that when running your app from within Android Studio, you may encounter
Missing Byte Code
errors. This is due to a known issue with version 3.1.x of the android tools plugin. You'll need to disable Instant Run to get past this error. ๐ 5. If you have a custom packager configuration viarn-cli.config.js
, you probably need to update it to work with the updated Metro configuration structure (for full detail refer to Metro's documentation); here are some commonly encountered changes torn-cli.config.js
:
-const blacklist = require('metro/src/blacklist') +const blacklist = require('metro-config/src/defaults/blacklist') // ... module.exports = { + watchFolders: alternateRoots, + resolver: { + blacklistRE: blacklist + }, + transformer: { + babelTransformerPath: require.resolve('./scripts/transformer.js'), + }, - getProjectRoots() { - return [ - path.resolve(__dirname), - ].concat(alternateRoots) - }, - getBlacklistRE() { - return blacklist; - }, - transformModulePath: require.resolve('./scripts/transformer.js'), }
- Run
yarn
to ensure that all the new dependencies have been installed
โ Added: new features
- โ Add .nvmrc and ensure node version required is compatible with ESLint 5 (30b9d81087 by @slorber)
- Major improvements to accessibility features (48b3d1322b, b5b704dc19, c36e8b3307, 40f6998b67, c1d0ccde0f, 5eaa2d29c0, 10b603fdd3, d9eeae91a0, 3cfa7ae698, 5acb7211bb, 5741f77156, d0b86ecb4f, e739143809, c27b495a89, 5aa040dfb7, 03036f79f7, 3bedc78a35, ca01290d8e, 121e2e5ca6, 1bc52267f5, 48b3d1322b, ef3d8b23c3, ef3d8b23c3, 50e400128e, and f39d0923c7 by @ziqichen6)
- โ Add
YogaNodeProperties
implementation based onByteBuffer
(0c97e75dfe and 23657ccf5b by @davidaurelio) - โ Add
FlatList
andSectionList
to Animated exports (daa7c78055 by @yunyu) - โ Adding new styling props to
FlatList
/VirtualizedList
forListHeaderComponent
andListFooterComponent
(a2675ced4e) - โ Added more info to Module Registry systraces (c7fdd2701f by @axe-fb)
- โ Added support for out-of-tree platform plugins via a new
haste
field inpackage.json
; read more in the docs entry (03476a225e by @empyrical) - โ Added
snapToOffsets
toScrollView
and made a number of fixes tosnapToInterval
as well (fd744dd56c by @olegbl)
Android specific additions
- ๐ Allow registering custom packager command handlers (b3ef1c3a56 by @fkgozali)
- Implement
AccessibilityInfo.setAccessibilityFocus
for Android (be715ec705 by @draperunner) - โ Add Support for
overflow
style property (b81c8b51fc and bbdc12eda7by @yungsters)
iOS specific additions
WebView
can now useWKWebView
internally if you passuseWebKit={true}
(7062e5bdb5, 1442c265da, 3703927e7e, 7a6dd9807c, e5f95aba9b, 1741fe9571, 90e85a4adc, 0022354525, 03b57d9db6, 1584108805, a997c0ac16, 4ca949b46e, 721763020a, 1af17f1648, 215fa14efc, bacfd92976, 95801f1eda, b18fddadfe, 28b058c341, and 78fcf7c559 by @rsnara)- โ Add
accessibilityHint
for iOS (253b29dbd8 by @draperunner)
๐ Changes: existing functionality that is now different
- [BREAKING] In the CLI,
unbundle
is nowram-bundle
(ebf5aeab28 by @jeanlauliac) - โฌ๏ธ Bump minimum Node version to 8.3 (#20236) (e64e13fce3 by @hramos)
- โก๏ธ Updated React (70913a4623, b7bb25fe4c, and 672528ffde by @acdlite, @hramos, and @yungsters)
- โฌ๏ธ Upgrade Flow to v0.76.0 (eac34e3021 by @gabelevi)
- โฌ๏ธ Upgrade jest to 23.4.1 (51cf9eb3e8 by @rafeca)
- โฌ๏ธ Upgrade babel-eslint to v9.0.0-beta.2 with better support for Flow (abf1188de2 by @rubennorte)
- โฌ๏ธ Upgrade ESLint to 5.1.0 (0f2f0cad41 by @rubennorte)
- โฌ๏ธ Upgrade Babel to v7.0.0 (b9d1c832b0, 724c7498b6 by Peter van der Zee, and bf8e1b4ffa by @rubennorte and @rafeca)
- Metro is now at v0.45.0 (169d6839bb, bda84a32d0, 877212e18c, 169812f9ce, cfeb60c19b by @CompuIves and @rafeca)
- Hide pre-bundled notification when not on dev mode (edf71005b5 by @yancouto)
- ๐
Refined
StyleSheet.compose
Flow Type (50a481d23a by @yungsters) - Catch JS bundle load failure and prevent calls to JS after that (201ba8c69d by @fkgozali)
- ๐ง Use new Metro configuration in react-native cli (a32620dc3b and aaf797ad67 by @CompuIves)
- 0๏ธโฃ Whitelist
react-native-dom
in haste/cli config defaults (c4bcca6685 by @vincentriemer) - In the CLI, don't override
metro.config.js
settings (c5297c75cb by @rozele)
๐ฅ Breaking Changes
- Public methods of Image (
blur
,focus
,measure
,measureInWindow
,measureLayout
,setNativeProps
) are no longer bound to the image component instance. Therefore, it is unsafe to pass these methods by reference (i.e: as callbacks) to functions. So, things likesetTimeout(this._imgRef.focus, 1000)
will no longer work. Please instead do:setTimout(() => this._imgRef.focus(), 1000)
.
Android specific changes
Image
source without a uri now returns null (28c7ccf785 by @himabindugadupudi)targetSdkVersion
is 26 (bfb68c09ee by @dulmandakh)- โฌ๏ธ Upgrade NDK to r17b (6117a6c720 by @dulmandakh)
- โฌ๏ธ Upgrade NDK toolchain to 4.9 (ccdd450b12 by @dulmandakh)
- โฌ๏ธ Upgrade Android Support Library to version 27.1.1 and set compileSdkVersion to 27; buildToolsVersion comes along for the ride, too (874cca1ac2 and 044b399e65 by @dulmandakh)
- โฌ๏ธ Upgrade Android gradle plugin to 3.1.4, Gradle wrapper to 4.4 (6e356895e7 and 33d20da41b by @gengjiawen and @dulmandakh)
- โฌ๏ธ Upgrade to soloader 0.5.1 (b6f2aad9c0 by @gengjiawen)
- โฌ๏ธ Upgrade mockito to 2.19.1 (3ea803a814 by @dulmandakh)
- โฌ๏ธ Upgrade glog to 0.3.5 (b5fca80605 by @dulmandakh)
๐ Fixed: bugs that have been resolved
- ๐ Fixed builds on Windows machines (3ac86c366c by @rafeca)
- ๐ Fixed building tvOS (1f1ddd0261)
- ๐ Fixed
TextInputState
'scurrentlyFocusedField()
(b4b594cec1 by @janicduplessis) <VirtualizedList>
fix for jumpy content wheninitialScrollIndex
specified (e0c73633cf by @rbrosboel)- ๐ Fix local-cli assetRegistryPath and middlewares (f05943de0a by @janicduplessis)
- ๐ Fix issue with when all are
flexGrow
andflexShrink
set to 0 except for one (90a408ea6f by @priteshrnandgaonkar) - ๐ Fix react-native CLI's debugger UI path and metro host/port arg usage (5067540487 by @Kureev)
- ๐ Hotfix to include
react-native-windows
in hasteImpl accepted paths (54942746d4 by @rubennorte) - ๐ Fix some classes of incorrect Flow errors for
Animated
(db2159d0b3 by @yunyu) - ๐ Fixed a typo in DockerTests.md (c1831d50cf by @kant)
- ๐ Fix invalid use of destructuring in jest preprocessor (9d5bd50737 by @umairda)
- ๐ Fixed a CLI crash when using old versions of node (e61176d650 by @keksipurkki)
๐ Android specific fixes
- ๐ Fix issue with AsyncStorage not behaving properly on Android 7+ (1b09bd7fba)
- ๐ Fixed extreme
<TextInput>
slowness (5017b86b52 by @gnprice) - ๐ Fixed
<TextInput>
placeholder not being completely visible (84022321c4 and 86f24ccf71 by @jainkuniya) - ๐ Fix Horizontal
<ScrollView>
's scroll position during layout changes with RTL content (de573277bf) - ๐ Fix Horizontal
<ScrollView>
overflow issue (d5465a9a0a) - ๐ Fixing crash on SDK 15 on ReactTextInputLocalData (1bb2bead8b)
- ๐ Fix Drawing Rect for ReactScrollView (6a16bec882 by @yungsters)
- ๐ Fixed NoSuchKeyException Thrown From ReadableNativeMap bysafely unwrapping ReadableMap by defaulting to 0 if key not present (1a6666a116 by @Bhavik-P)
- ๐ Fixed runAndroid to enable the use of a package on port <> 8081 for Windows (3cd0737fe2 by @ihenshaw)
- Don't crash on upload retry when trying to fetch on a varying quality network (79fe925f1d by @dryganets)
๐ iOS specific fixes
- ๐ Fix
TextInput.clear()
andTextInput.setNativeProps({text: ''})
to work (2307ea60d0 by @magicien) - Correct fishhook import in RCTReconnectingWebSocket (75a0273de2)
- ๐ Change in RCTImagePickerManager to handle crashes if height/width is nil (82af7c989b by @abhi06276)
- ๐ Fix controlled
<TextInput>
on iOS when inputting in Chinese/Japanese (892212bad2 by @mmmulani) - ๐ Fixed
<ScrollView>
bug encountered with brownfield apps (fab5fffbb3 by @PeteTheHeat) - ๐ Fixed missing selection indicator lines on
<PickerIOS>
(e592d6f8c7 by @VSchlattinger) - ๐ Fix crash in RCTImagePicker on iOS (934c50fbe0 by @mmmulani)
- ๐ Fix
undefined_arch
error received when building in Xcode 10 beta (e131fffb37 by @futuun) - โ Add support for connecting to the Packager when running the iOS app on device when using custom Debug configuration (079bf3f206)
- ๐ Fixed RCTAnimation import for integrating with cocoapods (eef8d47a37 by @LukeDurrant)
โ Removed: features that have been removed; these are breaking
- [BREAKING] Removed
ScrollView.propTypes
; use flow or typescript for verifying correct prop usage instead (5b6ff01764 by @sahrens)
Android specific removals
- ๐ฆ
ReactInstancePackage
is now deprecated; use@link ReactPackage
or@link LazyReactPackage
(b938cd524a by @axe-fb)
-
v0.56.0 Changes
๐ Welcome to the June 2018 release of React Native! Over 60 contributors made 821 commits since March - and we are extremely grateful to every single one of you.
๐ฅ As you'll see in a second, this new version has some important breaking changes that required a lot of extra efforts to bring to a stable 0.56. This was the main reason behind skipping April and May from the monthly release cycle, but looking forward we are planning on going back to do a rollout every month.
Highlights
React Native now uses Babel 7
๐ When upgrading to 0.56, make sure to bump your
babel-preset-react-native
package.json
dependency to5.0.2
or newer (but still as fixed value).React Native library authors will need to update their libraries to make use of the updated Babel preset as Babel 7 is not backwards compatible.
๐ฆ If you have issues upgrading to Babel 7, please double check the related documentation, in particular the sections related to Package Renames and Scoped Packages.
โฌ๏ธ The
babel-bridge
library may be used if you need to use libraries that have not yet upgraded to Babel 7. You may also enforce the Babel 7 dependency via tools like yarn resolutions. Overall, you need to ensure all the@babel/*
deps are fixed at version7.0.0-beta.47
.Node 8 is now the minimum required version
Trailing commas are now allowed.
iOS 9 is now the minimum required version
๐ Any device that can run iOS 8, can upgrade to iOS 9. Developers who support iOS 8 in their apps may continue doing so as this is a Xcode-level setting (
IPHONEOS_DEPLOYMENT_TARGET
).Xcode 9 is now the minimum required version
โ We recommend using Xcode 9.4 as that is what we use to run our tests.
Android projects are now compiled using the Android 26 SDK
๐ The target API level is left unchanged in this release.
๐ Starting August 2018, new apps submitted to the Play Store will need to target API 26 as a minimum. You can now opt your project in to use API 26 (or newer) as the target. Please let us know about any issues, as we'd like to finalize support for Android API 26 by the time
0.57.0
is released.0๏ธโฃ
WebView
will only load http(s) URLs by default0๏ธโฃ Geolocation is disabled by default.
Consistently Throw for
<Text><View /></Text>
โ Removes a pitfall that people may run into when releasing an app for Android if the bulk of the testing has been performed on iOS only. Nesting a
<View>
within a<Text>
component (e.g.<Text><View /></Text>
) is unsupported on Android, but using this pattern on iOS has not thrown errors in the past. With this release, nesting a<View>
inside a<Text>
will now throw an error on iOS in order to reduce the parity gap between the platforms.Flow improvements, migrating away from PropTypes
โ Added Flow types for several components.
We're migrating away from PropTypes and runtime checks and instead relying on Flow. You'll notice many improvements related to Flow in this release.
- ๐ Fix project settings warnings on newer Xcode versions, remove unnecessary console logging.
- Modernized
YellowBox
. Sort warnings by recency, group warnings by format string, present stack traces, show status of loading source maps, support inspecting each occurrence of a warning, and bug fixes. - Prettier files!
- ๐ Lots of bug fixes.
State of React Native
๐ง Heads-up: the Facebook internal team is currently working on a rewrite of some core architecture pieces. This is a work in progress and we do not expect it to be ready for use in open source quite yet, but we felt the need to let you know what those commits mentioning Fabric are about.
โ Added: new features
- โก๏ธ Update
babelHelpers
with Babel 7 support (fbd1beaf66) FlatList
is now Strict Mode compliant (a90d0e3614)- ๐ Enable
?.
optional chaining operator plugins (aa6f394c42) - ๐ Support
flexWrap: 'wrap-reverse'
(d69e55060f) - โ Add prop type
accessibilityTraits
toText
(654435d1ed) - โ Add devDependencies support for templates (c4ab03a18e)
- โ Add support for springDamping in
SpringInterpolator
(1dde989919)
Android specific additions
- โ Add support for build.gradle with CRLF for use with
react-native link
(843cfc3b20) - โ add decimal pad to android (75e49a0637)
- โ Add a way to dismiss PopupMenu elements (353c070be9)
- 0๏ธโฃ Implement
Image.defaultSource
(b0fa3228a7) - ๐ Support Image resizeMode=repeat (0459e4ffaa)
- ๐ Yoga: Add back deprecated
getParent
methods for non-breaking API change (c3c5c3cbce)
iOS specific additions
- โ Run tests using Xcode 9.4 and iOS 11.4 (c55bcd6ea7)
- โ Add support for Homebrew-installed Node (0964135a17)
- โ Add textTransform style support (8621d4b797)
- โ Add docs for Swift usage to
RCTBridgeModule.h
(ca898f4367)
๐ Changes: existing functionality that is now different
- โฌ๏ธ Upgrade React Native to Babel 7 (f8d6b97140)
- ๐ New projects created using
react-native init
will use Babel 7 (e315ec9891) - Restrict
WebView
to only http(s) URLs: (634e7e11e3, 23f8f7aecb) - Node 8 is now the minimum required version (c1e6f27823)
- โฌ๏ธ Upgrade React to v16.4.1, sync React Renderer to revision ae14317 (c749d951ad)
- โก๏ธ Update new project template's Flow config to fix
Cannot resolve module X
isse due to removal of@providesModule
(843a433e87) - โฌ๏ธ Upgrade Flow to v0.75 (3bed272a62, bc2f12c68c, 6264b6932a)
- โฌ๏ธ Upgrade Flow definitions (f8b4850425)
- โฌ๏ธ Upgrade Prettier to v1.13.6 (29fb2a8e90, bc2f12c68c)
- โฌ๏ธ Upgrade Jest to v23.2.0 (536c937269, bc2f12c68c)
- โฌ๏ธ Upgrade Metro to v0.38 (d081f83a04)
- Modernized
YellowBox
(d0219a0301) - โ Disallow requiring from invariant/warning (521fb6d041)
- โ Remove native prop type validation (8dc3ba0444)
- โ Add
$FlowFixMe
to invalid prop accesses where Flow wasn't complaining before (f19ee28e7d) - Create Flow props for
Image
(8bac869f5d) - Flow type for
SegmentedControlIOS
(113f009698) - Flow type for
ProgressViewIOS
(c87701ba05) - Flow type for
PickerIOS
(1c66cdc7e8) - Flow type for
Switch
(06052a2330) - Flow type for
Slider
(cbe045a95f) - Flow type for
RefreshControl
(891dfc3da4) - Flow type for
ListView
(4b1ecb6204) - Flow type for
TextInput
(c8bcda8150) - Flow type for
TouchableBounce
(8454a36b0b) - Flow type for
TouchableOpacity
(44743c07ad) - Flow type for
TouchableHighlight
(f0c18dc820) - Flow type for
TouchableWithoutFeedback
(0b79d1faa2) - Flow type for
ScrollView
(b127662279) - Flow type for
DatePickerIOS
(97e572ea6d) - Flow type for
KeyboardAvoidingView
(188b118b60) - Flow type for
ActivityIndicator
(0b71d1ddb0) - โ Remove
$FlowFixMe
inTouchableBounce
(ffda017850) - โ Remove
$FlowFixMe
inScrollView
(af6e2eb02d) - โ Remove
$FlowFixMe
inListView
(af6e2eb02d) - โ Remove
$FlowFixMe
inText
(6042592cf4) - โ Remove
$FlowFixMe
inRTLExample
(206ef54aa4) - โ Remove
$FlowFixMe
inAppContainer
(a956551af7) - โ Remove
$FlowFixMe
inSlider
(1615f9d161) - ๐
StyleSheet
: Support animated values for border dimensions (3e3b10f404) - โก๏ธ Update
react-devtools-core
andplist
to include security fixes reported bynpm audit
(3a1d949906) - โก๏ธ Update
Switch
to ES6 Class (970caa4552) - โก๏ธ Update
Slider
to ES6 Class (5259450c14) - โก๏ธ Update
ActivityIndicator
to ES6 Class (edd7acbb1e) - โก๏ธ Update
RefreshControl
to ES6 Class (a35a238317) - โก๏ธ Update
KeyboardAvoidingView
to ES6 Class (c017dcb0f2) - โก๏ธ Update
DatePickerIOS
to ES6 Class (f8c8231706) - โก๏ธ Update
Text
to ES6 Class (ab92c00245) - Replace
context.isInAParentText
w/React.createContext
(e1339bc183) - Cleanup
Text
implementation (06c05e744d) - Switch
Text
toReact.forwardRef
(e708010d18) - Switch
View
toReact.forwardRef
(3e534b9aab) - โก๏ธ Update uses of
genMockFunction
andgenMockFn
tofn
in tests (390ded871c) - ๐ Make
ViewProps
exact (65c336f38f) - Spread
TVViewProps
intoViewProps
instead of intersection (bc658d3c44) - ๐ Allow trailing commas (1e2de71290)
- ๐ Use
let
/const
(8f5ebe5952) - ๐จ Refactor
MockNativeMethods
in Jest (5d4c542c58) - ๐ Use app name from
app.json
after ejecting (57774a4a98) - โฌ๏ธ Suggest
git apply --reject
for failed upgrades (4fbd244b9a) - ๐ Moved
TouchHistoryMath
from React to React Native (06085d3836) - ๐จ Refactor
RCTInputAccessoryView
(c136c54ff0) - Don't wrap
ListEmptyComponent
in an extra view (db061ea8c7) - ๐ Move
Text
PropTypes to its own file (cd8128b2ec) - ๐คก Mock
ReactNative.NativeComponent
native methods in Jest (3e9a371ace) - Tightening types for
View
andVirtualizedList
(5035af80ec) - ๐ Make values optional in
ViewPropTypes
(f1316cab6c) - propTypes are optional for native components (dbdf43b428)
- ๐
Rename
Style
toDangerouslyImpreciseStyle
(4895c645ea) - [BREAKING]
requireNativeComponent
's signature has been simplified to only take extraOptions (820673e707, b549e364e0, 28d37781c6, 1c90a2b47b, and 1ab7d49c2d by @yungsters)
๐ฅ Breaking Changes
- Public methods of Text (
blur
,focus
,measure
,measureInWindow
,measureLayout
,setNativeProps
) are no longer bound to the text component instance. It is therefore unsafe to pass these methods by reference (i.e: as callbacks) to functions. So, things likesetTimeout(this._txtRef.focus, 1000)
will no longer work. Please instead do:setTimeout(() => this._txtRef.focus(), 1000)
.
iOS specific changes
- [BREAKING] WebViews now can only use https; do not use it for
file://
(634e7e11e3 by @mmmulani) - iOS 9 is now the minimum required version (f50df4f5ec)
- โก๏ธ Update podspecs to target iOS 9 (092103e752)
- โ Xcode 9.4 is now used to run tests (c55bcd6ea7)
- ๐ฒ Prevent console logging on iOS 11.3+ within WebSocket (8125be942b)
- ๐ฆ Expose
RCTFont
size overrides (6611fefef7)
Android specific changes
- Projects are now compiled using Android SDK 26 (065c5b6590)
- ๐ Use Google Maven repo in new Android projects (6d56a234e3)
- โฌ๏ธ Upgrade Buck to v2018.03.26.01 (1324e7b558)
- โฌ๏ธ Upgrade gradle-plugin to 2.3.3, gradle to 3.5.1, gradle-download-task to 3.4.3 (699e5eebe8)
- โฌ๏ธ Bump NDK APP_PLATFORM to android-16 (b5dc45420a)
- โฌ๏ธ Bump glog to 0.3.5 (added libc++ support) (b5fca80605)
- ๐
ReactFragmentActivity
deprecated as it's not necessary when targeting API level 14 and above (77a02c0d83) - Touchables now play a sound on press (722f88ca90)
- 0๏ธโฃ Default
underlineColorAndroid
to transparent (a3a98eb1c7) - 0๏ธโฃ Disable
WebView
geolocation by default (23d61b35fb) - Ensure cookies with illegal characters are not sent to okhttp (04028bf216)
- ๐ Update app icons to match recent Android releases (94393f8652)
- ๐ Better error messages for
ReadableNativeMap
(30d06b4286) - โก๏ธ Update Fresco to v1.9.0, okhttp3 to v3.10.0 (6b07602915)
- โ Add tint color to inline icons (e8e2a6e410)
- ๐ Fix antialiasing rounded background (e4f88c66e3)
- ๐ฆ
react-native link
will now replace '/' by '_' when linking projects. If you previously linked scoped packages, they will get linked again. (dbd47592a1) - ๐ New project template now uses project-wide properties (0a3055d98a)
๐ Fixed: bugs that have been resolved
VirtualizedList
now accounts forListHeaderComponent
length when calculating offset (604bcfa4a8)- Prevent showing a hidden status bar when opening modals (076b1cea35)
- ๐ Fix crash when reloading while Perf Monitor is enabled (4fcd9970bd)
- ๐ Fixed concurrency issue in remote debugger (578b0b2a51)
- ๐ Fix
Modal
+FlatList
scrolling (45b0907f61) - ๐ Fix bug in
RCTNetworking
where not all tasks/handlers were being cleared during invalidation (b805172034) - ๐ Fix keyboard handling with
keyboardShouldPersistTaps: never
(ffe6c110f7) - ๐ Fix Responder Logic in
Text
(e2ce22b823) - ๐ Fix
VirtualizedSectionList
lint warnings (26a1eba1ce) - ๐ Fix
VirtualizedSectionList:ItemWithSeparators
(488a4c7e1c) - ๐ Fix
TextInput
's initial layout measurements (c6b4f9f2ce) - ๐ Fix
requireNativeComponent
check (1c90a2b47b) - ๐ Fix
TextInput
autocapitalization bug (ff70ecf868) - โ Add missing events to
ViewPropTypes
(41a940392c) - โ Add missing Jest mock in
StatusBarManager
(4a2c560768) - โ Add Flow declaration for Metro module (1853e15190)
- ๐ Fix type for
ReactNative.NativeComponent
(1/2) (de11ba2a5e) - ๐ Fix type for
ReactNative.NativeComponent
(2/2) (752863629d) - ๐ Move Image PropTypes to new file (67656991b3)
- โ Tests: Fix JUnit report location when running Jest (85fc98d437)
- โ Tests: Fix ReactImagePropertyTest SoLoader failures (#19607) (a52d84d7e1)
- ๐ Tests: Fix jest snapshot testing on Windows (216bce3163)
- ๐ Fixes "Cannot resolve module" errors in new
react-native init
projects (843a433e87) - ๐ Haste hotfix for
react-native-windows
(54942746d4)
๐ iOS specific fixes
- ๐ Fix undefined_arch error in Xcode 10 beta - e131fff
- ๐ Make
react-native run-ios
command play nicely with multiple Xcode versions (a130239257) - Correct fishhook import (75a0273de2)
- ๐ Fix bug where a Backspace event was emitted when entering characters after clearing a text in
TextInput
by an empty string (1ffb2b63be) - ๐ฆ Expose
InputAccessoryView
so it can be imported (80fc415cf1) - ๐ Fix
InputAccessoryView
safe area conformance (490f22ae72) - ๐ Fix use of C++ syntax in header file (bfcfe7961d)
- ๐ Fix install step when running
run-ios
(0934c1778f) - ๐ Fix
run-ios
not turning on Simulator (9736ddc061) - ๐ท Use correct library reference for Fishhook. This fixes the build for the new Xcode build system, on both Xcode 9 and Xcode 10 (a8b74576da)
- โ Add missing
onChange
event definition toDatePickerIOS
(3b53091869) - ๐ Fix crash during Archive phase on Xcode 9.3 (344c205070)
- โ
RNTesterPods
: Add missing folly include (128c9343c4) - โฌ๏ธ
RNTesterPods
: folly::Optional'shas_value()
tohasValue()
until folly is upgraded (128c9343c4) - โ
RNTesterPods
: Fix import forRCTTestAttributes.h
(128c9343c4) - โ
RNTesterPods
: Fixconversions.h
to use namespaced includes (128c9343c4) - ๐ Fix or mark enum conversions surfaced by
-Wenum-conversion
(b8f30db0ae) - ๐ Fix CocoaPods integration without DevSupport subspec (c09d509c2b)
- โก๏ธ Update Yoga to handle being in a Xcode framework project (cf036dbc7a)
- ๐ Fix Blob memory leak (122b3791ed)
- Avoid double reload event when reloading JS (7b9b1559a7)
- โ Suppress spurious warning about RCTCxxModule (569061dd83)
๐ Android specific fixes
- ๐ Fix extreme
TextInput
slowness on Android (5017b86b52) - ๐ Correct draw path dimensions while doing even border, fixes blurred borders (c5ca26a0e5)
- Don't pass additional arguments to
requireNativeComponent
in.android.js
files (a51e8b19cc) - Prevent
RefreshControl
from getting stuck when a parent is scrolled horizontally (33ffa79a51) - ๐ Prevent crash due to unsupported ellipsize mode (85e33aaf90)
- ๐ Fix okhttp3 response handling in
DevServerHelper
(56d48bd9ec) - ๐ Fix
ReactInstanceManager
unmountApplication to supportReactRootView
recycling (4a9b2a7302) - ๐ Fix
NullPointerException
when emitting event usingUIManagerModule
(291c01f4ff) - ๐ Fix link to Android build guide (57e7556b8d)
- ๐ Fix Android open source test failures (3e0ebc7663)
- ๐ Fix view indices with LayoutAnimation (05b75b9ebf)
- ๐ Fix originalNode memory leak (8102e35271)
- ๐ Fix
ScrollView
with aTextInput
(2f1421dec7) - Disable onKeyPRess logic when handler not defined (41975f75d9)
- ๐ fix permission requests on pre-M android (4e1abdd74d)
โ Removed: features that have been removed; these are breaking
- ๐ Deprecate
focusTextInput
andblurTextInput
(ce3b7b8204) - [BREAKING]
ImageResizeMode
onImage
is no longer exposed; check your usage ofresizeMode
; the same resize modes exist, but pass them as strings instead (870775ee73 by @TheSavior)
Android specific removals
- โ Remove native extensions (7c5845a5a2)
- โ Remove Fresco ProGuard rules (07df36557c)
iOS specific removals
- Disallow nesting of
<View>
within<Text>
(e.g.<Text><View /></Text>
) (6a1b41643a - โ Removed deprecated
UIActionSheetDelegate
methods (5863b564f8)
Known issues
๐ During the RC testing of this version, a few issues that have been opened don't have yet a finalized solution ( 19827, 19763, 19859, 19955 ). We are aware of them and we hope that by releasing 0.56.0 the surface of developers interacting to find solutions to them will allow for faster resolution and an even better 0.56.1 release. So please check the already opened issues before submitting new ones.
๐ If you are using Windows to develop React Native apps, we suggest you keep an eye on this issue in particular since there have been many reports of issues related to Win 10 and RN 0.56.
-
v0.55.0 Changes
๐ Welcome to the March 2018 release of React Native ! Over 81 contributors made 247 commits since February. Thanks for another exciting release.
Here are a few highlights:
- React Native is now using the MIT license
- ๐ Android TV device support
- Animated tracking with native driver - check out the silky smooth framerate
- Lots of Flow improvements
- ๐ Bugfixes
โ Added: new features
- โ Added support for animated tracking to native driver. Now you can use
useNativeDriver
flag with animations that track otherAnimated.Values
(b48f7e5605 by @kmagiera) - There's a new UTFSequence module in the library for common Unicode sequences (Emoji!) (54870e0c6c and 4761d5a83e by @sahrens)
- Added
contextMenuHidden
property for TextInput (2dd2529b3a by @amhinson) - Add
testOnly_pressed
to TouchableHighlight for snapshot tests (3756d41de1 by @sahrens)
Android specific additions
- โ Added support for Android TV devices (b7bb2e5745 by @krzysztofciombor)
- Implemented style
letterSpacing
for Text and TextInput (5898817fc1 by @motiz88) - Bundle download progress is now shown d06e143420 by @janicduplessis)
- AndroidInfoModule now also returns Android ID (216c8ec04b by @L33tcodex0r)
iOS specific additions
- Introducing InputAccessoryView, "a component which enables customization of the keyboard input accessory view" (38197c8230, 84ef7bc372, and 6d9fe455dc by @PeteTheHeat)
base-line
metric exposure for Text and TextInput (51b3529f6c, 0dbe18375e, and 7630a614e4 by @shergin)- DatePickerIOS now has
initialDate
prop (446ce49e9b) - ๐ฆ Expose version via
RCTVersion.h
'sRCTGetReactNativeVersion()
(30469ed001 by @LeoNatan) - ๐ Allow running multiple simulators simultaneously with
react-native run-ios --simulator ...
(2ad34075f1 by @koenpunt) - Introduced RCTSurfaceHostingProxyRootView for migration to RCTSurfaceHostingView (34b8876ac6 by @fkgozali)
- ๐ New UIManager API allowing intercept/delay mounting process (402ae2f01f and b90c1cf6c3 by @shergin)
๐ Changes: existing functionality that is now different
- React Native has now adopted the MIT license (1490ab12ef and 26684cf3ad by @sophiebits)
- The HelloWorld template now exclude
*.jsbundle
files from Git (21231084db by @aneophyte) - โฌ๏ธ
react-native-git-upgrade
now shows files merged with conflicts in red (e53a8f7097 by @alvinthen) - ๐ฑ
ResolvedAssetSource
type to have all read-only members (4d0ee37293 by @sahrens) - Flow types improvements (b6c7e551a9, b98bf1e097, 80c18395e2, 70a3ececc3, f7343576fc, a817c64043, 3fd82d3c89, cd8128b2ec, 5035af80ec, 26734a8473, 321ba067a8, b6b80f6a70, f1316cab6c, 2520c645f8, 214da52fe7, dbdf43b428, 49396aa78d, 4895c645ea, a3c07c95ef, 49ffc9fada, and c129457d3a by @TheSavior, @yungsters, and @alex288ms)
- ๐ Better enable cross-platform support of WebSocket.js (b9be28915c by @rozele)
- ๐ Better error handling in the CLI around making directories (d2817f48a1 by @BridgeAR)
- ๐ Verify that the component passed to createAnimatedComponent is not functional (10b642a7af by @janicduplessis)
- Don't truncate in the middle of an emoji (9c8c597000 by @Vince0613)
- ๐ Loosen Platform check to allow better code sharing for out-of-tree platforms (84affbd6a3)
- In CLI, fix issue with
isInstalled
check for Android and references to unregister (ec884890b1 by @rozele)
iOS specific changes
- tvOS
onPress
magnification animation now works via thetvParallaxProperties
prop object takingpressMagnification
,pressDuration
, andpressDelay
(6c353fd7e9 by @JulienKode)
๐ Fixed: bugs that have been resolved
- In TouchableOpacity, trigger animation on
opacity
upon change indisabled
prop (9366ce416f by @maxkomarychev) - ๐ Fixed an issue encountered when using
react-native-vector-icons
(a759a44358 and 54dc11a5fb by @jeanlauliac and @t4deu)) - โ Add missing mock for Jest for
removeEventListener
method (59c7b2cfac by @MoOx) - ๐ Fix main size calculation from the aspect ratio (f751c3460e)
- ๐ Fix crash in Subscribable due to uglify-es (b57a78c3de by @iMagdy)
- โก๏ธ Update
node-notifier
dependency to fix memory leak (860fcd458a by @rickhanlonii) - ๐ Fix issues with pollParams and link (ca8ce83cc3 by @grabbou)
๐ iOS specific fixes
- ๐ DevLoadingView now supports the iPhone X screen shape (47b36d3ff0 by @mrtnrst)
- โ Added bounds check to prevent ScrollView from scrolling to an offset which is out of bounds of the ScrollView (16c9e5b715 by @siddhantsoni)
- NetInfo
isConnected
works again (dbafc29e60 by @alburdette619) - In AlertIOS, fix duplicate var name declaration (6893a26bfb)
- Permit
react-native run-ios --device [id]
by passing port when running on device (f8fee0a631 by @jozan) - ๐ Fixed issue with
run-ios
whereEntry, ":CFBundleIdentifier", Does Not Exist
was being received (5447ca6707 by @blackneck) - ๐ Fixed problem in Text measurement on iOS (a534672e13 by @shergin)
- ๐ Fix crash when reloading in tvOS (3a3d884df2 by @dlowder-salesforce)
- Fixed a bug with positioning of nested views inside Text (7d20de412b by @shergin)
- ๐ Fix blob response parsing for empty body (f5207ba9c7 by @janicduplessis)
- ๐ Fix tvOS react-native init release build (3002c4eb98 by @dlowder-salesforce
- ๐ Fix RedBox from bridge reload due is not re-registering its root view (2e51fa5f5d by @fkgozali)
๐ Android specific fixes
- ๐ Fix: incorrect line-height calculation (74e54cbcc4 by @strindhaug)
- ๐ Fix crashes with TextInput introduced in 0.53 (b60a727adb by @joshyhargreaves)
- โก๏ธ Update ReactAndroid build script to support gradle 2.3.0 (d8bb990abc)
- ๐ Allow "unexpected URL" exception to be caught on Android when using fetch (da84eba318 by @jcurtis)
- Fix
onLayout
prop for TextInput (8a073c1d8b by @rozele) - ๐ Fix ViewPager when using native navigation (a1295e1707 by @ruiaraujo)
- Fix localization crash in DevSettingsActivity (427e464bb9 by @ayc1)
- ๐ Fix pinch crash in touch-responsive views (67c3ad4e6a by @tobycox)
- ๐ Fix IllegalStateException thrown in looped timing native animation (ef9d1fba23 by @kmagiera)
- โช Workaround android-only js module resolution issue (c20e0f94fe by @fkgozali)
- ๐ Fix ReadableNativeMap.toHashMap() for nested maps and arrays (15fa2250fd by @esamelson)
- ๐ Fix Android Sanity Buck version check (e0573225d5 by @hramos)
- ๐ Fixes the connection to Firestore by following whatwg.org's XMLHttpRequest send() method (d52569c4a1 by @samsafay)
invertStickyHeaders
can now be set from SectionList or FlatList (dd479a9377 by @dannycochran)
โ Removed: features that have been removed; these are breaking
- โ Removed various types (b58e377961, ee26d9bcb0, d89517d60a, 852084ad45 by @TheSavior)
- โ Deleted
Systrace.swizzleJSON()
(3e141cb6c9 by @yungsters)
Android specific removals
- ๐ฆ
ReactInstanceManager#registerAdditionalPackages
has been removed; Create UIManager interface and extract common classes in uimanager/common (6b45fb2cb1 by @mdvacca)
iOS specific removals
- โ Remove callFunctionSync experimental APIs (19a4a7d3cb by @danzimm)
-
v0.54.0 Changes
๐ Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are great! Here are a few highlights from the release:
- Long awaited Blob changes: upload, download, fetch locally, and more
- Sticky headers now work on inverted Lists
- โก๏ธ Update to the newest React, which deprecated some lifecycle methods and added new ones โ expect Yellowbox until React Native is updated
- ๐
Space-evenly
is now there (sorry for the confusion with 0.52's release notes) - A lot of under-the-covers work on Yoga, iOS's Text and TextInput, and a ton of other areas
- ๐ Multiple crash fixes
๐ The changelog is arranged by the customary added, removed, changed, and fixed plus internal; the changes are also organized by platform.
โ Added
- โจ Blobs now can be: made from Strings, loaded by File using a FileReader API, uploaded and downloaded via
XMLHttpRequest#fetch
, and fetched on files to a local blob consistently (be56a3efee and 854c2330eb by @satya164 and @fkgozali) - ๐ Dynamic node_module dependencies are now supported (b5e19adc02 by @jeanlauliac)
- ๐ Support sticky headers for inverted Lists with
invertStickyHeaders
(ecaca80d42 by @janicduplessis) - ๐
space-evenly
is now supported (sorry for the confusion with 0.52 notes) (b1cdb7d553 by @gedeagas) - ๐ Platform plugins can participate in RNConfig,
link
, andunlink
โ keep an eye on react-native-window's use of it! (a40bfa730e by @rozele) - โ Add
minify
flag to react-native bundle command (3f969cb1db by @tomduncalf)
VR Specific Additions
- Added ScrollView support (6fa039dab0 by @MartinSherburn)
Android Specific Additions
- Bundle download progress is now shown like iOS (d06e143420 by @janicduplessis)
- โ Add back ability to customise OkHttp client (22efd95be1 by @cdlewis)
iOS specific additions
- ScrollView now supports smooth bi-directional content loading and takes new prop
maintainVisibleContentPosition
(cae7179c94 and 65184ec6b0 by @sahrens) - ๐ Allow substituting a default font handler (a9c684a0ff by @mmmulani)
- โ Add
accessibilityElementsHidden
prop (31288161e1 by @aputinski) - ๐ฆ Add EXTRA_PACKAGER_ARGS extensibility point on
scripts/react-native-xcode.sh
(PR rev 0d4ff1b7ea by @brunolemos with landing assists b8c86b8dec and 0d4ff1b7ea)
โ Removed
- Remove internal
utf8
utility - use the utf8 package now instead (431670f908 by @mathiasbynens)
iOS specific removals
- โ Removed outdated assertion in RCTShadowView related to breaking change in Yoga (e3ff3cf6cb by @shergin)
Android specific removals
- ๐ Fix an issue when swapping to and from the
visible-password
orphone-pad
keyboard types. (164f6b6afd by @BrandonWilliamsCS) - โ Remove redundant config in AndroidManifest.xml (d7a9ca2893 by @gengjiawen)
iOS specific removals
- โ Delete RCTBatchedBridge (816d417189 by @mhorowitz)
๐ Changed
- ๐ Docs clarifications (7abffc3f8c by @IgorGanapolsky)
iOS Specific Changes
- โก๏ธ Text and TextInput have been re-implemented from the ground up for performance, flexibility, and reduced technical debt (2716f53220, 74963eb945, d7fa81f181, 74963eb945, 6c4ef287ad, ebc98840e9, d7fa81f181, 7d1ec7a3dc, 52648326e6, 6bb8617f3a, 5dbb3c586c, 7e7d00aebe, 46fd864348, 9dfa2e7f3c, 8a882fe6d6, and 0f9fc4b295 by @shergin and @hovox)
- Image's
resizeMode="center"
is now documented and has an example present (be7037fd8e by @motiz88) - Geolocation API no longer timeouts when
skipPermissionRequests: true
(5c17db8352 by @ngandhy) - ๐ Rounding pixels is now done with an algorithm from Yoga rather than React Native, reducing debt and improving performance (ceb1d1ca5b and 114c258045 by @shergin)
Android specific changes
- ๐จ Numerous refactors around bundle handling and the
DevServerHelper
(644123aa6f, e756251413, 6e44356c9b, 1019bda930, 06d8f96a64, f88c9d6382, and 108f9664bf by @davidaurelio)
๐ Fixed
- ๐ Fix JS debugger issues related to CORS (29f8354c19 by @njbmartin)
- โฌ๏ธ Keep the
.gitignore
d files during thereact-native-git-upgrade
process (7492860ffb by @ncuillery) - ๐ Fix re-render case on SwipeableRow (a580a44b0d)
- ๐ Fix display of syntax error messages when HMR is enabled (2b80cdf1bb by @ide)
- โ Add fixtures to metro blacklist in order to let build succeed (54dc11a5fb by @t4deu)
๐ Android specific fixes
- Don't crash when using decimal
Animated.modulo
values withuseNativeDriver: true
(6c38972327 by @motiz88) - Don't crash when receiving unknown websocket IDs (1a790f8703 by @sunweiyang)
- Dont crash when
NativeModules.UIManager.showPopupMenu
method calls error callback (0c18ec5b9c by @dryganets) - Maintain cursor position when TextInput's
secureTextEntry
changes (09b43e479e by @jainkuniya) - ๐ Race condition fix in Dialogs module (d5e3f081c6 by @dryganets)
- ๐ Fix NPE in Android Switch during measure (7b1915e74d by @4ndroidev)
- ๐ Fix initialScrollIndex (ef596dec49 by @olegbl)
- ๐ Fix redbox style (f363dfe766 by @ayc1)
- ๐ Fix crash due to mishandling of UTF-8 in progressive download. (9024f56bda by @dryganets)
- ๐ Fix crash because ClassCastException fix: getText() returns CharSequence not Spanned (46cc4907e3 by @dryganets)
- ๐ Fix and re-enable "view flattening" optimizations (877f1cde2e by @mdvacca)
๐ iOS specific fixes
- Fix Crash when CameraRoll is getting assets from iCloud and no filename is provided (2ae24361c5 by @pentarex)
- ๐ Fix Xcode Archive task failing if project path contains whitespace (8aa568e867 by @jevakallio)
- ๐
react-native link
has been fixed to correctly link iOS and tvOS targets (a63fd378a4 by @dlowder-salesforce) - ๐
GLog
fix on case sensitive APFS macOS (2fef1bafc8 by @hovox) - ๐ Fixed issue where you cannot launch tvOS app on Apple TV simulator (afd988f85a)
Internal work
- A massive amount of Yoga optimizations, cleanups, refactors, and test fixes (62d01006a1, 1475fc4856, 9daa17458a, d4517ddb9f, ca91f0e3ac, 34b7ec82b5, fda861a889, 9f7cedbe14, ac1c8c265e, fcf2c7cf61, 2b27f1aa19, 210ae5b95a, 82088580ab, 7f94bff89a, bd7bf94af9, 2fe65b032e, 9658d9f82b, ee5c91c031, 64d530ba07, 400a29e151, f75e21f1ca, 528bbacf6b, be8e7c6e65, d0f7d4d107, 4b4959a21c, fdef3784f0, 831a1bb4b1, 2a22d998f8, 9f57dedc17, and ff2658c3de by @priteshrnandgaonkar, @passy, @ryu2, and others)
- โ ๐ง Lifecycle methods were renamed to be consistent with React RFC6 โ note that there are Yellowbox warnings right now because of this, it's work-in-progress (6f007e8957 by @bvaughn)
- Some autogenerated mystery string files were added (c7846c4bfb, bb6fceac27, 8bd00a2361, faa9519021, f49f7932d5)
- ๐ Improvements to the cli's implementation (1673c570f9, 752427b7b8, and 619a8c9f29 by @arcanis, @voideanvalue, and @rozele)
- Measure touch events from nearest "root view" (a70fdac5bd by @mmmulani)
- ๐ Allow to attach the HMR server to an external http server (8c6b816caa by @rafeca)
- Split folly/Memory out from headers-only targets in Buck (b8e79a7e8b by @mzlee)
- Code cleanup of ReactHorizontalScrollView in Android (71ec85f24c by @mdvacca)
- ๐ Always create a debugger websocket connection when in iOS dev builds (fa334ce464 by @bnham)
- ๐ Make the React Native HMR client extend from the generic metro HMR client (9a19867798 by @rafeca)
- โ Removed use of xip.io (40a8434bde by @jvranish)
- ๐ Fix Buck dependencies (cec2e80fc2, 4f6c157250 by @swolchok)
- ๐ Fix permissions on test script (42c410ac84 by @mzlee)
- ๐ Better handling exception in loadScript() (3fbf7856d9)
- ๐ Fix ESLint upgrade "parsing error" (9d214967d2 by @zertosh)
- ๐ Fixing ๐คก in RCTSurfaceRootShadowView (5fba82deff by @shergin)
- ๐ Handle invalidation error in RCTObjcExecutor (493f3e8da5 by @fromcelticpark)
- Check for nullptr when accessing isInspectable method (70d23e82ad by @fromcelticpark)
- Introduce new Fabric API in RNAndroid (2d35bde101 by @mdvacca)
- ๐ Fixing Prepack model for latest global.nativeExtensions changes. (01a58d182a by @NTillmann)
- ๐ง General code cleanup: unused code and configurations (e233646d09 and e7010348d8 by @bvaughn and others)
- โ Add support for finding multiple views with NativeIds using a single listener to Android (f5efc460ad by @axe-fb)
- โ Add CountingOutputStream (a5e135aed6 by @hramos)
- ๐ Changes from Prettier (b815eb59be, e758cb7f39, bf9cabb03c, and a5af841d25 by @shergin)
- โ๏ธ Typos in code (8ffc16c6e7 by @ss18)
- ๐ Support for inherited events in view managers (2afe7d4765 by @shergin)
- Flow types changes (3fc33bb54f, e485cde187, 83ed9d170b, 52ffa5d13e, d37cdd97ae, 6e7fb01c02, d99ba70c49, bcfbdf4fbe, and a1c479fb3b by @alexeylang, @sahrens, @yungsters, and @zjj010104)
- Give IInspector a virtual destructor for correct InspectorImpl destruction (2a3c37f424 by @toulouse)
- Migrated
SourceCode
andDeviceInfoModule
out of Native Modules (47fe52380a and 429fcc8cab) - ๐ Jest config change as part of bringing back support for the
assetPlugin
option in Metro (af6450c660 by @ide) - Nested virtualized lists should receive recordInteration events (ae2d5b1e68)
- โฌ๏ธ Upgrade connect dependency (709ede799c by @rafeca)
- xplat/js: asyncRequire: redirect async modules to control modules (5e11b8870a by @jeanlauliac)
- ๐ More progress towards split bundle support (1a1a956831 and 9e34cbda9d by @fromcelticpark)
- ๐ Implement bundle sync status (88980f2ef7)
- Various improvements to RCTSurface and RCTShadowView (7d9e902d72, 06ebaf2205, 6882132421, and 193a2bd4cd by @shergin)
- Progress towards experimental ReactFabric and FabricUIManager (b1e5c01483, fa0ac92b2c, 94dac23583 by @fkgozali)
- (almost) kill fbjsc (702b7e877e by @michalgr)
- ๐จ Refactored bridge ReadableNativeMap and ReadableNativeArray to add centralized accesses (7891805d22, 28be33ac34, and 5649aed6d3)
- โ Removed unused core from Image.android.js (ce3146a6f3 by @shergin)
- ๐ฒ Capture StackOverflowExceptions triggered when drawing a ReactViewGroup or ReactRootView and log more debugging information for it (1aac962378 and 4d3519cc6a by @mdvacca)
- ๐
babel-preset-react-native
: only require plugins once (df6c48cf36 by @davidaurelio) - Report module id as string and as double, in case of invalid values are passed to nativeRequire (8f358a2088 by @fromcelticpark)
- ๐ More work moving build configurations to Skylark (d3db764f38, 869866cc5c, a8c95d2417, and 79a63d040f by @mzlee, @ttsugriy, and others)
- ๐
[RCTShadowView isHidden]
was removed (c19bc79688 by @shergin) - โ Remove unused
packagerInstance
option and rename it toserver
(bbbc18c4ee) - ๐ The blog has moved to react-native-website (e16d67340e by @hramos)
- โ Remove SoLoaderShim, use SoLoader (fc6dd78935 by @foghina)
- โ Removed broken link for 'Getting Help' in the README (b3a306a667 by @rickydam)
- ๐ Changed to use boost-for-react-native cocoapod, which speeds up
pod install
a ton; this was in 0.53 originally but had to be re-added (d40db3a715 by @CFKevinRef) - โ Remove fbobjc's RN copy (af0c863570)
- Measure time to create ReactInstanceManager (6224ef5301 by @alexeylang)
- โฌ๏ธ Upgrade create-react-class to v15.6.3 (74f386633d by @bvaughn)
- โฌ๏ธ Upgrade react-devtools to v3.1.0 (8235a49a33 by @bvaughn)
- โฌ๏ธ Upgrade flow to v0.65.0 (7aba456b04 and 298f3bb69a by @avikchaudhuri and @mroch)
- โฌ๏ธ Upgrade Jest to v22.2.1 (46f4d3e1bc and 24e521c063 by @mjesun)
- โก๏ธ Upgrade ESLint to v4.17.0 (plus update related deps) (bba19e846e by @zertosh)
- โฌ๏ธ Upgrade React to v16.3.0-alpha.1 (03d7b2aa0e and 5e80d95e03 by @grabbou and @hramos)
- ๐ Synced React and ReactFabric render (c7ed03a95c, 13829751b1, and d676746f14 by @bvaughn)
- โฌ๏ธ Upgrade metro to v0.26.0 (9e6f3b8aff, ce50f25d22, e9b83e608e, 2fe7483c36, 0f96ebd93b, 0de470ec19, e8893a021f, and b1d8af48ae by @rafeca and @grabbou)
- โ Add Context to Redbox report api (e3c27f585a by @ayc1)
- GitHub bot commands have been disabled in the short term (b973fe45bd by @hramos)
- ๐ท Various CI configuration changes (17bd6c8e84, 51b6749c07, a2f3ba864e, 2ef9b7f2da, 40b17926bb, 613afbab7f, da8bec9f8b, fa11faecb6, f50af7f8a4, 9227ba73ab, 365a4d4b43, b58d848d9c, c8e98bbaf5, f5975a97ad, and 605a6e4031 by @hramos, @grabbou, and @dryganets)
- โช Restore copyright header (4f883bd0bc by @hramos)
- ๐ Trim docs that are already present in the open source docs site (28d60b68ad by @hramos)
- ๐ Fix obsolete instructions about editing docs (2f46712074 by @ExplodingCabbage)
- ๐ Fix links to beginner friendly issues (c355a34de1 by @hotchemi)
- โ๏ธ Typos in comments and log messages (d2c569795c by @ss18)
- ๐ท Don't run the Danger CI tool through Flow (1ea3065feb by @hramos)
๐ Namespace custom ESLint rules through eslint-plugin-lint (488b6825c5 by @zertosh)
... and now we're at 0.54 ๐ (67e67ec83c, 21dd3dd296, 49e35bd939, 829f675b8b, and 294d95a236 by @grabbou and @hramos)