Skip to content

Releases: react/react-native

March 2017

21 Jul 06:24

Choose a tag to compare

Breaking changes

Switch componentWillMount / componentWillUnmount order

(5eb3ab3) - @sebmarkbage

This switches a React feature flag so that componentWillMount happens before
componentWillUnmount when a child switches. It used to be inconsistent and this
makes it consistent and inline with what React Fiber does.

Correct value of Dimensions.get('screen').fontScale

(186f308) - @rigdern

On Android, the following properties now return a different number:

  • Dimensions.get('window').fontScale
  • Dimensions.get('screen').fontScale
  • PixelRatio.getFontScale()

This is a breaking change to anyone who was using these properties because the meaning of these properties has now changed.

These properties used to return a value representing font scale times density (DisplayMetrics.scaledDensity). Now they return a value representing just font scale (Configuration.fontScale).

Only call batchDidComplete when there were actually native calls dispatched

(5f09ca4) - @astreet

This is breaking because it affects the contract for onBatchComplete, but modules really shouldn't (and probably aren't) depending on it being called without any actual native module method calls having happened.

Android

Bugfixes

New features and enhancements

iOS

Bugfixes

New features and enhancements

General

Bugfixes

New features and enhacements

Read more

February 2017

02 Feb 17:52

Choose a tag to compare

This is February 2017 release, also known as 0.42.0.

Breaking changes

Xcode 8.x is required

Older compilers for iOS such as Xcode 7.x's are no longer supported. Please upgrade to the latest version of Xcode.

Android: windowSoftInputMode for new apps

e3d4ace - @mkonicek

All new apps created with react-native init are going to have windowSoftInputMode:``adjustResize instead of adjustUnspecified, which is default. That change makes keyboard handling on Android automatic and doesn't require any Javascript solutions, like KeyboardAvoidingView to be used. You can see the rationale behind that change along the screenshots here. It shouldn't be breaking for most of the users.

Android: (Re)move JSBundleLoader.getSourceUrl()

89d72c9 - @amnn

If you are using any of the following API's to access the Source URL of the bundle:

  • JSBundleLoader.getSourceUrl()
  • ReactInstanceManager.getSourceUrl()
  • ReactInstanceManager.getJSBundleFile()

you have to now refer to the source of truth for this information, which is at CatalystInstance.getSourceURL(), or the return value of JSBundleLoader.loadScript().

Android: Remove RecyclerViewBackedScrollView

6ec5654 - @mkonicek

RecyclerViewBackedScrollView was added a long time ago to work around the scroll-back-when-data-is-added bug, but that has now been fixed directly in the ScrollView (ReactScrollView.java) in open source and internally.

Both: Improve validation of transform property

0ed31eb - @janicduplessis

This commit improves validations of the transform object that are done on the Javascript side and makes it a bit stricter (hence the breaking change). When moving transform objects parsing to native the validations got out of sync a bit. In this change we make sure JS validations are the same or stricter than the native ones to make sure we get consistent errors across platforms.

General

Bugfixes

New features and enahcements

Android

Bugfixes

New features and enahcements

iOS

Bugfixes

New features and enhancements

General

Bugfixes

New features and enhancements

Read more

January 2017

04 Jan 13:02

Choose a tag to compare

This is 0.41.0 release, referred to as "January 2017" according to the new release schedule.

New features

Android: Nodes

This feature is currently experimental. You can turn it on by applying this in your ReactNativeHost subclass.

Nodes is an experimental, alternate version of UIImplementation for ReactNative on Android. It has two main advantages over the existing UIImplementation:

  • Support for overflow:visible on Android.
  • More efficient generation of view hierarchies.

The intention is to ultimately replace the existing UIImplementation on Android with Nodes (after all the issues are ironed out).

Feature development and bug-fixes related to Nodes are listed below in a separate section for better clarity.

Check the readme for more details.

Breaking changes

Android: Change ReactNativeHost getUseDeveloperSupport to public

f3c8158 - @jpshelley

This changes the visibility of getUseDeveloperSupport from protected to public. In order to upgrade, you should replace the following in your MainApplication.java:

protected boolean getUseDeveloperSupport() {

with

public boolean getUseDeveloperSupport() {

Android: ReactClippingViewGroup is moved to another package

57ebb98 - @astreet

Developers using ReactClippingViewGroup may need to update their imports from:

import com.facebook.react.views.view.ReactClippingViewGroupHelper;

to

import com.facebook.react.uimanager.ReactClippingViewGroupHelper;

General

Bugfixes

New features and enhancements

Android

New features and enhancements

iOS

Bugfixes

New features and enhancements

  • CocoaPods: Make Core subspec use a Ruby string array for exclude_files (01af9ee) - @ide
  • Show Yellow Box when we fail to load a local image (ac11eed) - @mmmulani
  • Apple TV support 5 (fd5af61) - @dlowder-salesforce

December 2016

04 Jan 11:09

Choose a tag to compare

This is the first release with the new monthly cadence, so 0.40 is known as December 2016. The next version will be 0.41 - January 2017, and will be released at the end of the month.

Breaking Changes

iOS native headers moved

This change affects all native modules and application code on iOS that refer to react native .h files

After e1577df, Native code on iOS must refer to headers out of the react namespace. Previously the following would work:

#import "RCTUtils.h"

But now all headers have been moved:

#import <React/RCTUtils.h>

This means that all iOS native libraries need a major version bump for RN 0.40. We attempt to minimize changes of this magnitude, and we apologize for any inconvenience caused.

require('image!...') no longer supported

Support for require('image!…'), which has been deprecated for a long time, is now removed. If you are still loading images that way in your apps, make sure to check the documentation for alternatives.

getTransformModuleOptions is removed

If you were having custom rn-cli.config.js in your app and for some reason, using getTransformModuleOptions, make sure to check @davidaurelio commit ca58e0a for details on the changes.

Android

Bugfixes

  • Fix WebView crash for links of unknown schemes (35e75c8) - @rigdern
  • Fix Overlay for Marshmallow 23+ (e335ca0) - @jpshelley
  • Stop silently failing for requires on Android (63eb4df) - @javache
  • Fix SamplingProfiler and HeapCapture for apps that lazy load react modules (d919eb7)
  • Call handleUpdateLayout even if the content didn't change (fb23000) - @Kerumen

New features and enhancements

iOS

Bugfixes

New features and enhancements

General

Bugfixes

New features and enhancements

v0.39.0

02 Dec 11:22

Choose a tag to compare

Thanks to 74 contributors who put 162 commits into this release.

Breaking changes

See this document for a complete list of breaking changes (three) and actions required.

General

Android

  • Move to new C-based implementation of css-layout in RN Android (d63ba47) - @astreet
  • Android: Fix inconsistency with fractional TextInput padding (aa85408) - @rigdern
  • Disable debug menu when monkey is running (9a8b5d9) - @rigdern

General

Bugfixes

New features and enhancements

Android

Bugfixes

New features and enhancements

  • Expose setAllowUniversalAccessFromFileURLs in Android WebView (b6a38e8) - @locly
  • Update logging to support levels, print messages in Android logcat on assertion failures (a731a23) - @astreet
  • Proper NativeAnimated node invalidation on Android (6f5433f) - @ryangomba
  • Reduce overdraw layers by hiding cards when they are not visible (54beee2) - @rigdern
  • Expose Image's onError event to JavaScript (e87e181) - @rigdern
  • Provide more info when image fails to load (d117f55) - @frantic

iOS

Bugfixes

  • Ensure notification payload is passed to completion handler (df6b8bd) - @npomfret

New features and enhancements

v0.38.0

23 Nov 06:08

Choose a tag to compare

Thanks to 72 contributors who put 157 commits into this release.

Breaking changes

See this document for a complete list of breaking changes (one) and actions required.

General

Bugfixes

New features and enhacements

  • Deprecate MapView in favor of airbnb/react-native-maps (dca53fe) - @mkonicek
  • CSSLayout: Update CSSNodeFree for C#, Java and Objective-C (31d3926) - @splhack
  • CSSLayout: Suggest the compiler to inline smaller functions (942f724) - @emilsjolander
  • CSSLayout: Don’t preallocate child lists (d932c96) - @swolchok
  • CSSLayout: Exposing layout cache check publicly (e7dc71b)
  • Use native animations in TouchableBounce and TouchableOpacity (1bb323e) - @skevy
  • Show Warning for Background Remote Debuggers (8b653cd) - @yungsters
  • Adding Jest preset so that people can configure Jest using react-native as preset (6d3e074)
  • Use yarn when available (94711bf) - @mkonicek
  • Fallback to JS Animation if native animated is not present (3237ade) - @fkgozali
  • Upgrade to lodash@^4.16.6, results in faster packager and smaller npm install size (237ab33) - @zertosh
  • Bunch of documentation updates, including better user experience, more detailed explanations and more. Thanks to @aybb, @lacker, @hramos and the entire team!
  • Integration test stability: add delay before starting TimersTest (0698b2b) - @dlowder-salesforce
  • Modernize AppContainer and add rootTag in the child context (fb7fe2d) - @fkgozali

Android

Bugfixes

  • Android shouldn't dispatch onLayout if frame didn't change (d4b8ae7) - @hayeah
  • HeadlessTask: Fix memory leak (3af104f)
  • Fix bug in canUseCachedMeasurement causing unneeded double measure (3c5a7ae) - @emilsjolander
  • HeadlessTask: Fix notification task timeout crashing (3580de5)
  • Queue JS calls that come in before JS bundle has started loading instead of crashing (68aeffe) - @astreet

New features and enhancements

iOS

Bugfixes

New features and enhancements

v0.37.0

08 Nov 10:54

Choose a tag to compare

Thanks to 67 contributors who put 160 commits into this release!

Breaking changes

Remove deprecated APIs and modules (fa5ad85) - @satya164

Removed Alternative
AppStateIOS AppState
ActivityIndicatorIOS ActivityIndicator
IntentAndroid, LinkingIOS Linking
SliderIOS Slider
SwitchAndroid, SwitchIOS Switch

Remove callback support from following modules, use promises instead:

General

Bugfixes

New features and enhancements

Android

Bugfixes

  • Fix crash when resolveView fails to find a view (8e91843)
  • Prevent app from crashing when getCurrentActivity returns null (9c3bfe0) - @cmcewen

New features and enhancements

  • ART: Use TextureView and pass Surface from the view to draw on it asynchronously instead of passing the bitmap (d294e15) - @tepamid
  • ART: Support dashes in ARTShape (d294e15) - @tepamid

iOS

Bugfixes

New features and enhancements

v0.36.0

25 Oct 18:34

Choose a tag to compare

Thanks to 67 contributors who put 139 commits into this release!

Breaking changes

General

  • Default scrollview to flexShrink to allow views below it (c43a3f5) - @emilsjolander

  • Fix unconstraint sizing in main axis (0a9b6be) - @emilsjolander

    Most of your layouts will continue to function as before however some of them might not. Typically this is due to having a flex: 1 style where it is currently a no-op due to being measured with an undefined size but after this change it may collapse your component to take zero size due to the implicit flexBasis: 0 now being correctly treated. Removing the bad flex: 1 style or changing it to flexGrow: 1 should solve most if not all layout issues your see after this change.

Android

General

Bugfixes

  • Add null check for keyboardFrame variable in KeyboardAvoidingView component (770091f) - @Isakdl
  • XMLHttpRequest.getAllResponseHeaders should use CRLF (24c72f5) - @arv
  • Emit willfocus from immediatelyResetRouteStack (95b1fc4) - @dzautner
  • Dump invalid json when call Value::fromJSON failed (9a7e4b4) - @leeight
  • Fix no "window" in react native (1941450) - @sunnylqm

New features and enhancements

Android

Bugfixes

New features and enhancements

  • Add ability to lazy load Native Java Modules (797ca6c) - @AaaChiuuu
  • Android: add support for headless js tasks (3080b8d) - @foghina
  • Add flag to enable lazy view managers (1296cb2) - @AaaChiuuu
  • StatusBar: barStyle support for Android (API 23+) (c4ac8b3) - @alwx
  • Android: enable foreground ripple (6d175f2) - @foghina

iOS

Bugfixes

New features and enhancements

  • Add support for new ios bridge to FBReactBridgeJSExecutor (af5c8a8) - @mhorowitz
  • Add destination to e2e xcode build (f0a3a25)
  • Apple TV support 1: existing Objective C code should compile for tvOS (d368ebf) - @dlowder-salesforce
  • Apple TV support 2: Xcode projects and CI (scripts/objc-test.sh) (8622998) - @dlowder-salesforce

Windows

Bugfixes

v0.35.0

11 Oct 11:27

Choose a tag to compare

Thanks to 68 contributors who put 132 commits into this release!

General

Bug fixes

New features and ehancements

  • Expose hot & live reload, remote debug, profiling (38354c4) - @dozoisch
  • Add a way to enable / disable lazy native modules (a4916b8) - @AaaChiuuu
  • Add shorcuts for windows & linux to debugger.html (f4e3e19) - @mdamien
  • Add option to bundle server to generate full sourcemaps from babel (e6bec9c) - @cwdick
  • Add Dependency Injection, nodes support for RN/Components integration (6f42603) - @astreet
  • Add "assetPlugin" option to allow arbitrary asset processing (5ac7706) - @ide
  • Add a PushFromLeft animation to Navigator (8ebe66d) - @LinesWan
  • Add jest and jest babel preset to the react-native init command (8689b0f) - @kentaromiura
  • Adjust rnpm link to colorize skipped linking steps (db870f8) - @GantMan
  • packager: dedupe symlinks if they point to already covered paths (4ab455b) - @philikon
  • Allow rn-cli.config.js to specify the default transformer, again (111ed8d) - @philikon
  • Support false mappings in "browser" fields (5710b23) - @davidaurelio
  • Close open rows on scroll in SwipeableListView (5c13eac) - @fred2028

Android

Bugfixes

New features and enhancements

iOS

Bugfixes

New features and enhancements

v0.34.1

01 Oct 20:04

Choose a tag to compare

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

Special thanks to @charpeni for writing these release notes!

General

Bugfixes

New features and enhancements

Android

Bugfixes

New features and enhancements

  • Add "npm i --save react" to Android docs (6729df3)
  • Add TextInput controlled selection prop on Android (3c1b69c) - @janicduplessis
  • Android: Add support for having borders on & components (28ba749) - @rigdern
  • Add onContentSizeChange prop to WebView (22de655)
  • Add performance tracking for rendering (16f76d4)
  • Add annotation processor to create static ReactModule infos (605a0a6) - @AaaChiuuu
  • Add separate JSBunldeLoader for assets (0c2fdf4) - @michalgr
  • Bring back missing android command (993cfa1) - @grabbou
  • Implement flex properties in java version as well (e63a7ea) - @emilsjolander
  • Remove all @ReactModule runtime annotation processing (2889343) - @AaaChiuuu
  • Don't clear queue in ProxyExecutor (b4999fc) - @lexs
  • Update gradle version and android gradle plugin version (6bfabee) - @felipecsl
  • Make Spacing.release() public (1eddd01)
  • Codemod away buck_flags in Libraries/FBR* (708efcf) - @adamjernst
  • Clean up fresco cache clearing code (d3282e3) - @foghina
  • Expose image cache interrogation to JS (69c8898) - @foghina
  • Cleanup FBReactKit BUCK paths (7430820) - @javache
  • Include image dimensions & url in Image's onLoad callback (bcf48e7) - @rigdern
  • Improve ReactRootView's onMeasure error message (00d6587)
  • Convert CoreModulesPackage to use @ReactModuleList (367c712) - @AaaChiuuu
  • Improve loading error handling on Android WebView (5ba40fe)
  • Improve ellipsizeMode prop (cd1a86d) - @rigdern
  • Listen to device orientation changes (f07ca31) - @andreicoman11
  • Smart textinput scroll (372d001) - @andreicoman11
  • Remove ReactRootView's MeasureSpec assertion (300cb03)
  • Evacuate part of optimized bundle logic from react code (d323856) - @michalgr
  • Enable developers to force Fresco to resize an image (b6735f3) - @rigdern
  • Allow UnpackingJSBundleLoader's client to queue action to perform after unpacking (2618ba2) - @michalgr
  • Rename native event timeStamp to timestamp (8aeeb4d) - @andreicoman11
  • Show a redbox when scripts fail to load (bbd1e45)
  • Brings accessibilityLabel into PickerAndroid (efd8b10) - @isnifer
  • Use the c.f.react.bridge.ReactMarker (e70d1db) - @AaaChiuuu
  • break down production startup with more markers (cc30d2f) - @AaaChiuuu
  • Android package name validator consistent with docs (9289e4f) - @radko93
  • Actually close packager websocket connection when destroying instance (588f0b8) - @foghina

iOS

Bugfixes

New features and enhancements

Read more