React Native v0.10.0-rc and v0.9.0 released
v0.10.0-rc on GitHub (npm, CocoaPods) Release note:
0.10.0-rc has been published to npm and CocoaPods.
Breaking Changes
- NSNumber parameters must be marked nonnull: Native bridge methods that take
NSNumber
values must annotate them using the Objective-Cnonnull
keyword - AnimationExperimental has been removed: Use the JS Animated API or react-motion instead
Known Issues
- flexWrap: 'wrap' and flexDirection: 'row' can consume 100% CPU: you may see very high CPU usage and a blank screen with the combination of these styles (#1378)
- Packager does not support symlinks: Symlinks under node_modules, for example, are ignored (#637)
- ScrollView sometimes errs with "Cannot find view with tag #XXX": #1941
New Features
JavaScript
- Modal: A new Modal component that renders its children above the UIViewController that contains your React view. See the UIExplorer for an example.
- ImageEditingManager: A new module for manipulating images saved to disk. You can crop, translate, and scale images. See the UIExplorer for an example.
- rebound has been removed: The rebound module, which was internally used by Animated, has been removed to save bytes
- ES2016 async/await: The
async
andawait
keywords have been enabled by default in the packager - Configurable JS context name: When using the regular JS runtime (not the Chrome debugger or web view), you can set its name with
NativeModules.ContextExecutor.setContextName
(iOS 8+ only). This name will show up in Safari's debug menu. - process.env.NODE_ENV: This value is defined to be "production" or "development" based on your current environment. Now you can use npm packages that rely on
NODE_ENV
!
iOS
- Configurable bundleURL: Setting the
bundleURL
property on the bridge and reloading the bridge will use the new bundle URL - Development status bar: In development mode, a status bar at the top tells you where the JS bundle is being loaded from:
- RCTBridgeDelegate: The bridge has a delegate for configuring the bundle URL
- Remove rendered RCTText contents from clipped views: Clipped ListView rows, for example, use less memory when they are off-screen
- RCTBridge startup is parallelized: Native modules are initialized while the bundle source is loaded from your packager or the disk
- Faster conversion of JS strings to NSURL objects: Replaced some regex checks in
+[RCTConvert NSURL:]
with a simpler substring check
Packager
- Upgrade Babel and regenerator, and fix spurious log messages about "es6.parameters"
Other
- Flow 0.14.0: Support for Flow 0.14.0 has been added
- jest 0.5.0: Jest 0.5.0 with io.js 2+ support has been upgraded to the final release
Bug Fixes
- Support bridged methods that have unnamed parameters, like
- (void)method:(int)a :(int)b
(b812b0e) - Fixed ResponderEventPlugin (e0ea046)
- Guard against popping past the first route in a Navigator (809a2dc)
- Fix issue with border width precedence (f2b3057)
- Maintain the height of inactive Navigator scenes so that the scroll state is unmodified (41dd6fe)
- Fixed null argument errors for timers and layout animations (95d1fd1)
- Fixed retain cycle that caused RCTModuleMethods to leak (6a4b83c)
- Sticky headers in ListViews now receive touches. This was a long-standing bug and a fellow community member stepped up and contributed a fix. Thank you @MattFoley! (#2224)
- Delay sending touches to JS until dependent (native) gesture recognizers fail (2d66e10)
- Fixed
defaultSource
for Image components (#2269) - Fixed waring about "invalid context 0x0" when rendering an image of with dimensions of zero area (#2278)
- Fix crash when using alert() polyfill due to null callback (4d81724)