Releases: facebook/react-native
0.26.2
0.26.1
0.27.0-rc
v0.27.0-rc [0.27.0-rc] Bump version numbers
0.26.0
Thanks to 104 contributors who put 223 commits into this release!
Thanks to @christopherdro for writing this release notes!
Breaking changes
- React API must be now required from
react
package (previously a warning on 0.25) setBridge
is no longer called on the main thread - 34ec6a9
New features
- Upgrade to React 15.0.2 ba8878d#diff-b9cfc7f2cdf78a7f4b91a753d10865a2
- Add support for sending and receiving binary data in websockets - ed930b4 20cae51
- Add
--version
to CLI - 856f9e9 - Add
--reset-cache
toreact-native bundle
- 90f9f48 - Add encoding/hash signature to JS files - 34dd17c
Platform.select
#7220
Bug fixes
- Fix potential "Should never unset includeInLayout" invariant - ecae44a
- Fix initial scenes rendering in NavigationExperimental - 81c62c5
- Fix incorrect layout for modal - 85f7569
- Fix stroke bug in ART - 4e5c85b
- Fix a bug in asset server when using relative project roots - 3881694
- Fix
flow
definitions for react-native - 248879f 91d4a09 - Removed exported constants for fixed-size views - c1aff6b
- Fix usage of react-native cli inside package.json scripts - 8295d27
- Fix WebSocket compatibility with event-target-shim ^1.0.5 - 8891f22
- Fix JSWatchdog reset - 1d802da
- Fix Animated setValue to work properly on natively driven nodes - 6c80f88
- Fixed path to regenerator-runtime - ec5016a
- Fix HMR preset - a2ee5bd
Android
New features
- Add ability to disable scroll on ViewPager - 5a93877
- Add ability to expose sync hooks from Java to JS - 50d8d46
- Add an option to load the Boost library from the filesystem - bc32e06
- Add Support for Animated.add in native animations - b5375bd
- Add support for setChildren - 3a5457c
Bug fixes
- Fix crash in AdsManager by no longer assuming only one react context exists at once - 0a7a228
- Fix crash caused by accessibility being turned on and using a Modal - 57c40d9
- Fix Popover location in Events - 8e7ea11
- Fix NullPointerException in setFontWeight method - 1fb8643
- Fix IndexOutOfBoundsException in MapView - 446d7b7
- Fix undefined
ref
in PullRefreshViewAndroid - d586daa - Fix events bubbling out of the Popover - eb21b25
- Fix ReactNativeART arc drawing - 1af4760
- Fix ClassCastException inside TextInput - f323b02
- Fix textShadowOffset error without width or height - 3f0207d
iOS
Breaking changes
- Add flag "-lc++" for all checked-in projects - 8aa82d3
New features
- Add support for delete animation in LayoutAnimation - baa3668
- Add support for badge icon number and alert action when scheduling local notification - 84e6968
Bug fixes
- Fix deadlock during app startup - 9547a98
- Fix RCTJavaScriptContextCreatedNotification - e195bf9
- Fix autocomplete in rich-text editing mode for CJK text input - 91dcc9a
- Fix some issues with zero fontSizeMultiplier causing RCTShadowText measure function to return an infinite height - 362738a
- Fix memory leak with cookieMap in RCTJSCExecutor - 32a8949
- Fix images not displaying with HTTP response 301 - 192ab66
- Fix pressing a stack frame in Redbox not opening an editor - 037e9ba
0.25.1
Thanks to 90 contributors who put 154 commits into this release.
Special thanks to @radko93 for writing these release notes!
Deprecations
Requiring React API from react-native
is now deprecated - 2eafcd4 0b534d1
Instead of:
import React, { Component, View } from 'react-native';
you should now:
import React, { Component } from 'react';
import { View } from 'react-native';
You can also try this codemod built by the community to automatically rewrite all the imports.
New features
- Add support for JavaScript third-party debuggers - 4c8a9f0
- Add key to footer wrapper in WindowedListView - 58db9f3
- Add support for missing XHR response types - fcc89e9
- Add a way to prefetch remote images to cache with Image.prefetch - f7bcb3e
- Add transform-es2015-function-name to the react-native babel preset - 855c0cc
- Add instructions to reload simulator for non-QWERTY keyboards - c417c2e
- Add support for ontimeout and onerror handler when using XMLHttpRequest for Android and iOS - d09cd62
Bug fixes
- Add null check before accessing the refresh control ref - eac617d
- Fix HMR on Windows - c61100d
- Fix up PanResponder example - 05a852a
- Fix an issue when the title in NavigationExperimentalHeader would block touches for the left component - 86d5c52
- Fixed images required from node_modules - d0566d8
- Fix an edge case in hot module reloading - 41576ea
- Fix warnings in UIExplorer example pages - 528cf68
- Fix perf tab missing key warnings - b7a3272
- Fix swiping in navigator too quickly causes the gesture to be lost - ca2fb70
- Fix border radius / background propagation issues in TicTacToe example - 97f60ad
- Fix race conditions in Portal when simultaneously closing/opening - 7354ff3
- Fix ImageEditingManager when no external cache - fffcb9c
- Fix RefreshControl refreshing state - 93b39b7
Android
New features
- Added support for textDecorationLine style prop on Android - 2039be9
- Added support for Image corner radius on Android - 69534a3
- Added WebChromeClient as default WebView client f94abd3
Bug fixes
- Fix DrawerLayoutAndroid method parameter - d66b944
- Fix DrawerLayoutAndroid not able to set opacity - 7851572
- Fix an issue with removeClippedSubviews and TextInput - 89340f1
- Add support for WebSocket protocols argument - 914f33c
- Fix systrace logging reported by RUN_JS_BUNDLE - 2d0051f
- Fix Promise argument assertion to take into account executorTokenOffset - e27a27b
- Fix Modal crash caused by accessibility bcf91bc
iOS
New features
- Added cache prepare step for packager in ios e2e test - a6a5ef4
Bug fixes
v0.25.0
0.24
Thanks to 65 contributors who put 142 commits into React Native 0.24! It is available on npm: react-native@^0.24.0
.
Docs here: https://facebook.github.io/react-native/releases/0.24/docs/getting-started.html.
This release includes a series of improvements for coalescing touch and scroll events on iOS by Martin Kralik (@majak). These improvements fixed a bug that was preventing some native touch events from being dispatched to JS. This also improves the perceived performance of components that rely on these touch events, like parallax scrollers. Thanks, Martin! 👏🏻
_Photo picked by @vjeux; he ❤️s you all very much_Known issues we’re fixing
RefreshControl broken on iOS: #6929 (fix: 03c1688)Hot module reloading raises an error: #6798response.json()
hangs when Chrome debugging is enabled: #6679Unable to require images undernode_modules
: #6638
Ongoing issue thread: #6800
Breaking changes
- Android no longer includes Stetho by default: 3c488af
- Removed
RCTBridgeModuleClassIsRegistered
from iOS: a16771c - Removed
sendMomentumEvents
prop from ScrollView, which was intended for internal usage - StyleSheetRegistry has been renamed to ReactNativePropRegistry. This module is private so it shouldn't affect everyone using React Native's public API, though: 433fb33
New features
- Enhancements to NavigationExperimental by @hedgerwang:
- Experimental WindowedListView, which uses a placeholder spacer view for off-screen rows. It is not a drop-in replacement for ListView: cd79e26
- Several improvements to the docs
Bug fixes
- Use a monotonic clock instead of the current time in the profiling tools: ac03c47
- Various Hot Module Reloading fixes: 98411f1, 51b5423
- Fix views not stretching vertically in column layout: #2724, d957570
- Use semver in the .flowconfig file to allow you to use patch versions of Flow without updating .flowconfig: #6767
Android
New features
- 🎉 Preliminary support for delegating Animated commands to the native UI thread. Credit goes to @kmagiera for the design and implementation, @brentvatne for experimentation and critical feedback, and @astreet and @vjeux for a thorough code review. The implementation is not complete but will eventually unblock Navigation animations from other heavy work on the JS thread: #6466
- Modal now warns if you don't provide the
onRequestClose
prop: ce81f8b - Vibration patterns: e20e8a3
- DrawerLayoutAndroid has a new
statusBackBackgroundColor
prop, which tells it to draw over the native Android toolbar. See the screenshots in the PR: #6218 - ScrollView has a new
endFillColor
prop, which tells React Native to fill in the rest of the scroll view with a color in the event that the scroll view's viewport is larger than its content. This is an advanced performance optimization to reduce overdraw; measure performance before you use it: 4498bc8 - TextInput supports the 'selectTextOnFocus' prop now: #6654
- Start creating views before the end of a batch for performance: 6a3b334
- ReadableArray and ReadableHashMap now define convenience methods:
toArrayList
andtoHashMap
: #6639, #6762 Returning true from a BackAndroid(reverted in ede99ee)hardwareBackPress
handler stops invocation of previously registered handlers and the default OS action: 67efe4c- Slider component is available: afe78f6
Bug fixes
- Fix clipping rectangle calculation for nested scroll views: e8e3182
- Don't strip
NativeRunnable
constructor with ProGuard: 393890e - Fix fetching source maps in Genymotion: 6c22a21
- Prevent a parent view’s touched state from applying to its children when nesting TouchableNativeFeedback components: #6783
iOS
New features
- Open-source
FBPortForwarding
, which proxies network requests from a device to your computer likeadb reverse
. It is not integrated with React Native, but the code is here if you want this feature:FBPortForwarding
: c4699d8 - ActionSheetIOS has a new
message
option: #6685
Bug fixes
- 🎉 Fix how native events are coalesced when sending them to JS, specifically touch and scroll events, in order to respect their ordering (#5246 (comment)). When all events can be coalesced, they are processed ASAP instead of waiting for the next JS frame. Several diffs from @majak: a496baa, a37075d, cefc5a6, 7c2b397, b1b53aa, 1d3db4c (reverted in 144dc30 , reinstated with a fix in 02b6e38
), 31bb85a - Lock accesses to the flow ID map (for profiling) for thread safety: 2be42ab
- Stop the JS run loop from
-[RCTJSExecutor invalidate]
instead ofdealloc
so that it is guaranteed to be stopped from the JS thread: 99c7de2 - Prevent dev menu from resetting simulator orientation: #6765
- Increase dev tools timeout: b00c77a
- Use indirect jumps in the profiling trampoline to support larger binaries when needing to jump more than 32MiB: 2f27039
- Make SliderIOS retain its touch responder status: 52ddfd9
v0.23.1
When react-native init
sets up a new project and installs the react
package, it will use the version specified in the peerDependencies
section of React Native's package.json file. Previously, it would always install the latest version of React, rather than the latest compatible version. This change makes sure that React Native will continue using React 0.14.x when React 15.0.0 is released.
If you already have an existing React Native project, you do not need to upgrade from 0.23.0 to 0.23.1.
0.23
Thanks to 91 contributors who put 234 commits into this release!
This release includes Android support for Modal.
Special thanks to @knowbody for writing these release notes!
New features
- Add ability to silence packager logs to stdout - d5445d5
- Add the possibility to
console.error
/redbox on promise rejections - f87b673 - Add more performance logs and improve Systrace support - f6853b8
- Initial implementation of the Navigator with NavigationExperimental. - fa5783e
<Incremental>
for incremental rendering - f21da3a- Add ability to specify custom left, right components, and title component in
NavigationExperimental
'sNavigationHeader
. Style theNavigationHeader
according to the Platform - 720c76f (Breaking)
Bug fixes
- Update node-haste and replace fast-path with node-haste's version to fix Windows compatibility - fd816b1
- Fix bug #5604 - Unrecognised signal for touchable no longer on the screen - d637621
- Update Layout.c to fix flexbox layout bug - 6c5195f
- Transform before extracting dependencies - 9d09efd
- Refactor bezier implementation from bezier-easing library - b5985cf
- Inline
__accept
call so that source maps work with HMR bcb37c0
Android
New features
- Modal now works on Android
- Add missing textAlignVertical support on android TextView - d20bde3
- Add support for elevation in DrawerLayoutAndroid - 61483aa
- Add JS Minify option to settings in Android - 1f94a00
- Make run-android execute the app on all connected devices - 10ad47a
- Add support for multiple JS contexts - 872b697
- Make JS perf API available to JS - 6e3710f
Bug fixes
- Fix setting android toolbar images after null them - 8aa83a2
- Add StatusBar height constant and improve implementation - 18f38ec
- Fix event dispatcher timestamp sorting bug - f5a3490
- Fix RCTText crashing when negative width is passed to measure - c42fc61
- Fix text input scroll when status bar is translucent - c76523f
- Fix race condition in refactored bridge code - 0cb7d16
- Convert Image resizeMode
contain
to FIT_CENTER - 2070efa
iOS
New features
- Adding Pre-Parsing cache & StringRef to iOS 8's JSC - 22e55d4
- Add lineBreakMode prop to Text - 64a09fe
- Add blur effect to RCTImageView - 9cb3ec9
Bug fixes
0.22
Thanks to the 99 contributors who put 316 commits into React Native 0.22.0!
React Native 0.22 ships with Hot Reloading! 🎉
Special thanks to Mateusz Zatorski (@knowbody) for writing these release notes.
New features
- Support custom ScrollView implementations in ListView - b516976
- Adopt NavigationExperimental in UIExplorer - 876ecb2
- Introduce disabling for Touchable* elements - 9951e1a
- Introducing NavigationCardStack - 6bcb2a0
- Implement modulo operator method for Animated - ae0ad1f
- Add message channel to packager for sending commands to bridge (2/N) - c377f2a
- Add new worker for code transform, optimization, and dependency extraction in packager - d94a567
- Add gesture handling for the Navigation card stack - caac520
- Add data structure to manage the stack for the legacy navigator - 1caebf1
Bug fixes
- Fix an issue (Sticky header index was outside the range) when renderSeparator is defined but returns null - c449d9e
- Fix resources build variable name - 7eb7b94
- Fix crash when passing null to clearImmediate - 44fcf22
- Fix Exponential WebSocket Growth from DevTools - d0a26a7
Android
New features
- Add the ability to create triangles using style tricks - a6a4389
- Enable scalesPageToFit on Android - 4b97137
- Add position to Picker onValueChange's call - b454d31
- Added a
root
option to therun-android
command - b9ed72a - Use nanoTime instead of currentTimeMillis for events - b5d2667
- Add drawerLockMode prop to DrawerLayoutAndroid - ec173b1
- WebWorkers: Add ExecutorToken to route native module calls to/from workers - bd95b22
- Enable blurOnSubmit for text input in android - ab12189
- Add generic memory pressure listener interface - c027f05
- Ability to supply product flavor for
react-native run-android
command - 46422dd - Add ReactCompoundViewGroup interface that allows having both virtual and non-virtual (View) children - aae521f
Bug fixes
- Fix app crashes on Android after fetching the js bundle - 3640080
- Fix broken drawer layout - 8e809e9
- Deprecate PullToRefreshViewAndroid and remove it from the website - 91788d2
- Fix hidden StatusBar reappearing after exiting app on Android - cf3bd9f
- Fix android's image tintColor prop when used with alpha - 8b88cae
- Fix attributes checking for Image.android.js - 7e3266d
- Fix deadlock in bridge - e64987d
- Fix IllegalStateException crash in WebSocketModule.java - a6a89fe
iOS
New features
- Adds category and alertAction properties to local notification details object - 183d6a0
- Add position to Picker onValueChange's call - b454d31
- Add support for sharing images or other media via iOS share sheet - e6c6510
- Added support for taking snapshots of the screen, window or individual views - ac12f98
- Add UIManager.measureInWindow to get window coordinates - f67fa82
- Add Universal Links support to Linking.getInitialURL(). Fixes #6099 - f0689cf
Bug fixes
- Fix a bug with ListView with sticky headers + RefreshControl - 671b975
- Fix RCTPerfMonitor display unit error - 50141f9
- Fix WebView example on iOS - 7032a64
- Fix issue with opaque thumbnails being given an alpha channel - 7383378
- Fix RefreshControl layout on screen rotation and consecutive pull to refresh not working properly - 102a31c
- Fix Geolocation Accuracy and Cached Location Bug - 49b2805