Skip to content

Releases: react/react-native

0.29.0

Choose a tag to compare

@grabbou grabbou released this 06 Jul 06:29

Thanks to 97 contributors who put 218 commits into this release!

Special thanks to @satya164 for writing this release notes!

Breaking changes

General

  • Kill NavigationReducers (3a8b50a) - @hedgerwang
  • NavigationExperimental - Clean up NavigationStateUtils (67002e8) - @hedgerwang
    • Remove the logic that lets NavigationStateUtils accept empty value as input and return a new state.
    • Remove the method NavigationStateUtils.getParent, NavigationStateUtils.set.
  • NavigationExperimental - Remove prop onNavigate (fb0007d) - @hedgerwang
  • NavigationExperimental - Define the generic render prop for NavigationTransitioner to render scenes (3a62314) - @hedgerwang

Android

iOS

General

Bug fixes

New features and enhancements

Android

Bug fixes

  • Enable Double R shortcut to reload JS when redbox is shown (4959b21) - @lebronJ
  • Fix deletion layout animations to work with custom view managers (49a5fe4) - @astreet
  • Fix crash when Modal is displayed as a result of touch handling code (837aafd) - Olivier Notteghem
  • Properly validate layout animation config (d4e7c8a) - @janicduplessis
  • Fix potential NPE in layout animation deletion code (bb9ed2d) - Olivier Notteghem
  • Fix bug where UIOperations aren't executed after hosting Activity is paused (eef03fd) - @astreet
  • Remove iOS platform check for running devtools (1b40db7) - @kageurufu
  • Fix dialogmodule crashing with no fragment manager in onHostResume (bf79352) - @foghina

New features and enhancements

iOS

Bug fixes

New features and enhancements

0.28.0

Choose a tag to compare

@grabbou grabbou released this 21 Jun 19:06

Thanks to 87 contributors who put 182 commits into this release!

Special thanks to @satya164 for writing this release notes!

General

Breaking changes

  • NavigationExperimental - Rename NavigationState to NavigationRoute, rename NavigationParentState to NavigationState (807726b) - @hedgerwang
  • NavigationExperimental - Rename scene.navigationState to scene.route (fb5d0ff) - @hedgerwang
  • NavigationExperimental - Rename navigationState.children to navigationState.routes. (1e62602) - @hedgerwang
  • Remove deprecated PullToRefreshViewAndroid and onRefreshStart / endRefreshing (a71a9ef) - @janicduplessis
  • NavigationExperimental - Remove key from NavigationState. (f7279b4) - @hedgerwang
  • Updates to css-layout leading to many fixes but requiring some breaking changes:
    • flex styling property behavior now behaves slightly differently. If you previously used flex: 1 where not necessary this change will likely break your layout as the measuring behavior is slightly different than before due to performance optimizations. Removing that unnecessary flex: 1 will solve your layout in most cases.
    • Due to performance tweaks flexWrap: wrap no longer works together with alignItems: 'stretch' (the default). If you use flexWrap: wrap you probably will want to add the alignItems: 'flex-start' style as well.

Bug fixes

New features and enhancements

Android

Bug fixes

New features and enhancements

iOS

Bug fixes

New features and enhancements

v0.27.0

Choose a tag to compare

@grabbou grabbou released this 06 Jun 10:33

Thanks to 87 contributors who put 210 commits into this release!

Special thanks to @satya164 for writing this release notes!

General

Breaking changes

Deprecations

  • Keyboard events should now be registered via Keyboard module:
// previously
const { DeviceEventEmitter } = require('react-native');
DeviceEventEmitter.addListener('keyboardWillShow', func);

// on 0.27.2 and newer
const { Keyboard } = require('react-native');
Keyboard.addListener('keyboardWillShow', func);

// 0.27.0 & 0.27.1
const Keyboard = require('Keyboard');
Keyboard.addListener('keyboardWillShow', func);

New features and enhancements

Bug fixes

Android

New features and enhancements

Bug fixes

iOS

New features and enhancements

Bug fixes

0.26.2

Choose a tag to compare

@grabbou grabbou released this 24 May 18:52

See 0.26.1 and 0.26 release notes for the full list of changes.

Bug fixes

  • Respect original enumerability/writability when polyfilling globals (17026c3)

0.26.1

Choose a tag to compare

@grabbou grabbou released this 21 May 23:00

See 0.26 release notes for the full list of changes.

Bug fixes

  • HMR causing the app to crash on reload (01d6dd5 f5b79fd)
  • warnings when using NavigationExperimental (9cc5cf5)

0.27.0-rc

0.27.0-rc Pre-release
Pre-release

Choose a tag to compare

@grabbou grabbou released this 20 May 21:55
v0.27.0-rc

[0.27.0-rc] Bump version numbers

0.26.0

Choose a tag to compare

@grabbou grabbou released this 18 May 23:48

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

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

Choose a tag to compare

@grabbou grabbou released this 04 May 19:16

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

  • Fix UIExplorer Image example on iOS - a10c1b5
  • Add missing RCTConvert import - db25ab4
  • Fix coalescing key generation for RCTTouchEvent - 8efc098
  • Fix failure of pod lib lint - ef044e2
  • Fix css-layout measure mode changes from pull request #163' - 7a1b072

v0.25.0

Choose a tag to compare

@grabbou grabbou released this 05 May 21:16

Refer to release notes for 0.25.1

0.24

Choose a tag to compare

@ide ide released this 04 Apr 21:17

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! 👏🏻

RN 0.24 theme pic

_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: #6798
  • response.json() hangs when Chrome debugging is enabled: #6679
  • Unable to require images under node_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:
    • Animations and gestures for pagers: 4f8668b
    • Use the same type of animation (spring) in NavigationCardStack and NavigationAnimatedView: 07697d1
    • Reduce extra rendering in NavigationHeader: 62e80a6
  • 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 and toHashMap: #6639, #6762
  • Returning true from a BackAndroid hardwareBackPress handler stops invocation of previously registered handlers and the default OS action: 67efe4c (reverted in ede99ee)
  • 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 like adb 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 of dealloc 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