Skip to content

October 2017

Compare
Choose a tag to compare
@grabbou grabbou released this 11 Oct 17:38
· 19100 commits to main since this release

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

  • Fix setBackground for Android sdk version 15 and below (5180995)
  • Fix slider colors in Android (31904d5) - @martinezguillaume
  • Fix regression in Java->C++->JS ViewManagers interaction. (346af55)
  • Fix DeviceIdentity on RN for Android (e7765a3)
  • Fix Android 4.1-4.3 WebView source baseUrl bug (59d9f8c) - @Etheryte
  • Fix overflow hidden (30044fd) - @AaaChiuuu
  • Fix arc drawing when sweep >= 360 (b64e6c7) - @nihgwu
  • Fixed crash in ReactTextInputLocalData (cdea3c5) - @shergin
  • Fix the debug logging regression (adde2ed) - @alexeylang
  • Fixed issue with remeasuring ReactTextShadowNode (a177979) - @shergin
  • Only disallow <Switch> changes if the value actually changed (6f6329d)

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

  • Fix Content-Type header checking of React/RCTJavascriptLoader.mm #15791 (3ae45d5) - @justinr1234
  • DeviceInfo.isIPhoneX_deprecated: ugly and temporary way to fix your UI on iPhone X (33f4779) - @shergin
  • Fixing clowntown in RCTUIManager (d7f6208) - @shergin
  • Fix build errors exposed by building against clang 5.0 (e846a9f)
  • Fix format warnings for clang 5.0 (d005c8c)
  • Fixed crash in [UIManager setLocalData:] (f8e1386) - @shergin
  • Hack-fix the Modal component interacting with LayoutAnimation (e220878) - @mmmulani
  • Fix crash when trying to load photo library assets with nil image url (7fab093) - @terribleben
  • Fixed issue with measuring text with NaN width (6b11259) - @shergin
  • Fix Android project do not delete font files when run react-native unlink (c1058b1) - @iineva
  • Fix ReactLegacy project (01bcbd4) - @fromcelticpark

New features and enhancements

  • Support null titles in AlertIOS (d726c2c) - @11nc
  • Introducing PseudoUIManagerQueue (5e25c0e) - @shergin
  • Added iOS support for loading multiple RAM bundles (7d2021e) - @fromcelticpark
  • Proper support of the accessibilityLabel for <Text> components on iOS (915a020) - @lostatseajoshua
  • (iOS) Support for DemiBold alias of SemiBold (font-weight 600) (73c3aa8) - @wildseansy
  • Add onDismiss to Modal.js (a389ffb) - @mmmulani
  • Introducting -[UIManager.setLocalData:forView:], the way to provide environmental data to ShadowView (8b4ed94) - @shergin

Others

  • Use xcpretty for iOS build output if installed (cb8a116) - @tabrindle
  • Minor documentation correction for exposing native iOS components (3ceb20d)
  • Refactored executeApplicationScript in RCTCxxBridge (6e28179) - @fromcelticpark
  • Improve RCTCxxBridge invalidation (7b77055) - @javache
  • Using mutex inside RCTUIManagerObserverCoordinator instead of GCD (38c8b6d) - @shergin
  • Using indexOfObjectIdenticalTo instead of indexOfObject in RCTUIManager (9d9e250) - @shergin
  • Improved documentation for ActionSheetIOS.js (5317b68) - @petterh
  • Silence annoying logs in iOS 11 (f01c73d) - @mmmulani
  • Small NaN related optimisation in RCTShadowText (73b596c) - @shergin
  • Using modern API to get available size in RCTShadowText (eeda4f3) - @shergin
  • Use const reference in RCTNativeModule::invokeInner (29e7659) - @fromcelticpark
  • Bunch of utility funcs were moved to RCTUIManagerUtils (6d67e2d) - @shergin
  • Removed unused imports from RCTUIManager (ac6b1d1) - @shergin
  • always pass key parameter to RCTReadFile (c4f7ce9) - @fromcelticpark
  • Make ios-install-third-party.sh more robust (05cb7ce) - @mhorowitz
  • iOS: Support allowFontScaling on TextInput (9c4ec30) - @rigdern
  • Using RCTExecuteOnUIManagerQueue convinient func in all conseptually identical cases (feba4f6) - @shergin
  • Using RCTExecuteOnMainQueue in RCTUIManager (9cd095e) - @shergin
  • Return instancetype for shared RCTI18nUtil instance (09680f7) - @fmanns
  • Remove usage of "this" in a callback in RCTNativeModule (d07279c) - @fromcelticpark
  • Unify sampling profiler and reload logic by leveraging RCTPackagerConnection (afec987) - @fromcelticpark
  • remove RCTWebSocketObserver (7f6a7ae) - @fromcelticpark
  • Redo error handling on iOS (e87904c) - @adamjernst
  • Use UnimplementedView for CheckBox on iOS (f9be64a) - @timwangdev
  • RCTTextInput: Fixed problem with accessory view & 3rd party libs (bf36983) - @shergin
  • Move JS-native version check to its own module + unit tests + prefix Obj-C macro w/RCT (4f709f7) - @ide
  • Make react-native link play nicely with CocoaPods-based iOS projects. (4c196ae) - @mironiasty
  • Remove AdSupport from React.podspec (1e3a8e2) - @javache
  • Replace getInt with asInt in native collections (790eabc) - @johnislarry
  • Move URL escaping to Inspector layer (ef2e29f)
  • Add missing Contents.json, delete files that shouldn't be in .xcassets (9731b58) - @stepanhruda
  • Removing fallback source URL from JS bridge (1712664)
  • Access AppState constants on main thread (e8c83d1) - @mmmulani
  • Force local builds to use regular JS bundles if RCT_ENABLE_INSPECTOR set (6b733a4)
  • Improve DX for FBReactKitIntegrationTests (af2e3fe) - @sahrens
  • Log call stack symbols in case of native module method's failure (47f6068) - @fromcelticpark

General

Bugfixes

New features and enhancements

Others

  • RN buck: bundleCommand: add test for multiple bundles (53a339a) - @jeanlauliac
  • explicitly show how to add the optional listener (e3a6be5) - @geirman
  • Add example on ActivityIndicator and TouchableOpacity components (f7f3473) - @lwinkyawmyat
  • Add @rigdern to the issue task force (dd87db3) - @rigdern
  • Add missing delete to requestIdleCallback (ce0235e) - @esprehn
  • Adding Soundcloud Pulse play store link to showcase (dcac873) - @vtorosyan
  • consistent use of URL for resolving asset source (b89d6c8)
  • Migrate tests away from "jsdom" environment (bae5505) - @mjesun
  • Branding: "packager" -> "Metro Bundler" (12eb04b) - @cpojer
  • Flow type: saveToCameraRoll returns a string (274e407) - @maartenschumacher
  • Upgrade yargs to 9.0.0 (2259538) - @cpojer
  • Refactor how symlinks are discovered in local-cli, support scoped modules (39f83c4) - @skevy
  • Upgrade babel-plugin-react-transform to v3.x (f568090) - @rafeca
  • Make <TextInput multiline> default blurOnSubmit to false. (adb6646) - @RSNara
  • Prepack optimizations (e9780bd) - @bvaughn
  • Native view manager event types exposed to JS via view config (75c94a8) - @bvaughn
  • Zero out all fields in YGZeroOutLayoutRecursivly using memset (d0f36d7)
  • Added Flow types for React Native host components (11b4084) - @bvaughn
  • Use uniqBy for deduping assets in react-native link (df8d0d1) - @arahansen
  • Base class for all object private data passed to JSC (d6c519b) - @michalgr
  • More useful utilities in jschelpers (0ee502d) - @michalgr
  • Revert faulty change to HelloWorld demo in docs (c25a3db) - @drew-isnotnull
  • Fixed package.json peerDependencies (ed77dbb) - @bvaughn
  • Synchronize all relay packages (628cbe1) - @leebyron
  • Initial implementation of multiple RAM bundles registry (2f952fb) - @fromcelticpark
  • Migrate to Circle 2.0 (8fa9984) - @hramos
  • Allow "nativeRequire" to accept "bundleId" and "moduleId" values (da2ea26) - @fromcelticpark
  • Configure JSExector with BundleRegistry instead of JSModulesUnbundle (7d11573) - @fromcelticpark
  • Give complex FlatList example more motivation (82b4b9b) - @jkdf2
  • Remove older devtools hook for relay-devtools (bd70f3a) - @leebyron
  • Move debugger client code to its own folder (e6596dc) - @rafeca
  • Make the runBeforeMainModule config param to RN repo and make it absolute (34487c0) - @rafeca
  • Updated support for WebStorm (43d394c) - @esbenvb
  • Upgrade Prettier to 1.7.0 (888c6e7) (70c6700) - @vjeux
  • Bump metro-bundler dependency to 0.19.x (28525ba) - @rafeca
  • Validate that JS and Native code versions match for RN releases (1af645b) - @janicduplessis
  • Fix MaskedView to MaskedViewIOS in docs (a004e2b) - @khietvovan
  • WebView contentInset marked as iOS only (1b80118) - @paulbrittain
  • Changed React to React Native in README.md (9cf2b11) - @jxshco
  • Extend unit test for buildStyleInterpolator (3e31038) - @kodafb
  • Avoid eval in buildStyleInterpolator (915ac20) - @kodafb
  • bring back box-none as layout only prop (bbcfcdb) - @AaaChiuuu
  • Modernize docs: remove 'use strict' from docs -- es6 has 'use strict' by default (e1fb6ff) - @wesharehoodies
  • Export StyleValue and StyleProp Flow types from StyleSheet (9c29ee1)