React Native v0.11.0-rc and v0.10.0 released

v0.11.0-rc on GitHub (npm, CocoaPods) Release note:

0.11.0-rc has been published to npm and CocoaPods:

Breaking Changes

  • Rename RCTReachability to RCTNetInfo: for consistency with Android. The device event that is triggered has also been renamed from reachabilityDidChange to networkDidChange.
  • Internal functions on Animated marked as protected: if you use attach, detach, getAnimatedValue, addChild, removeChild, or getChildren on your Animated components, you will need to update the code to be compatible. This change is in preparation for future optimizations. 059e605

Known Issues

  • 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
  • Numbers in bridged method names crash at launch: #2469

New Features

  • Add support for transparent modal backgrounds: toggle this by using the new transparent prop of Modal.
  • Add support for HSL/HSLA colors
  • Built-in support for handling Keyboard events: you can now add listeners to DeviceEventEmitter for keyboardWillShow, keyboardDidShow, keyboardWillHide, keyboardDidHide, keyboardWillChangeFrame and keyboardDidChangeFrame. (9aefd6b)
  • Built-in support for handling status bar change events: you can now add listeners to DeviceEventEmitter for statusBarFrameDidChange and statusBarFrameWillChange events (eg: if you receive a phonecall, the status bar becomes taller - this allows you to respond accordingly).
  • Touchable handlers now receive event objects: onPressIn etc - these event objects were already initialized so it was just a matter of threading them through.

JavaScript

  • Use GLOBAL.process instead of overwriting: respect any existing process value hanging off of the global object, and only set the env property of it. a4e6419

iOS

  • Pass props when creating a view with RCTViewManager: native module authors will understand that previously it was awkward to set initial properties on a view because props were not available in init and there was no guaranteed order that they would be set in. RCTViewManager classes can now implement viewWithProps:props to better control this.
  • CameraRoll Image Orientation fix: use ALAssetOrientationUp for consistent, predictable orientation.
  • Implemented lazy parsing of method signatures to improve TTI (Time to Interact): a5e9f83
  • Post to NSNotificationCenter when root views are added or removed: notifications are named RCTUIManagerDidRegisterRootViewNotification and RCTUIManagerDidRemoveRootViewNotification
  • Modernized Objective C syntax: 88e0bbc

Packager

  • Started adding support for System.import (in progress): this is the first step to add support for being able to split JS into multiple bundles. More details: cfcf604
  • Transformer now shows progress bar: The transform step in currently the longest one in the bundling process. This adds a progress bar to track the transform progress. eb248e0
  • More detail on fs log messages: ever wonder why there were two fs event steps in the packager log? f3a165d

Other

  • RCTProfile API now compatible with systrace: 81fdf3e

Bug Fixes

  • Fix TabBarItemIOS image scale: TabBarItemIOS supports setting the scale for base64-encoded images using an optional scale parameter, however this was broken due to the JS code only passing the uri, not the whole source object, to the native side.
  • RedBox now rotates properly: 4382c0e

v0.10.0 on GitHub (npm, CocoaPods) Release note:

react-native 0.10.0 has been published to npm and CocoaPods. Fixes from 0.10-rc include:

  • A bug in css-layout that would cause 100% CPU usage with a specific combination of flex properties has been fixed
  • Removing native event listeners during reconcilation has been fixed
  • The podspec has been fixed to allow you to use both the RCTImage and RCTNetwork subspecs
  • Multiline TextInput components keep their text and cursor within their bounds
  • ReactART has been fixed
  • The shouldRasterizeIOS prop has been fixed to use the screen scale for crisper rendering