React Native January 2018 (v0.53.0) released
v0.53.0 on GitHub (npm)
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
iOS exclusive additions
react-native run-ios
now supports the--port
argument for metro (33d710e)
Android exclusive additions
- On Android, ScrollView now takes
snapToInterval
like iOS (ddd65f1 and b2848a5 ) - On Android, TextInput now takes
onKeyPress
like iOS (c9ff0bc by @joshyhargreaves)
Changed
- ⬆️ Metro to v0.24.2 (2e008bc and 0b5e8b4 by @rafeca)
- ⬆️ Flow to v0.63 (6b95c4f by @gabelevi)
- ⬆️ Danger to v2.0 (b750e3b by @hramos)
- ⬆️ Jest to v22.0.0 (4803419 by @mjesun)
- 💄 Bundler is now called Metro Bundler in the terminal (654d759 by @edcs)
- 📝 Update getting started url on Android CLI (6661633)
- 🐳 Dockerfile uses newest Android SDK, Buck, and new Docker tags have been pushed (4fbfbe6 and c547f78 by @hramos)
- 📝 Update repo docs to use HTTPS (33a2e53 by @him2him2)
- 🎨 Make ScrollResponder follow code style (45e6fcd by @TheSavior)
- VirtualizedList now requires a windowSize greater than 0 (3559e42)
- react-devtools works with emulator and real devices now without needing to tweak the devServer value (fa574c6 by @jhen0409)
- 📝 Clarify use of Flow props types in react-native-cli's template project (9b147a5 by @hramos)
- 📝 Add docs for
isInspectable
(59c7967 by @bnham) - ✅ More Flow improvements (Text, SectionList, and others) (f71f4e7, 632f120, and a8391bd by @yungsters, @samwgoldman, and others)
- Various code cleanup to satisfy linting errors and standards (b0319f3, dd46117, and 7f58189 by @ayc1, @grabbou, and @ide)
iOS exclusive changes
- 🔥⚡️ iOS UI Manager cleanup and optimizations (7d1deda, 0ae4c47, 2679f3e,and d9e5b31 by @shergin)
- If the inspector tries to handle a wrapped event but there is no connection, log a warning rather than a Redbox (30da262 by @bnham)
- Various under-the-covers changes around the bridge, RCTShadowView, RCTSurface, and a few others (c3139d7, 2789ba0, b8e60a3, 099b280, b263560, 19a9c5e, d3b41e0, b2a2519, 870bc48, 176a578, c491b22, c756122, andc01a171 by @shergin)
- Changed to use boost-for-react-native cocoapod, which speeds up
pod install
a ton (cf19833 by @CFKevinRef)
Android exclusive changes
- Include scroll momentum info when there are scroll events from Android (c49d249 by @wwalser)
- Yoga's mkfile for Android now uses wildcard instead of manual file addition (d89901f by @priteshrnandgaonkar)
Removed
- TextInput no longer has the
autoGrow
prop, since this is platform-default behavior now (dabb78b by @shergin)
iOS exclusive removals
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
- Fix regression introduced where layout wouldn't occur in some situations (46be5bf by @shergin)
- Fixed double initial prop applying for newly created views (0ec1017 by @shergin)
- tvOS build now works again (3bd8986 by @dlowder-salesforce)
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 (af226ef by @shergin)
- Add missing tvOS header (49cbca7 by @grabbou)
- On Android, seperate logic to initialize JS from starting the app (4996b9a by @axe-fb)
- ♻️ JS linting was cleaned up: removed unused libs, strengthened the rules, removed unneeded rules, prevent disabled tests, and more (2815ada, 183c316, 9c67e74, 79902f9, 9a36872, 67a3c42, b826596, a1a0a69, and 11a495c by @TheSavior)
- 👷 Separate JS lint and flow checks from tests (5ea5683 by @hramos)
- 👷 Fix Buck in build config to enable CI (796122d, 7c3a61f, 82b123e by @grabbou)
- ♻️ Various refactoring within the YGNode implementation (28968e2, 0a9e652, 6627d77, and d85da86, a163f70 by @priteshrnandgaonkar)
- Fix ReactLegacy and delete RCTViewControllerProtocol (a0ff8c7 by @javache)
- Define internal FB macro for OSS builds; remove some unused definitions (077c3ab and (a6a66c5 by @ttsugriy)
- RNTester: Relax Bridge Release Check (e3c6f38 by @yungsters)
- Remove embeddedBundleURL from the asset resolver (489b98b)
- Do not set FB_ASSERTION_ENABLED (4cdbb77 by @priteshrnandgaonkar)
- JSBigString to MAP_PRIVATE not MAP_SHARED (f9f40cd)
- Fixed black ARTSurfaceView (5c8481e by @shergin)
- Kill orphaned marker end in JSCExecutor (6ad1f09 by @michalgr)
- Make YGNode as c++ struct with properties exposed through accessors (f1055bc by @priteshrnandgaonkar)
- 🔖 ...and now we're at 0.53.0-rc.0 🎁 (0b99657 by @grabbou)