Releases: facebook/react-native
0.18
These release notes were written by Satyajit Sahoo. Thank you so much! Also, thanks to the 89 contributors who put 368 commits into this release!
New features
- Use
React
from NPM - 5bf1f4c - Support
onLayout
andonContentSizeChange
attributes onListView
- 3cfcd40 Animated.multiply
andAnimated.add
to combine animated values - 3eb32cb- Cross platform
PullToRefreshView
component - 44f7a00 - Add
<Text>
shadow support - 4972cab
Bug fixes
- Fix
ImmediatelyResetRouteStack
does not update Navigator's title - 67c6afd - Fix pop method to properly refresh the navigatorBar - e62471b
- Fix app crash caused by
TextInput
- 53d18c8 - Fix error when navigationBar is set back to null - 0b63571
- Pipe transform errors through transformation pipelines - 3ef6f9f
Android
New features
- Add support for custom Android views - 1fabd86
- Add support for
onScrollBeginDrag/End
andonMomentumScrolBegin/End
events - fcf0431 - Add a base activity named
ReactActivity
- Add deep linking support to
IntentAndroid
withgetInitialURL
- eb188c8 - Add
contentInsetStart
andcontentInsetEnd
properties toToolbarAndroid
- 7164c75 - Allow turning on/off DOM storage on
WebView
- 6793128 - Open source ART for Android - 27ac047
- Add support for split build per architecture - 10a17c6
- Add support for
alert()
on Android - 9bf7c71
Bug fixes
- Fix crash where measure is called with a view that is now off screen and removed from clipping - bafbe5e
- Fix when navigating to a URL loading finished is reported with the old URL in
WebView
- b436943 - Update dev menu to keep track of element inspector - c74d640
- Fix crash in
NetInfo
in case the network permission is missing - f168fc3 - Fix
WebView
failed to show UTF-8 characters - e4272b4
iOS
New features
- Add ability to use a custom view for
MapView
annotations - f9dfb90 - Implement draggable annotations on
MapView
- b8aac8b - Add option for both min/max track image to
SliderIOS
- 4cb7752 - Support dashed and dotted border styles - 15aa146
- Add support for binary type data (ArrayBuffer) to
WebSocket
- afbff9b - Adds
getSize()
method toImage
to retrieve the width and height of an image prior to displaying it - 718cd79 - Add a method to get current status bar height - 52220a9
Bug fixes
- Fix
getCurrentPosition
faling on first try - f48dbbe - Fix
<Image source={{ uri: null }} />
crashing - f940e7c - Fix iOS 7 support for URL query functions - ccd8f99
Breaking changes
- To enable JavaScript in Android
WebView
, usejavaScriptEnabled
instead ofjavaScriptEnabledAndroid
.
0.17
These release notes were written by Joshua Sierles, thank you so much! And thank you to the 87 contributors who put 299 commits into this release!
High-level changes
- Added Android WebView 8cd7730
- New Alert API that works both on iOS and Android 3a3af8a
- Exposed
navigator.product
for detecting the React Native in javascript. - Wrapped the UIManager native module in javascript for better abstraction 60db876
- Fixed
react-native bundle
failure on Windows 10 710b443 - Fixed getting a Navigator
navigationBar
by reference df70005 - Fixed packager
assetRoots
argument being ignored 802aef9 - Fixed that inspecting a stateless component would cause a crash c489660
- Added new Clipboard component on iOS and Android. Previously named RCTPasteboard on iOS 90c7ad1
- Fixed using
require("./image")
sources in development on Windows fe3686e
Android
- Allow specifying a custom file path for JSC profiler output aaffb23
- Added Image onLoadX support ae09a10
- Open-sourced Android unit tests c0f60d2
- Added support for passing
ImagePipelineConfig
toFrescoModule
, for improved Fresco configurability 4890424 - Experimental support for
LayoutAnimation
, needs to be manually enabled usingUIManager.setLayoutAnimationEnabledExperimental
593a45e - Added support for NetInfo cf892a9
- Added RTL (right-to-left) support to ToolbarAndroid c8eed6a
- Added
loadingIndicatorSrc
property to Image, similar to iOSdefaultSource
, for displaying something while loading a38cd5c - Added support for
double
type in ReactPropGroup c0c8e7c - Added support for
rotateX
androtateY
transforms to views 96553cf
iOS
- Fixed flaky rich-text TextInput scrolling b5be05d
- Allow a custom SliderIOS thumb image 9fc3991
- Allow custom colors and images on MapView annotations 5b5b550
- Added polyline support to MapView: draw lines between two points with a custom color and width 8911b72
- Added new
didSetProps
callback for configuring views or shadow views after setting props f86691a - Fixed onFocus/onBlur events for multiline TextInput 01a0fac
- Fixed a MapView crash on iOS 8 by adding a forked implementation c63de5e
- Added
excludedActivityTypes
to ActionSheetIOS 0f0b578 - Added
secure-text
andlogin-password
input types to AlertIOS. Also fixed cancel button highlighting and localization support for OK/Cancel labels f025049 - Added
blurOnSubmit
support to multiline TextInput. This mimics behavior of hitting return in a single line input. 3704257 - Fixed TextInput regression on iOS 8 and below 6d29f71
- Fixed interrupted scrolling in nested ScrollViews 67bf0f1
- Allow specifying a string for the
systemIcon
TabBarIOS property dd9c1e1 - Added LinkingIOS support for Universal Links f4c286f
- Added a
style
property to PickerIOS, allowing custom font sizes, colors and alignment e2c35dd - Added
tintColor
for ActionSheetIOS buttons 86bb656
Breaking Changes
- Deprecated RCTRootView
initialProperties
property was removed bf0934a - Scrollview support was removed from UIManager 38db6fa
- iOS native module
bridge.modules
was deprecated in favor ofbridge.moduleClasses
or-[bridge moduleForName/Class:
. This allows for efficiently lazy-loading native modules 060664f
0.16
These release notes were written by Joshua Sierles, thank you so much! And thank you to the 80 contributors who put 260 commits into this release! (Compare view)
0.16.0
JS
- Added Babel helpers for es2015 imports (gist). ffea779
- For-of support: 5dc40af
- Support for ES6 modules in Babel plugins dff8f53
Android
- Added
PullToRefreshViewAndroid
: 37f8134, cad4686 - Android view shadows: b65f1f2
- Proper touch handling for transformed Views on Android: c929e15
0.16.0-rc
High-level changes
- Hex RGBA colors, i.e.
#f007
and#FF996633
are supported. 3c04bfc - React Native was upgraded to Babel 6.
Array.from
is available as a polyfill. c473974 https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
Android
- Android supports custom fonts; only TTF and OTF for now. bfeaa6a
- The Android ViewPager gets
setPageWithoutAnimation
. 50b8b00 - Images within a TextView, i.e. emojis, are now supported. a0268a7
- The Android performance profiler, Systrace, gets thorough documentation. d2c5045
iOS
- The
keyboardAppearance
prop was added to iOS TextInput. Useful for displaying a dark keyboard. f407211 - AsyncLocalStorage gets an in-memory cache. 397791f
- TextInput supports the
onSelectionChange
event. 5a34a09 - iOS
RCTPasteboard
was released. Useful for copy-to-clipboard behavior. 26cb6be
Breaking Changes
- React Native now uses Babel 6, props to Tadeu Zagallo for upgrading and thanks David Aurelio and Sebastian McKenzie for all the help! We've been using React Native with Babel 6 at Facebook for quite a while now. Nevertheless, please report any errors related to Babel, such as transforms for some JS features not working as expected and we'll fix them.
- Touch events on Android now have coordinates consistent with iOS: 0c2ee5d
- YellowBox enabled by default on iOS: 8ab5182
- JS decorators won't work until T2645 lands in Babel. It's being worked on. The proposal for decorators is not final and therefore Babel 6 left decorator support out for now.
- Exporting default class that extends a base class won't work due to Babel's T2694.
RCTSparseArray
was replaced byNSDictionary
. Modules usingRCTSparseArray
should update. fa0b45cRCTWebViewExecutor
was removed. 0764e4e- We've migrated all internal RN components to declare their propTypes inheritance explicitly in dd09c88. This allows for better control on which props can be used. In order to make third-party native components work you will need to add
...View.propTypes
to the map of propTypes in the component definition (see dd09c88 for an example).
v0.15.0
Breaking Change
Upgrade to Xcode 7: React Native uses Objective-C generics
Changes since 0.15.0-rc
- Geolocation now works on Android (494930a)
- Open sourced
IntentAndroid
. This lets you open the system browser, Maps and other apps (ab7b3b2) - Cookies are now persisted across network requests on Android (Product pains post, 274c5c7)
v0.14.2
v0.15.0-rc
High level changes
v0.14.1
0.14.0
react-native 0.14.0 is now available on npm.
See the docs on how to upgrade.
Highlights
- The new asset system is fully available to use and integrated into the build systems of both Android and iOS.
- You can use
react-native upgrade
to get the latest project templates for the latest features.
Changes since 0.13.0
See the 0.14.0-rc changelog: https://github.com/facebook/react-native/releases/tag/v0.14.0-rc
v0.14.0-rc
Breaking Changes
- D2533877:
react-native bundle
API changes:- API is now
entry-file <path>
based instead of url based. - Need to specify which platform you're bundling for
--platform <ios|android>
. - Option
--out
has been renamed for--bundle-output
. - Source maps are no longer automatically generated. Need to specify
--sourcemap-output <path>
option to indicate where to put the source maps.
- API is now
- D2538070:
- The
--minify
option is now inferred based on the--dev
value. To get a production minified bundle use--dev false
as--dev
defaults to true.
- The
- 28f6eb:
removeClippedSubviews
now defaults totrue
onListView
. This is generally the behavior people expect fromListView
so we're making it default totrue
. If you see any issues please report them. - 82fad3: Remove redundant script to start packager, it can still be started using
react-native start
ornpm start
v0.13.0
react-native 0.13.0 is now available on npm.
Note to CocoaPods users:
We are no longer publishing React Native to CocoaPods but are maintaining the Podspec file. What this means is that you still can use CocoaPods to add React Native to your project but will have to make a small change to your Podfile.
Change this:
pod 'React', '~> 0.12'
to this:
pod 'React', :path => 'node_modules/react-native'
# or wherever your copy of react-native is
One reason for this change is that in practice many projects would end up getting two copies of React Native: one from CocoaPods under the Pods
directory and one from npm under node_modules
. The packager would find two copies of the same JavaScript files and report there was a conflict. So, having just one canonical copy of React Native (under node_modules
, with the copy under Pods
being a symlink that the packager ignores) resolves this issue.
Centralizing the distribution of React Native through npm also makes it easier for us to release updates since there's only one package repository to work with.
Changes since 0.13.0-rc
- Merged #3347 to fix a bug with Web Sockets on Android
Changes since 0.12
See the 0.13.0-rc changelog: https://github.com/facebook/react-native/releases/tag/v0.13.0-rc