Skip to content

Releases: react/react-native

September 2018

12 Sep 12:03

Choose a tag to compare

See the changelog here

June 2018

04 Jul 15:42

Choose a tag to compare

March 2018

03 Apr 18:17

Choose a tag to compare

February 2018

05 Mar 17:38

Choose a tag to compare

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.

If you want to get involved in the process of preparing releases and making changelog (yes, we need your help!), please get in touch with me.

We keep the draft of changelogs here: https://github.com/turnrye/react-native-changelog. Visit this repository for tracking the progress of upcoming releases and suggesting improvements to the current one.

Added

VR Specific Additions

Android Specific Additions

iOS specific additions

Removed

iOS specific removals

  • Removed outdated assertion in RCTShadowView related to breaking change in Yoga (e3ff3cf by @shergin)

Android specific removals

iOS specific removals

Changed

iOS Specific Changes

Android specific changes

Fixed

  • Fix JS debugger issues related to CORS (29f8354 by @njbmartin)
  • Keep the .gitignored files during the react-native-git-upgrade process (7492860 by @ncuillery)
  • Fix re-render case on SwipeableRow (a580a44)
  • Fix display of syntax error messages when HMR is enabled (2b80cdf by @ide)
  • Add fixtures to metro blacklist in order to let build succeed (4194bb2 by @t4deu)

Android specific fixes

Read more

January 2018

10 Jan 17:02

Choose a tag to compare

This changelog has been prepared by Ryan Turner (@turnrye) - thank you for your time and making such a detailed changelog 🔥🔥

Welcome to the January 2018 release of React Native. The CLI tools now support --port for both platforms. There was a lot of under-the-cover work done.

If you would like to help us with the next release changelog, please contact @grabbou

Added

  • Keyboard events now include easing and duration (4d33080 by @sahrens)

iOS exclusive additions

  • react-native run-ios now supports the --port argument for metro (33d710e)

Android exclusive additions

Changed

iOS exclusive changes

Android exclusive changes

Removed

  • TextInput no longer has the autoGrow prop, since this is platform-default behavior now (dabb78b by @shergin)

iOS exclusive removals

  • Updates to the bridge in order to enable future rendering optimizations (d2dc451 by @shergin)

Fixed

  • Do not set minify=true when calculating the list of dependencies for the CLI (4a1bb8f by @rafeca)
  • 👷 Update CODEOWNERS now that the docs are in a separate repository (85ff264 by @hramos)
  • Fixed a broken link in react-native-git-upgrade's readme (bbedf2d by @Taym95)
  • 🤡 Do not use Node 8.x specific Stream.final for FS mocks (4216cde by @hramos)
  • Fix virtualized cell keys for list headers and footers (a010a0c)
  • Fix warnings of casting and null pointer handling in Yoga (a8d4666 by @priteshrnandgaonkar)
  • Fix broken buck failures on master (4e76701 by @hramos)
  • RefreshControl appears correctly when expected on initial render of a FlatList again (9b877d6 by @vonovak)
  • Fixed JS debugger CORS issue (df8da3b by @njbmartin)

Android exclusive fixes

  • Fix position of dev loading view on Android API < 20 (7ff6657 by @kmagiera)
  • Fix Modal not disappearing when navigating from inside a Modal to another activity (e5c2a66

iOS exclusive fixes

Other

Below is a list of the remaining, low-level changes that made it into this release of React Native.

  • Remove "prepareReact" call from the bridge (80f9e1f and 56a42e5 by @fromcelticpark)
  • Add explicit componentControllerClass to CKComponent for RCTSurface (ab97270)
  • Changes to RCTShadowView to increase RCTSurface performance (f96f9c5 by @shergin)
  • Designated methods to control dirty propagation ([...
Read more

December 2017

18 Dec 17:52

Choose a tag to compare

This changelog has been prepared by Ryan Turner (@turnrye) - thank you for your time and making such a detailed changelog 🔥🔥

This release had a lot of work around the bundler and packager, a ton of bugfixes, and updates to many of React-Native's dependencies. Lots of under-the-hood work was done as well to improve the layout engine. Happy new year!

If you would like to help us with the next release changelog, please contact @grabbou

New features

Deprecated

  • Ignore YellowBox warnings with YellowBox.ignoreWarnings([...]) rather than console.ignoredYellowBox = [...] (26038f5 by @wli)

Changed

Read more

November 2017

03 Nov 16:57

Choose a tag to compare

Big thanks to @thymikee for helping out with this release and working on release notes.

Highlights

Breaking changes

  • Consider negative border radii and widths invalid (99d294b) - @RSNara

Android

Bugfixes

  • Fixing bug when permission showing dialog and user go to home and re-open
    minimized app (ce967c6) - @RafaelMagalhaesN
  • Fix wrong error code when location service is turned off on Android device
    (7e0b7ef)
  • Fixing RTL HorizontalScrolling (c278020)
  • Fix line terminators for ImageStore.getBase64ForTag (7a7bdee) - @FnTm

New features and enhancements

  • Add visible-password for TextInput.keyboardType (752b688) - @fmoo
  • Add helpful examples to Android test env validation failure messages.
    (ff908aa) - @pori

Others

iOS

Bugfixes

New features and enhancements

Others

  • [RCTShadowView localData] is now only setter. (b0c1bd2) - @shergin
  • Deprecated stuff was removed from RCTUIManager (4342879) - @shergin
  • Deprecated stuff was removed from RCTShadowView (32e5c8e) - @shergin
  • Issue #16159 - RCTImageStoreManager's priority (4e5d50d) - @tsjamm
  • Make RCTUIManager and RCTDeviceInfo unsubscribe from NSNotificationCenter on
    (04ff184)
  • Move JS-native version check to its own module + unit tests + prefix Obj-C
    macro w/RCT (7733d40) - @ide
  • Forward RN start/end styles to Yoga (38b5506) - @RSNara
  • Move RCTConvertSelectorForType to their respective using modules (bbc90b4)
  • Code cleanup - Xcode 9 build warning/issue. (3fa6482) - @nbomberger

General

Bugfixes

  • Updated project file to fix Apple TV build (aa97c9a) - @shergin
  • Fix that section headers in SectionList don't stick at correct position.
    (a541d58) - @miyabi
  • Fix scrolling events for RN. (ca834f9)
  • Fix platform flags to also check for linux (7997a2b) - @mzlee
  • Fixed crash on attempt to update local data of deallocated shadow node
    (f2c6877) - @shergin
  • VirtualizedList: fix bug where onViewableItemsChanged wouldn't trigger
    (6747a36) - @formatlos
  • Fix Systrace section for Lazy View Managers (52a67db) - @alexeylang
  • Fix border clipping (de313f6) - @RSNara
  • Fix Flow errors at declaration of most major library components (833b274) -
    @Ashoat
  • Fix crash when loading local bundle and hot reload is enabled (1d674f0) -
    @dtsolis

New features and enhancements

Others

October 2017

11 Oct 17:38

Choose a tag to compare

Thanks to @thymikee for wrapping up release notes for this release. If you want to help by creating release notes for next release, let me know. We are happy to guide you through this process.

Highlights

  • <Image> with nested content is no longer supported. Looking into <ImageBackground> instead if this is something you did in our app
  • Android Oreo (8.0) support
  • Support for null titles in AlertIOS

Breaking changes

GENERAL

  • Add interface for ReactShadowNode (a5d1d25)

  • Default enableBabelRCLookup (recursive) to false (023ac57) - @ide

    This is a breaking change that tells Metro to look at only the project's .babelrc file. Previously it would look at .babelrc files under node_modules and would run into issues because it didn't have the version of Babel nor the plugins/presets that node_modules/randompackage/.babelrc wanted. So as a workaround, people would write a postinstall step that deletes node_modules/**/.babelrc, which worked well. This flag (getEnableBabelRCLookup = false) has the same effect and hopefully fixes one source of cryptic bugs people run into.

    To use the old behavior, create a config file named rn-cli.config.js with:

    module.exports = {
      getEnableBabelRCLookup() {
        return true;
      },
    };

    Go under node_modules, modify a used module to have a dummy .babelrc ({"plugins": ["dummy"]}) and ensure the JS bundle still loads.

Android

  • BREAKING: Removed support of nested content inside <Image> on Android (3ff463f) - @shergin

iOS

  • BREAKING: Removed support of nested content inside <Image> on iOS (c55fae1) - @shergin

Android

Bugfixes

New features and enhancements

  • Add JS->Java Bridge traffic (12f123d) - @AaaChiuuu
  • Add include_defs("//ReactAndroid/DEFS") to all BUCK files in ReactAndroid (ebb42ee) - @mzlee
  • Add error customizer for React Native Android (0c234c9)
  • Implement lazy discovery for ViewManagers. (da30b04)
  • Add TimePicker modes (1c24440) - @Kerumen
  • Add check for valid rootTag in ReactRootView (c893989)
  • Add support for dynamically sized ReactRootView (4ca6172)
  • Add getter for JavaScriptExecutorFactory (e764361) - @johnislarry
  • Add interface for ReactShadowNode (08befb7) - @ayc1
  • Add locking around CatalystInstance.getJavaScriptContext() (e9aab0d) - @cwdick
  • Add GlobalImageLoadListener (7320ca5) - @foghina
  • Add headers prop in Image source array type prop (ddc2210) - @phillip055
  • ReactRawTextShadowNode does not inherit ReactTextShadowNode anymore (80027ce) - @shergin
  • Restructured inheritance around ReactTextViewManager and co. (6114f86) - @shergin
  • Keep mActivelyScrolling true as long as events are being fired. (cbb0ccb) - @tomasreimers
  • Make view hierarchy optimizer smarter (e7af72b) - @AaaChiuuu
  • Deprecate older API uses of prebuilt_cxx_library (49359e8) - @andrewjcg
  • Adding TLSv1 support for custom SSL socket factory (0818f3b) - @PaulVanStaden
  • Introducting UIManager.setLocalData(), the way to provide environmental data to ShadowNode (d0790fe) - @shergin

Others

  • Android Oreo (8.0) Support (96de23a) - @AndrewJack
  • Fixed runtime error with ProgressBarAndroid (ccddbf8) - @bvaughn
  • Document Android native communication (a43a988) - @cdlewis
  • Improve formatting of YogaNode.print() on Android (67d0cc5)
  • Update HeadlessJSAndroid.md explaining parameters (f25233b) - @flaviolivolsi
  • Use BitmapRegionDecoder to efficiently crop images on Android (64ffe45) - @faifai21
  • Default TextInput autoCapitalize to sentences on Android (227a5f4) - @jamesisaac
  • Added Android support for loading multiple RAM bundles (4162d73) - @fromcelticpark
  • Intrinsic content size for ReactTextInput (aka autoexpandable <TextInput> on Android) (c550f27) - @shergin
  • Documentation about ABI split in Android Release (d0260b4) - @SuhairZain
  • Unify supplimentary bundle path creation logic between Android and iOS (9e01d72) - @fromcelticpark
  • Updating blog post about RTL from setAllowRTL to allowRTL (Android). (88a79b3)
  • Removed ProgressBarAndroid.android deprecation warning (87bc732) - @bvaughn
  • Fixing RTL HorizontalScrolling in Android (b12213d)
  • Log some RN Core markers (6c2c2ec) - @AaaChiuuu
  • Log Native Module init (565a241) - @AaaChiuuu
  • Log UI Manager operations (672db77) - @AaaChiuuu
  • Add Relay DebugOverlayTag (652dfd0) - @AaaChiuuu
  • Move destroy threads in CatalystInstanceImpl off the UI thread (cf2ef84)
  • Re-added global event-type Map to UIManager constants (d1372fa) - @bvaughn
  • Text to Spannable conversion is now using PRIORITY flag to enforce the order of spans (7efd4fa) - @shergin
  • HeadlessJsTaskService is expected to run on UI thread (7953707) - @oriharel
  • Untangle NativeAnimatedNodesManager from UIManager internals. (4fc9e20)
  • rename catalyst animations (87a1dc4) - @kangzhang
  • Detangle destroy and create accesses in ReactInstanceManager (6334ed2)
  • Avoid oversending modalDismissed event (9bf936c) - @mmmulani
  • Allow applicationId to be specified on build (9796295) - @shockdesign

iOS

Bugfixes

New features and enhancements

Others

Read more

September 2017

03 Oct 16:00

Choose a tag to compare

Thanks to @satya164 for preparing this release notes!

Breaking changes and deprecations

General

  • New projects have a single entry-point (index.js) from now on (6e99e31) - @fson

    Summary:

    Before

    • When creating a new project with react-native init, generated template has two entry-points: index.ios.js and index.android.js
    • Those two files were always identical

    After

    • When creating a new project, generated template has a single, shared entry-point: index.js

    Updating your code

    When upgrading to this release with react-native-git-upgrade or react-native upgrade, be aware that these tools will automatically update your code to use index.js instead of index.ios.js and index.android.js, as previously. However, they will not create an index.js file for you. This is a side-effect of the react-native-git-upgrade that has to be reverted. After running that tool, you have two options:

    • rename index.ios.js to index.js and remove index.android.js (providing that they were as generated by react-native init)
    • revert changes done by react-native-git-upgrade in order to keep separate entry files. That is, as soon as you upgrade, revert changes made to AppDelegate.m, MainApplication.java and build.gradle.
  • Yoga: Change aspect ratio behavior (67c160c) - @emilsjolander

    Summary:

    Before

    • Aspect ratio would do its best to fit within it's parent constraints
    • Aspect ratio would prioritize alignItems: stretch over other sizing properties.

    After

    • Aspect ratio is allowed to make a node grow past its parent constraints. This matches many other aspects of flexbox where parent constraints are not treated as hard constraints but rather as suggestions.
    • Aspect ratio only takes alignItems: stretch into account if no other size definition is defined. This matches the interaction of other properties with alignItems: stretch.

    Updating your code

    You probably don't need to do anything but in case something does break in your product it should be as easy as adding {width: '100%', height: '100%', flexShrink: 1} to the style declaring the aspectRatio.

Android

  • Rename module name to module path (5d4c6e5)

iOS

Android

Bugfixes

  • Fix updating a view z-index on Android (b103903)
  • Fix scroll events getting skipped on Android (29e5deb) - @janicduplessis
  • Fix content appeared logging (091878a) - @bnham
  • Retrieve correct content uri for videos (1748922)
  • Separate window dimensions change from orientation (c9aeaf6) - @atsjenk
  • Android Oreo (8.0) Support (6b39d64) - @AndrewJack
  • Always set camera distance on transforms, to default 1280 if 0 (b2fe048) - @bartolkaruza
  • Allow reactinstancemanager to set an initialization function (84e80eb)
  • Fix getting correct video width and height metrics in Camera Roll (25f2938)
  • Fix fetching video length in Camera Roll (4000202)
  • Make ResourceDrawableIdHelper work with resource id (dc61f10) - @sriramramani
  • Force original ime option when using multiline with blurOnSubmit (94a2ff9) - @reneweb

New features and enhancements

  • Add --port option to run-android, defaults to 8081 (898790d)
  • Add native Checkbox component (84b11dd)
  • Expose offset parameters for ToastAndroid (546a43b)
  • Refactor MemoryPressureListener to use Android levels (37754c5) - @cwdick
  • Improve getCurrentPosition API (7e11bad) - @rigdern
  • Do not send 'hot' parameter when requesting a bundle from Android (c2b3ee7) - @rafeca
  • Allow whitelisting urls to bypass default webview loading (40a2885) - @fkgozali
  • WebView: Show loading state when reloading (f95153e)
  • Measure height of Android Text component based on includeFontPadding property (9f5bdd7)
  • WebView: Only fire onLoadStart for toplevel page loads (ffbd3db) - @rigdern
  • Support flash scroll indicators for android (2ceed95)
  • Add perf marker that fires first time content is added to root view (d013ba3) - @bnham
  • Add perf markers for reload and download (c080fe5) - @bnham
  • Add more perf counters (caaf7fd) - @alexeylang
  • Run onReactContextInitialized() on the UIThread (43ff9b4) - @AaaChiuuu
  • Allow to fetch files over the network (b4f91be)
  • Expose the ReactApplicationContext to createShadowNodeInstance() (64e9b24)
  • Make JavaScriptExecutor.Factory a configurable property of ReactInstanceManager (73f1790) - @michalgr
  • Remove appcompat dep from react/views/toolbar (c3b47e5)
  • Reduce possible race condition on gc of catalyst instance (f0d9810)
  • Report perf counters always when we call flushPendingBatches() (4aae843) - @alexeylang
  • Expose method to set custom baseline function (9c2caaa)
  • Download bundle atomically (d63cf13) - @bnham
  • Remove v4 support library from RN deps (fe0d081)

iOS

Bugfixes

New features and enhancements

General

Bugfixes

New features and en...

Read more

August 2017

03 Sep 18:48
6ce4244

Choose a tag to compare

Breaking changes

iOS

General

Bugfixes

New features and enhancements

iOS

Bugfixes

New features and enhancements

  • Podspec: Add required "DevSupport" dependency "InspectorInterfaces.{cpp,h} (e43c061) - @HeEAaD
  • Add a delegate hook for providing a different JS implementation (05c4de0) - @mhorowitz
  • Add FORCE/SKIP_BUNDLING flags for iOS builds (0681887) - @cooperka
  • Add 'contentInsetAdjustmentBehavior' (new in iOS 11) to ScrollView (6e28b39) - @skevy
  • Remove unused RCTDebugComponentOwnership (8548ca0) - @javache
  • Remove deprecated RCTAssert aliases (20224b7) - @javache
  • Replace -[RCTConvert folly_dynamic:] with direct calls to convertIdToFollyDynamic (f1cbb11) - @javache
  • Support native ViewManager inheritance on iOS (684e035) - @cbrevik
  • Clean up -[RCTRootView cancelTouches] header docs (78e2030) - @eliperkins
  • MaskedViewIOS: A way to apply alpha masks to views on iOS (8ea6cea) - @skevy
  • Generalize/refactor -[RCTUIManager rootViewForReactTag:withCompletion:] (fac6207) - @Yu-w
  • RCTScrollEvent: get all required values injected rather than accessing the scroll view (048a9ab) - @HeEAaD
  • Introducing RCTBackedTextInputDelegate (ee9697e) - @shergin
  • ScrollView: Couple of unnecessary checks was removed from RCTCustomScrollView (f5d9b52) - @shergin
  • Unified usage of RCTAssertUIManagerQueue (8760b93) - @shergin
  • Pass actual loaded image size to load (ced1513)
  • Make the js stack bigger in RCT_DEBUG mode (2334899) - @mhorowitz
  • Simplify -[RCTModuleMethod processMethodSignature] (98258b4) - @javache
  • Removed unused ivar (_launchOptions) from RCTRootView (1b9b366) - @shergin
  • Use Apple's significant-change API (for iOS 11 UX) (f704369) - @jasongaare
  • Support namedOrientationDidChange on iOS (fbaedfd) - @javache
  • RCTCxxBridge: Use C++ atomic (7c528cd) - @Adlai-Holler
  • RCTImage: Use C atomics instead of OSAtomic (114b080) - @Adlai-Holler
  • RCTProfile: Use C atomics instead of OSAtomic (24df099) - @Adlai-Holler
  • Show bundle download progress on iOS (373f7ed)
  • Validate the content type of the bundle returned by the packager (3ce3669) - @janicduplessis
  • Adding video play duration for camera roll (636a21b)
  • TextInput setSelection method was moved to base class (da9a183) - @shergin
  • TextInput: Unified support of blurOnSubmit prop (8f93ce6) - @shergin
  • TextInput: Unified support of clearsOnBeginEditing prop (cb96f1d) - @shergin
  • TextInput: Unified support of clearTextOnFocus prop (d69e60b) - @shergin
  • TextInput: Hacks related to missed textInputDidChange were moved to adapter (4ff3e10) - @shergin
  • TextInput: Actual reactAccessibilityElement implementation (42d6323) - @shergin
  • TextInput: selection property was unified (a50c9c8) - @shergin
  • TextInput: textInputShouldEndEditing and textInputDidEndEditing were moved to base class (f89e132) - @shergin
  • ScrollView/TextInput: The amnesty of scrollRectToVisible (fa1d4e8) - @shergin
  • ScrollView: Use autoresizing masks for layouting actual UIScrollView (301830d) - @shergin
  • ScrollView: Smart contentOffset preserving (1d22f8f) - @shergin
  • ...
Read more