React Native October 2017 (v0.50.0) released
v0.50.0 on GitHub (npm)
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.
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 deletesnode_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; }, };
</div>
Go under node_modules, modify a used module to have a dummy .babelrc (`{"plugins": ["dummy"]}`) and ensure the JS bundle still loads.
Android
iOS
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 ofindexOfObject
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
- RN local-cli: fix the reporter creation code (1de6ec4) - @jeanlauliac
- fix ItemSeparatorComponent position in horizontal and inverted mode (ae60ae4) - @VahidBo
- Fix Animated spring test (1afc93d) - @sahrens
- Fix
excludedActivityTypes
error in flow types (0c5b390) - @anta-semenov - Fix Flow errors in ListViewData source. (11963d8) - @nmn
- Fix onSubmitEditing dispatch behavior with blurOnSubmit/multiline combinations. (4d54b48) - @adam0000
- Fix website generation (c5d8785) - @hramos
- Fixes removeClipSubviews check for offscreen rendering of ListViews (03ae65b) - @mattfoley
- Fix error appearing when disconnecting HMR client (38ec30b) - @rafeca
- Fix navigation links in documentation. (2f2c3ea) - @prsevero
- Fix warning on SectionList's tutorial (c12681c) - @gabrielweyer
- Fix test suite (e8d30c6) - @grabbou
- Add a check in InitializeCore.js that PlatformConstants native module is present (96f23e7) - @fromcelticpark
New features and enhancements
- Add all test routes as server snapshot tests (393bf88) - @sahrens
- Add Example for TouchableOpacity.js (fa1b533) - @lwinkyawmyat
- Add props for overriding native component in WebView (f426a83) - @cbrevik
- Add closed-form damped harmonic oscillator algorithm to Animated.spring (26133be) - @skevy
- Add onScrollToIndexFailed support to VirtualizedList (e16b514) - @sahrens
- Add missing node-notifier npm dependency (4119182) - @ide
- Add SwipeableFlatList (d8cc6e3) - @tomasreimers
- Add Delta Bundler client to JS remote debugger (ace7273) - @rafeca
- Add Source Map support to e2e deltas in chrome debugger (15130d5) - @rafeca
- Add gating to the JS delta client on the remote debugger (a0e88c2) - @rafeca
- Add AppIdentity and DeviceIdentity to Inspector (da14fad)
- Add isNetworkInspected to check if a JS VM needs to be paused on launch (9056314)
- Upgrade Flow to v0.56.0 (a16ef18) - @samwgoldman
- Log error message when there are zero connected clients (c88b2b2) - @hrp
- Introducing
<SafeAreaView>
(983b054) - @shergin - link images to iOS project when run
react-native link
(c1058b1) - @iineva - Allow FlatList data to include 0 or '' (falsey items) (ae1a4f0) - @tomasreimers
- Native Animated - Allow events that are dispatched from any thread (3cbc361) - @janicduplessis
- Improve YellowBox output format (eae4fe8) - @janicduplessis
- React sync to v16.0.0 (678a7f3) - @bvaughn
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 inreact-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
andStyleProp
Flow types from StyleSheet (9c29ee1)