React Native 0.9.0-rc released
v0.9.0-rc release note:
0.9.0-rc has been published to npm and CocoaPods! There was a short delay for this RC because we wanted to include several breaking changes to Touchable components all at once.
Breaking Changes
- TouchableX components introduce their own wrapper View: Components like
TouchableOpacityandTouchableBouncenow use the Animated library to smoothly fade and bounce when touched. A consequence of this is that now we are introducing another View into the hierarchy, because we need to wrap the children in anAnimated.View. See the full details and upgrade path here.
We wrote a codemod for fixing many (not all) of the call sites automatically. You can upgrade your code by running the following:
git clone https://github.com/cpojer/js-codemod.git
cd js-codemod/
node_modules/.bin/jscodeshift -t transforms/touchable.js <the folder where your js is>
- TextInput is now a controlled component: The
controlledprop has been removed and TextInput now acts as a controlled component by default. Remove thecontrolledprop if you were previously using it. (961c1eb). If you were previously usingvalueto set an initial value, now use theinitialValueprop instead.
Known Issues
- Sticky headers do not receive touches: Sticky headers in ListViews don't receive touch events
- Packager does not support symlinks: Symlinks under node_modules for example are ignored
- ScrollView sometimes errs with "Cannot find view with tag #XXX": #1941
Deprecations
- Navigator's
onItemRefprop was removed: Use a callback ref directly on the component you return fromrenderSceneinstead (4f904b5)
New Features
JavaScript
- TextInput improvements: TextInput is more reliable and does not drop characters when typing quickly. It also now supports the
maxLengthprop. (961c1eb)

- Horizontal ListView: ListViews now check the
horizontalprop and calculate layout accordingly (09236cc) - Add VerticalUpSwipeJump and VerticalDownSwipeJump to NavigatorSceneConfigs: Check out a demo of it here. (#1822)
- Text with onPress handlers get highlight: Highlight is the WebKit grey rounded corner background.

- Examples for Image download events in UIExplorer: Check them out here: 74f8055
- New style properties:
perspective,rotateX,rotateYandrotateZare now available, and a demo of them is available under the Transform example in UIExplorer.

- Add support for files in application home directory: Works as you would expect, application home directory can be referenced with the ~/ prefix. (90dd7a1)
- Add preventDefault to Navigator events: Gives you more control over your routing (326a66b).
- tintColor for remote Images: d5943b0
- Translucent tab bar: Bringing the
TabBarIOSapi in line withNavigatorIOS, it now supports thetranslucentprop. (9936a24) - Local notification API:
PushNotificationIOSnow exposespresentLocalNotificationandscheduleLocalNotificationfunctions. (a8cb47e) - NavigationIOS shadow can be hidden:
NavigatorIOShas a new prop calledshadowHiddenthat allows you to hide the hairline shadow (2cb634b)
iOS
- Add support for gzip of request body: Decoding of response bodies is enabled by default on iOS, this feature will automatically gzip your request body when you to specify the
Content-Encoding:gzipheader with XMLHttpRequest - Use JSONKit if available: If you include JSONKit in your project it will be used by default, which can give a small performance boost in some cases
- Improvements under the hood to camera roll Images: "Ported over logic where assets are loaded at the optimal size and reloaded if the view size changes" (b34a85f)
Packager
- More descriptive error messages when a path can't be found: Rather than "Path must be a string. Received null" you will now see "Could not find source file at ..." (70feab9)
- Chrome debugger automatically reconnects to packager: If the packager is restarted during a Chrome debugging session, the Chrome debugger will automatically reconnect to the packager (fa4c570)
Other
- The jestSupport folder is published to npm: Provides support files for jest testing
Bug Fixes
- "RCTImageDownloader was ignoring server response codes. When receiving a response other than 200 it would treat this as success, meaning the image would never load, nor report failure." (d1a82c4)
- Disable focus on
TextInputwitheditableset tofalse(5006eca) - Set
allowsEdgeAntialiasingfor transformed views, fixes jagged edges when using the transform property. (see the smooth edges in the transform example above) - Fixed crash when app is reloaded while profiling is active
- Properly free JavaScript executors when app is reloaded (f2d65ea)
- Pin Babel version to ensure nothing breaks between releases, eg: the spread operator caused some issues in a minor version.
</div>