React Native March 2018 (v0.55.0) released

v0.55.0 on GitHub (npm)


Changelog

Here are a few highlights:

  • React Native is now using the MIT license
  • Android TV device support

RNAndroidTVDemo

  • 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 other Animated.Values (b48f7e5 by @kmagiera)
  • There's a new UTFSequence module in the library for common Unicode sequences (Emoji!) (54870e0 and 4761d5a by @sahrens)
  • Added contextMenuHidden property for TextInput (2dd2529 by @amhinson)
  • Add testOnly_pressed to TouchableHighlight for snapshot tests (3756d41 by @sahrens)

Android specific additions

iOS specific additions

  • Introducing InputAccessoryView, "a component which enables customization of the keyboard input accessory view" (38197c8, 84ef7bc, and 6d9fe45 by @PeteTheHeat)
  • base-line metric exposure for Text and TextInput (51b3529, 0dbe183, and 7630a61 by @shergin)
  • DatePickerIOS now has initialDate prop (446ce49)
  • Expose version via RCTVersion.h's RCTGetReactNativeVersion() (30469ed by @LeoNatan)
  • Allow running multiple simulators simultaneously with react-native run-ios --simulator ... (2ad3407 by @koenpunt)
  • Introduced RCTSurfaceHostingProxyRootView for migration to RCTSurfaceHostingView (34b8876 by @fkgozali)
  • New UIManager API allowing intercept/delay mounting process (402ae2f and b90c1cf by @shergin)

Changes: existing functionality that is now different

iOS specific changes

  • tvOS onPress magnification animation now works via the tvParallaxProperties prop object taking pressMagnification, pressDuration, and pressDelay (6c353fd by @JulienKode)

Fixed: bugs that have been resolved

iOS specific fixes

Android specific fixes

Removed: features that have been removed; these are breaking

Android specific removals

  • ReactInstanceManager#registerAdditionalPackages has been removed; Create UIManager interface and extract common classes in uimanager/common (6b45fb2 by @mdvacca)

iOS specific removals

[0.54]

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

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

iOS specific fixes

  • Fix Crash when CameraRoll is getting assets from iCloud and no filename is provided (2ae2436 by @pentarex)
  • Fix Xcode Archive task failing if project path contains whitespace (8aa568e by @jevakallio)
  • react-native link has been fixed to correctly link iOS and tvOS targets (a63fd37 by @dlowder-salesforce)
  • GLog fix on case sensitive APFS macOS (2fef1ba by @hovox)
  • Fixed issue where you cannot launch tvOS app on Apple TV simulator (afd988f)

Internal work

[0.53]

Welcome to the January 2018 release of React Native. The CLI now supports --port for both platforms, a few components were made to support consistent props across both platforms, and various fixes were made. There was a lot of under-the-cover work done with more test improvements and dependency updates. 118 commits were made by 43 contributors 🎉.

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.

[0.52.0] - 2018-01-07

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

Added

iOS Specific

Deprecated

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

Changed

Android exclusive changes

  • Native components on Android register lazily rather than via ViewManager (1b71e03)
  • Android debug overlays (like RedBox, dev menu, loading) are no longer are system overlays; they're now part of the currentActivity (d19afc7 by @kmagiera)

iOS exclusive changes

  • Improve iOS's accessibilityLabel performance by up to 20% 📈 (19b0a65 by @chendo)

Fixed

Android exclusive fixes

  • Explicitly #define isnan __builtin_isnan for Android clang-5 to mimic gcc's default behavior (f8fe6b0)
  • Correctly update NetInfo on Android even if connection types change while the app is in the background (e6f542d by @berickson1)
  • Direction-aware borders now work with Android APIs >= 17 (7170543 by @rsnara)
  • Don't throw BadTokenException and IllegalArgmentException when showing or dismissing Modal on Android (c465599)
  • Fix Android crash when blurRadius is between 0 and 1 (dc01eff by @jamesreggio)
  • Fix borderRadius with Android API level < 18 (5aa1fb3 and ca7fe72 by @rsnara)
  • Make Android lineHeight behavior match iOS's 📏 (3f1b021)
  • Fixed autoscroll to cursor on Android TextInput (0bef872 by @shergin)
  • Fix logging unpacking time on Android when it happens concurrently with eager unpacking (028b64b by @alexeylang)
  • Prevent an Android crash when TextInput has selectionColor defined but there is no drawable cursor (1e18d90 by @gpeal)

iOS exclusive fixes

  • Don't have XCode warnings for YGDefaultLog in newly created projects (72e762d by @woehrl01)
  • iOS RCTEventEmitter uses a double for count, not NSInteger (eaa8499)
  • Fix isNuclideDebuggingAvailable on iOS (59c3e33)
  • iOS ScrollView is now rendered correctly with RefreshControl (75d62bf by @vonovak)
  • Fix a crash when keyboard is visible and bridge reload happens on iOS (d9c6585 by @fromcelticpark)
  • RedBox now appears beneath the status bar on iOS (33cefc1 by @adamjernst)
  • Fractional border widths on iOS are now the right size, honoring insets (15179f1 by @Nikita2k)
  • Implement requiresMainQueueSetup in RCTTVNavigationEventEmitter to satisfy XCode warning (ee3532b by @charpeni)
  • Support the iPhone X in the sample project's header (ad4b124 by @vincentriemer)
  • testID works on TabBarItem on iOS (e19d9de)
  • On iOS, don't error on the first live-reload of large codebases because of too little wait time (b6f1a60 by @lelandrichardson)
  • Prevent iOS crash on receiving bad unicode in XMLHTTPRequest (1c04cee by @cdlewis)
  • Define pod_target_xcconfig for PrivateDatabase (38b96cd by @ide)
  • Fixed podspec include/excludes around tvOS (ba1d7e9 by @yygene)
  • Don't spam the logs for iOS when receiving ECONNREFUSED on connecting to packager (b1701cc and ff3dc2e by @adamjernst)
  • Don't crash Systrace when debugging JS remotely on iOS (e8eec24 by @alexeylang)

Removed

  • Removing reactBridgeDidFinishTransaction from RCTScrollView (a255204 by @shergin)
  • Removing inherited background color optimization from RCTText to reduce code complexity – please give feedback if you find performance differences! (8c8944c by @shergin)

Other

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

  • Foundational work for a new justifyContent value space-evenly (1050e0b by @woehrl01)
  • Add Systrace-based telemetry to Hermes GC (05e862d)
  • Unify Systrace native hook argument passing (52e3ae9 by @amnn)
  • Use different symbols for SystraceSection depending on WITH_FBYSTRACE (03956c4)
  • Don't set global.performance to undefined if it was initialized already (dfebcb7 by @alexeylang)
  • Autofixes for migrating to Buck's source-only ABI feature (801cbdb by @jkeljo)
  • Add remote API to uninstall the global error handler in RN (1d16923)
  • Add RCTLibraryPathForURL in RCTUtil (2fecbf6)
  • Fix sections that come from React Fiber (1f40c95 by @alexeylang)
  • Fix boolean conversion in sync RN method calls. (dd888d3)
  • Fix embeddedBundleURL update situation (d1fc8ef)
  • Remove android_react_native_perf.use_separate_ui_bg_thread experiment. (4f886a2)
  • ScrollView related files were moved to dedicated folder (098a63a by @shergin)
  • move page registration logic in to jsinspector (bef7967 by @bnham)
  • Type global hooks as function pointers (eca51eb by @johnislarry)
  • std::string to const char* (b952365 by @johnislarry)
  • Allow extending props supported by native animations (71751e9 by @andrewimm)
  • Meyers singleton jsc error extractor (434f432 by @johnislarry)
  • Do not overwrite the same text in TextInput (29f3f55)
  • Renaming uiManagerWillFlushUIBlocks -> uiManagerWillPerformMounting (0a8721c by @shergin)
  • Skylarkify flags macros. (ed2bfcb by @ttsugriy)
  • Skylarkify config_utils_defs macros. (88f6f69 by @ttsugriy)
  • Round size geometry for Button and RichText components. (4034feb by @iaroslav-pavlov
  • Temporarily patched Map/Set non-extensible check into RN dev renderer (a99f0d6 by @bvaughn)
  • Run buildifier over all BUCK files (d674d48 by @zertosh)
  • Pass scriptURL to RCTTestRunner (266ab7a)
  • Make RCTNativeModule::invokeInner explicitely return folly::none in case of error (0ac5a52 by @fromcelticpark)
  • Make RCTPackagerConnection a singleton (9180d4e by @adamjernst)
  • Register split segment paths with RAMBundleRegistry (cff0d8e by @fromcelticpark)
  • check if listener is still in the set before calling onHostResume (ad89ea7)
  • export SeparatorsObj type for re-use in ListItems etc. (c6fe101 by @sahrens)
  • Do not mark node as dirty if, new and old values are undefined (41da6e3 by @woehrl01)
  • Remove RAMBundleRegistry subclasses (6ecae73 by @fromcelticpark)
  • Fix minimumViewTime in ViewabilityHelper (d19d137)