Are you happy with your logging solution? Would you help us out by taking a 30-second survey? Click here


A framework for building native apps with React.

Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star full 4f7b624809470f25b6493d5a7b30d9b9cb905931146e785d67c86ef0c205a402Star half bd79095782ee4930099175e5ce7f4c89fa3ddabcd56fffcc7c74f6f2a2d46b27 (4 ratings)
Rated 4.75 out of 5
Subscribe to updates I use react-native

Statistics on react-native

Number of watchers on Github 61021
Number of open issues 522
Average time to close an issue about 17 hours
Main language JavaScript
Average time to merge a PR about 9 hours
Open pull requests 717+
Closed pull requests 1282+
Last commit over 1 year ago
Repo Created almost 5 years ago
Repo Last Updated over 1 year ago
Size 198 MB
Homepage http://facebook.g...
Organization / Authorfacebook
Latest Releasev0.54.0
Page Updated
Do you use react-native? Leave a review!
View open issues (522)
View react-native activity
View on github
Fresh, new opensource launches 🚀🚀🚀
Trendy new open source projects in your inbox! View examples

Subscribe to our mailing list

Evaluating react-native for your project? Score Explanation
Commits Score (?)
Issues & PR Score (?)
What people are saying about react-native Leave a review
It's nice, beatiful, free & open source <3
Awesome , quick and sometimes hard

React Native · Circle CI Status npm version PRs Welcome

Learn once, write anywhere: Build mobile apps with React.

  • Build native mobile apps using JavaScript and React: React Native lets you build mobile apps using only JavaScript. It uses the same design as React, letting you compose a rich mobile UI from declarative components.
  • A React Native app is a real mobile app: With React Native, you don't build a mobile web app, an HTML5 app, or a hybrid app. You build a real mobile app that's indistinguishable from an app built using Objective-C, Java, or Swift. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.
  • Don't waste time recompiling: React Native lets you build your app faster. Instead of recompiling, you can reload your app instantly. With hot reloading, you can even run new code while retaining your application state. Give it a try - it's a magical experience.
  • Use native code when you need to: React Native combines smoothly with components written in Objective-C, Java, or Swift. It's simple to drop down to native code if you need to optimize a few aspects of your application. It's also easy to build part of your app in React Native, and part of your app using native code directly - that's how the Facebook app works.

The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.

See the official React Native website for an introduction to React Native.

Supported operating systems are >= Android 4.1 (API 16) and >= iOS 8.0.

Getting Started

Follow the Getting Started guide. The recommended way to install React Native depends on your project. Here you can find short guides for the most common scenarios:


The websites documentation is divided into multiple sections.

Another great way to learn more about the components and APIs included with React Native is to read their source. Look under the Libraries/Components directory for components like ScrollView and TextInput, for example. The RNTester example is also here to demonstrate some of the ways to use these components. From the source you can get an accurate understanding of each components behavior and API.

The React Native documentation only discusses the components, APIs and topics specific to React Native (React on iOS and Android). For further documentation on the React API that is shared between React Native and React DOM, refer to the React documentation.


React Native is under active development. See the guide on upgrading React Native to keep your project up-to-date.


Read below to learn how you can take part in improving React Native.

Code of Conduct

Facebook has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.

Contributing Guide

Read our contributing guide to learn about our development process, how to propose bug fixes and improvements, and how to build and test your changes to React Native.

Beginner Friendly Bugs

We have a list of beginner friendly issues to help you get your feet wet in the React Native codebase and familiar with our contribution process. This is a great place to get started.


React Native is MIT licensed.

React Native documentation is Creative Commons licensed.

react-native open issues Ask a question     (View All Issues)
  • about 3 years add style opacity to animated.view in react native 0.37
  • about 3 years When using RefreshControl and clicking status bar, RefreshControl goes into refreshing state after scroll to top
  • about 3 years Incorrect Babel transforms when running with "npm link"
  • about 3 years Cannot assign to read only property 'product' of object '#<WorkerNavigator>' initializeCore.js line 176
  • about 3 years Crash when rendering ReactSwitch on Android 4.4
  • about 3 years No stack trace for thrown exceptions
  • about 3 years IOS crash when a container is smaller than a ScrollView
  • about 3 years Error when I enable Hot Reloading
  • about 3 years Alert bug in RN 0.36.0
  • about 3 years onMessage failing when there are JS warnings and errors on the page
  • about 3 years remote push notification broken in 0.38-rc (with fix)
  • about 3 years Dependency problem with creating a custom native android module
  • about 3 years Allow more styling for the new Button component
  • about 3 years Promise reject callback produces NSCFConstantString Exception with redbox
  • about 3 years viewConfig is not defined: 0.37 seems to have broken a lot of native modules
  • about 3 years ScrollView bug with RTL setting
  • about 3 years 【iOS8】Image form server can`t render correctly on iOS8~ help.
  • about 3 years webview doesn't support https url on self-signed certificate
  • about 3 years ListView rows don't refresh when the state change.
  • about 3 years PushNotificationIOS: Local notifications not working in iOS 10.
  • about 3 years java.lang.NullPointerException: Attempt to invoke virtual method 'void com.facebook.react.uimanager.ReactShadowNode.setStyleWidth(float)' on a null object reference
  • about 3 years React-Native 'CSSLayout/CSSLayout.h' file not found on Swift
  • about 3 years Document packager's unbundle command
  • about 3 years Hot Reloading crashes the app
  • about 3 years RCTbridge not initializing when running on device
  • about 3 years Build Failed: Cannot find module with tag 'folly' in import path [On building from source on deployment machine]
  • about 3 years Not able to run on Node v7.1.0 on Windows
  • about 3 years Border color bleeding bug when border radius is set.
  • about 3 years Touchable* onPress not working on ScrollView composition
  • about 3 years Using cocoapods 1.1.1 to install react native in iMessage extension on ios causes compile errors
react-native open pull requests (View All Pulls)
  • Deprecate PullToRefreshViewAndroid and remove it from the website
  • typo with in code, replace date.toTime with date.getTime
  • Use ReactActivity for UIExplorer and Movies examples
  • Added the ability to set an Image as the title in NavigatorIOS.
  • Fix hidden StatusBar reappearing after exiting app on Android
  • Updating the `react-native run-ios` command to use UDID
  • Resolved UIExplorer StatusBarIOS deprecation warning
  • Update Navigator.js
  • Fix packager issue that happens as a result of incorrect node-haste callsites.
  • Update providesModuleNodeModules option to use new format.
  • Docs:, clarify how navigation animation is configured.
  • Add 'Collegiate - Learn Anywhere' to the showcase
  • Replace underscore by lodash
  • [Websocket] Update options parameter to headers. Update to spec.
  • Remove assertion preventing nested RCTRootViews
  • Ability to supply product flavor for `react-native run-android` command
  • Increase timeout for JS bundle download on Travis
  • Rework the NavigationHeader
  • Ability to disable/lock the android ViewPager scroll from props
  • Shows list of packages cached by nvm when running tests
  • add zrcaifu app to showcase
  • Added mediaPlaybackRequiresUserAction to WebView
  • Show a Toast for HMR
  • fix some es6 syntax error
  • allow different applicationIds in productFlavors or applicationIdSuffix in buildTypes
  • Introduce disabling for Touchable* elements
  • fix RCTPerfMonitor display unit error
  • Make loop iterate over all elements in the array
  • A few NavigationExperimental improvements
  • Support cancelling a toast
  • Refactor bezier implementation from bezier-easing library
  • nit: Fixed extra space before > in Accessibility documentation
  • [Android] Implement UIManager.takeSnapshot
  • flowconfig adds flow/ folder
  • Fix ImageEditingManager when no external cache
  • [Tests] Add a test for RCTBridgeModules that aren't auto-exported
  • add examples that demonstrate how to use mergeItem, multiMerge, multi…
  • Setup RCTNativeAppEventEmitter on init
  • take two warnings. `RCTDatePickerIOS.propTypes` don't pass the verify…
  • [Android] vibration patterns with examples
  • Allow building UIExplorer with Buck
  • Fix asset path-traversal outside of roots
  • add previous tag for all docs and autodocs
  • [IOS Objective-C] Can't set webview's background color on ios
  • debugging flow check in CI
  • GeoLocation timeout never called on android
  • Update watchman version in docs to latest stable release
  • Fixes #5934
  • Automatically configure local IP address for iOS device development
  • [CLI] Invalidates project name if given name is "native".
  • Fix to make bundling available for iPhone simulators again
  • [RFC] Add transform-react-jsx-source to react-native preset
  • iOS DX: Automagically find packager's IP address
  • [Android] Remove Stetho dependency from ReactAndroid
  • Remove Newton's method from 'Easing.bezier()'
  • Add 'props.lineBreakMode' to Text
  • Add support for sending binary data in websockets.
  • Update index.js using ES6
  • Adding emulator, simulator UIExplorer example across docs
  • Add '--ignore-babelrc' option to the packager
  • Fix DrawerLayoutAndroid not able to set opacity
  • Added perspective transform support for Android
  • Update
  • Testing the blame bot: Tweak Modal
  • Fix spelling of descendant
  • Update showcase.js
  • Explicitly import React
  • Don't start the Chrome Debugger for a file.
  • showcase- fixed hello dating link to app store
  • Add scheduledLocalNotifications to PushNotificationIOS.
  • Fix ScrollView's snap index when scrolling forward and user taps the screen again while still scrolling
  • Implement returnKeyType/returnKeyLabel on Android
  • Added section concerning open source applications to showcase
  • [iOS] Remove all null values for request headers
  • Update the PR template
  • Cross platform ActivityIndicator
  • Add applicationIconBadgeNumber to LocalNotification.
  • Clean up and simplify WebSocket implementation on the JS side
  • [WebView] Implemented stopLoading
  • Add a removeListener method to DeviceEventEmitter for Framework consi…
  • ignore InvalidPackage lint error in MoviesAndroid example
  • make NavigationHeader and NavigationHeaderTitle pointerEvents configurable
  • Add Emoji Poetry to showcase.js
  • made all package versions strict
  • [WebSocket][android][ios parity] Add support for binary type data (ArrayBuffer)
  • remove unused and misleading function
  • [Native-Animated] Java unit tests for native animated module.
  • Fix broken link for shouldComponentUpdate
  • android websocket: include cookies with request
  • endRefreshing animates scrollView to top inset instead of zero
  • adds textAlignment to placeholder to match textViews alignment (for m…
  • Add "Easybooking" app to showcase.
  • Update name & app icon for 'New Music' app
  • [Threading] Increase the stack size for the React queue on older Android phones
  • [ListView] Reset ListViewDataSource "dirty bit" so that a row will only ever re-render once when changed
  • More helpful error message when react-native start is forgotten
  • Added react-present-remote to showcase.
  • [tests] Test that Picker selection is updated correctly
  • don't render stale scenes that have the same index than current navigationState
  • Add comments on NetInfo.js
  • iOS: Provide correct animation function for hiding keyboard
  • Fix adb being required in path
  • Readability fix for Android environment setup
  • Note that MapView is not yet available on Android
  • Add missing resizeMode prop on Image Android
  • Newpr
  • Support HTTP headers for source prop on <Image> components
  • Packaging a react native component file added
  • Fix RefreshControl race condition
  • iOS: Enable views to be nested within <Text>
  • Add "Coiney Madoguchi" to showcase
  • Fix header elevation of NavigationExperimental
  • add NullPoint protection
  • Correct semantics for XMLHttpRequest.responseText
  • Update to new ReactPerf
  • check content size when scrollView update clipped subviews
  • add 一休 app In the showcase
  • Make it easier to develop ReactNative from repo HEAD
  • replace var to const on uiexplorer
  • add progressListener for android when using FormData to upload files
  • Round alpha channel when interpolating colors to the nearest thousandth.
  • Fix for "Unable to resolve module nullthrows".
  • Core components tutorial
  • Add 'Vorterix' app to Showcase
  • added HireArt to showcase
  • Fix tab in Examples/UIExplorer/SwitchExample.js
  • Implement Array in Arguments.toBundle
  • Add QQ音乐 全民K歌 QQ空间 QQ to showcase
  • update showcase.js
  • Support centerOffset and calloutOffset on MapView annotations
  • Reset hasError flag after HMR request
  • Add Copy Stack button to Red Box (iOS)
  • Incorrect variable name
  • Merge rnpm into react-native
  • Added 'help' command to local CLI.
  • Resize text in multiline TextInput if text is set programmatically
  • [Node 6] Run CircleCI tests on the latest version of Node
  • Remove CUIICatalog invalid asset name supplied error
  • RFC, WIP: Refactor Text into platform-specific files
  • [NavigationExperimental] fixes a bug where NavigationPropTypes.SceneRenderer was a plain object
  • Provide a chance for making a callback reusable
  • [Navigation] Set statics on the NavigationCard container
  • Support multiple HMR clients
  • Implement defaultSource on Image Android
  • fix prop error on DatePickerIOS
  • [Android] use RN version from node_modules instead of jcenter
  • show stacktrace in yellowbox
  • Added additional predefined easing options to Easings.js
  • Accessing Javascript from Service (Android)
  • Remove deprecated PullToRefreshViewAndroid and onRefreshStart / endRefreshing
  • [Android] Added size information for webviews
  • Documentation typo – missing word
  • Link fix on Splash, add TRED.
  • Tweak dev menu label: Stop Remote JS Debugging
  • Fix typo in ListViewDataSource documentation.
  • Update error message on unrecognized commands
  • Android: allow app/build.gradle to specify additional packager arguments
  • Packager: accept relative --transformer paths everywhere.
  • [rfc] Update `fbjs-scripts` to ^0.7.0
  • move templates to .github folder
  • Typo fix in Touchable example
  • add "The most detailed Chinese tutorial website url in the Support Page"
  • Return empty bundle when passing an empty map to toBundle
  • Native propTypes RCTDatePickerIOS !== propTypes DatePickerIOS
  • Add zIndex support
  • Update
  • CLI Project Generator: Explicitly include a default .babelrc
  • [iOS][Text]line break mode for ios
  • TouchableHighlight and TouchableOpacity look at props.accessible
  • Update
  • Fix typo in NavigationTransitioner
  • Supported latest buck: buckversion file
  • Fix mutil currentBundleTask when add productFlavors in build.gradle
  • Android: Support HTTP headers for source prop on <Image> components
  • Replaced old password prop with secureTextEntry
  • Add Fresco to ProGuard
  • Correctly passes localNotification to app on wakeup
  • Create Existing App Integration Tutorial
  • Removing --reset-cache from bundle generation scripts
  • Support vscode as a React Editor
  • Picker (android): Convert children to an array before accessing with a position
  • Add 儿戏亲子游 App to React Native showcase
  • Update
  • Defend against nil pointer in RCTImageLoader.m
  • IOS TextInput bug when input Chinese Pinyin
  • Fixes ActivityIndicatorIOS doesn't hide initially
  • Update
  • Making babel to use the babelrc file if we find it
  • Added REACT_EDITOR_LINEFORMAT support to allow jumping to correct line with more editors
  • Cleanup packager dead debug endpoint
  • Navigation card style prop
  • Fixed position of ripple-effect
  • Load local assets synchronously to prevent image flicker
  • Remove shouldComponentUpdate from NavigationCardStack
  • Update showcase.js
  • Add docs to show how to select specific simulator.
  • Fix navigation card stack pan responder
  • if quick call jumpTo the transitionQueue will be quit before handle a…
  • iOS: Provide correct initial value for AppState.currentState
  • [showcase] Add DN Prio
  • Added logging to push registration failure.
  • Remote notification completion handler
  • fixed comment section
  • Support selectable={true} property on Text fields on Android.
  • Detect if the current image being displayed is the source. Only cancel…
  • Android WebSockets: include cookie in request
  • Fix bug where library is generated in the wrong place (node_modules)
  • Pass applyAnimation through CardStack
  • Add Image resizeMode repeat on iOS
  • Allow rn-cli.config.js to specify the default transformer
  • Android WebView “tel:” links show web page not found - issue fixed
  • 0.29 stable
  • More information for valid inputs
  • Add ping to WebSocket
  • fix UIExplorer navigation can not drag back problem[iOS]
  • onPause -> onHostPause and onResume -> onHostResume
  • Modify proguard rules for Fresco gif support
  • Blog post about new docs
  • added onComplete callback to animation config
  • Fix the getRowData method of SwipeableListViewDataSource in SwipeableListView
  • export SwipeableListView component.
  • Viewpager fix
  • fix required propType.
  • Implement TextInput onContentSizeChange
  • [don't merge] Travis stress test
  • Update docs with ReactInstanceManager API change
  • OkHttpCallUtil.cancelTag verifies tag is not null
  • open in editor button for yellow box
  • Add android network progress support on body uri upload files
  • Doc. Update For Module Dependency Injection
  • Set defaults in RCTBundleURLProvider so development mode is the default
  • Use PropTypes instead of React.PropTypes.
  • if the NSURLResponse return nil,set URLCache will crash!
  • Initialize ImagePipelineFactory in ImageLoadedModule
  • Add animation support to resetTo method
  • ActivityIndicator Example ES6 classes migration and TimerMixin removal
  • Accept children of all types for NavigationHeaderTitle
  • Add responseType as a concept to RCTNetworking, send binary data as base64
  • [NavigationExperimental] Add `runner` to `NavigationTransitionConfigurator`
  • Support geolocation in android webview
  • Fix maxLength issue of TextInput on MarkedRange and AutoCompletion
  • Cherry-pick: Fix Navigation Links
  • Mixed content issue fixed
  • Typo.
  • [Android] Update OkHttp to 3.4.1 and Okio to 1.9.0
  • Update 0.29 "Image" document
  • Fix link typo to more resources page
  • add closeOnScroll to SwipeableListView
  • Android: Implement cancelable option for Alerts
  • Don't clear ReactNativeHost if other inst exists
  • [cli] Add support for passing in additional assetExts to packager
  • added new sizes to ActivityIndicator
  • Support RefreshControl in RecyclerViewBackedScrollView in Android
  • fix compile warning
  • Fix PushNotificationIOS requestPermissions promise bug (Cannot call requestPermissions twice before the first has returned.)
  • [ReactAndroid] Switch source url for downloadBoost task
  • Android: Enable views to be nested within <Text>
  • JSONKit usage here may cause serious crash hard to debug(I found the …
  • Update RCTWebview to enable caching again for iOS.…
  • Ios: complete iOS vibration pattern supports
  • [ios] don't limit possible orientations for <Modal>
  • Initial implementation of requestIdleCallback on Android
  • [SwipableRow] Fix Scrollblocking on Android
  • [docs] add debugging native code
  • Webview: Fixed broken fullscreen modals due to zero body height.
  • Ignore fake keyboardWillChangeFrame events
  • remove max children limitation on SwipeableQuickActions
  • Feature/add show case
  • [RNPM] Add pre/postunlink
  • [RCTRedBox] Don't show keyboard shortcuts with redbox on device
  • Rename Edit on GitHub to View on GitHub
  • Add melihmucuk to Github Issue Task Force
  • give more warning context
  • relativeKeyboardHeight works wrong in some cases
  • Fix image source prop change updating image
  • [Android] Fixed reverse logic in ReactToolbarManager setRtl.
  • fix problem: RCTImageLoader cannot load image file without a extension.
  • Add "CALLme" app to the showcase.
  • Stop Reload Android Webview On Same URL Before
  • Fix libraries missing in examples: 2048 and TicTacToe
  • [NativeAnimation] Problems & solutions
  • Make onUnhandled safe for undefined errors
  • Android WebSocket: include cookies in request
  • Add note to networking docs about iOS ATS exceptions
  • Fix cleanReactNdkLib task failure again
  • Update
  • UIExplorer: fix navigation animation by using props passed to renderTitleComponent
  • Way to pass styles to nested view
  • docs(android): install release for android
  • Fix misleading docstring on getInitialNotification
  • [NativeAnimation] Maintain transform order
  • [NativeAnimation] Move RCTNativeAnimatedModule onto the main queue
  • [NativeAnimation] Springs, Modulo, extrapolation, offsets for iOS
  • Add iOS support for CSS property font-variant, accepting tabular-nums…
  • PickerIOS: Add possibility to wrap items around. Fix row height at large font sizes
  • Add iOS support for numberOfLines prop on multiline TextInput
  • Update
  • Show an example of composition in the Text docs.
  • [Navigator] check if this._navBar has immediatelyRefresh method
  • Fix android letter spacing
  • [Animated] Add AnimatedClamp node
  • [Android] Add missing onError event to Image
  • cli run-ios on device
  • Call init with --verbose in the first example.
  • Add alternative lsof command for killing a process running on port 8081.
  • Listview section footers
  • Fixes getDefaultProps warning
  • When some row's height is 0,should compute next row
  • [Android] - Add ability to detect if location was mocked
  • Add notes on `AppRegistry.registerComponent`.
  • Update hook event names
  • [RNPM] Fix params patch
  • [NativeAnimated][Android] Add support for extrapolation
  • [Android] Fix bug in timer clean up
  • [Animated] Export Animated.Interpolation
  • Update Navigator tutorial example: the navigator object is now passed…
  • bumping recycler view version to 23.2.1 for Android, definition of It…
  • Fix `fetch` imports
  • <Text> Expose Android's includeFontPadding property to JavaScript.
  • [iOS][RCTNetworking] Fix mojibake issue
  • Added documentation for additional fields of Image
  • [Android] Fix crash involving illegal UTF-16 symbols
  • [NavigationExperimental] Fix the NavigationTransitioner animation bug
  • Check bundle file exists for release builds
  • [Documentation] (Using Navigators) Remove getDefaultProps() from ES6 …
  • Support RCTNetworking#clearCookies on iOS
  • Change NavigationCardStack's direction props to accept a function to …
  • Update Fresco to 0.13.0
  • Add Cdiscount, More than 2 million downloads
  • fix sometimes _updateVisibleRows will not work
  • Pass URL, not file contents to UIActivityViewController for file URLs.
  • [NativeAnimated] Add support for DiffClamp node
  • Update XHRExampleFetch and dump the response headers
  • Replace with
  • Add ignoreSslError prop to <WebView />
  • Do you mean 'transitions' not 'transactions'?
  • [Blog] Fix broken link in blog page links.
  • Fix webview crash when trying to display local html files
  • Android: Add support for having borders on <Text> components
  • [Android] Enable developers to force Fresco to resize an image
  • [iOS] For file uploads, don't stomp on developer's Content-Type header
  • [PushNotificationsIOS] registration error event
  • Apple TV support 1: existing Objective C code should compile for tvOS
  • update react-native version
  • [NativeAnimated][iOS] Value offsets
  • [NativeAnimated][iOS] Add support for clamping
  • Improve loading error handling on Android WebView
  • Update gradle wrapper binary and scripts
  • Updated troubleshooting page with info necessary to enable android de…
  • [packager]Fix _processAssetsRequest when url contains non-latin letter
  • Correction on switch to bundled JS or not + add parameter to be in de…
  • fix modal covering element inspector
  • [NativeAnimated][iOS] Add support for native animated events on iOS
  • [Android] Improve ellipsizeMode prop
  • Remove default transformer argument
  • Update the Android project template settings
  • use lookup folder instead of cwd for symlink path resolution. Refs #9009
  • Add repeatInterval to PushNotificationIOS
  • FIx docs for list view: "sticky" header not sticky on android
  • Add support for full-screen video in Android WebView
  • [docs] add headless js guide
  • <br /> doesn't exist in React Native
  • [iOS] RefreshControl doesn't render when initial refreshing state is true
  • Update
  • add JD(手机京东) to featured list in showcase
  • [TabBarIOS] badgeColor property
  • Modal: OnHide function
  • Remove -Wall custom WARNING_CFLAGS
  • Fix the bug - App crashed when Android permission request got interrupted
  • Fix two bugs with Location when not using ACCESS_FINE_LOCATION
  • Offload NavigatorExperimental transition animations
  • Execute cancel block in the _URLRequestQueue
  • iOS: Fix CameraRoll to support custom user groups
  • Apple TV support 4: support for input (tvOS focus engine)
  • Fix indent of .gradle files
  • Snapshot Delay in SnapshotViewIOS
  • Fix Xcode build error on non-standard setup
  • Allow to control transition in CardStack
  • Fix symbolication on stack trace with whatwg-fetch as a dependency
  • Support snapToInterval for horizontal scrollview on Android
  • [TabBarIOS] unselectedItemTintColor property available since iOS10
  • Add viewConfig to RCTSlider Component, fix #10158
  • Make sure xhr req header's value is String type
  • [PermissionsAndroid] Handle "Never Ask Again" in permissions and add requestMultiplePermissions
  • adding check for NODE_PATH env variable for node-haste
  • add keytool for Windows details
  • ignore all keystore files
  • Add a few devsupport unit tests
  • Allow serializing underlying NSError objects, closes #10506
  • [docs] Deprecate MapView in favor of airbnb/react-native-maps
  • Add validate method to StyleSheet component
  • Fixes react-native link for apps with extra xcode projects in the root folder
  • call toString on fontWeight else throws error if passed an integer
  • Add the overlay permission information
  • 3634 disallow object assign docs
  • Implement RefreshControl for WebView
  • Added troubleshooting info on wrong react-native version built
  • Add WKWebViewIOS component
  • Fix require polyfill
  • [don't merge]Test revert emils
  • [Blog Post] 0.36: Headless JS, the Keyboard API, & more
  • include information about https for images in documentation
  • Add DN prio to showcase.
  • Update if user using zsh filename should be .zshrc
  • Apple TV support 4: support for input (tvOS focus engine)
  • be more explicit on what's ImageEditor defaults
  • Breaking: Ignore StatusBarManager rejected state
  • Update upgrading guide version number
  • JS platform module override file
  • optimize image assets
  • [iOS]Fix Alert memory leak
  • [CLI] Fix --udid option with react-native run-ios
  • New way of centering content in ScrollView
  • Add a way to access the underlying JavaScriptCore context
  • Decode URI in asset server
  • Added support for textColor in DatePickerIOS
  • Make sure to re-calculate step if not explicitly set
  • [Packager] Add bundle-splitting support by dep/modules info output and reference in build bundle
  • Add gradient stroke to Shape in React ART library
  • [Website] Subscribe to Newsletter
  • [Blog Post] Introducing Button, Faster Installs with Yarn, and a Public Roadmap
  • [WIP][Almost ready] Rewrite 'react-native init' not to use Yeoman in preparation for templates support
  • Included NativeAnimation module on iOS in the starter project
  • Clipboard change events.
  • PushNotificationIOS: Use PushNotificationEventName as the key to store in the handler map
  • Fixing AssetServer in the Packager so it reload the app with updated files.
  • Blockable WebView
  • KeyboardAvoidingView: return KeyboardFrame height directly when botto…
  • [NavigationTransitioner] Fix animation in fast navigation between scenes
  • Updated Device Specifying Command
  • Add Safety Wizard to showcase
  • Add note to let users know of the screen overlay permissions for a first time run and also the "connect" error issue
  • Added the ability to set the storage location
  • Set android:windowSoftInputMode to adjustResize on AndroidManifest.xml
  • [DevMenu] fixing shake to open Dev Menu only work once
  • In docs, bump web player version to fix chromium rendering issue
  • [TextInput] Implements 'onKeyPress' for Android
  • Fix NativeAnimation invalidation & races on iOS
  • Drive any numerical prop via NativeAnimated
  • Optionally create NativeAnimated value with native flag
  • Add prop + event for blacklisting URL-schemes in WebView
  • Added components support to PickerIOS
  • Add the scheme configuration option to the run-ios command
  • Fix this._component is null
  • Reworking keyboardShouldPersistTaps to have a middle ground
  • Update Subscribable.js
  • Expose NavigatorIOS::replaceAtIndex
  • iOS: Add getContentSizeMultiplier & event
  • Cleanup import *
  • Android: Add UIManager.getContentSizeMultiplier
  • Android: Expose textBreakStrategy on Text and TextInput
  • Avoid firing onSubmitEditing twice on android
  • Android: Fix inconsistency with fractional TextInput padding
  • iOS: Add onScroll event to TextInput
  • Android: Add onScroll event to TextInput
  • Android: Keep ScrollView content visible after edits
  • Add pagingEnabled for vertical ScrollView on Android
  • Remove iOS copy of CSSLayout, update podspec
  • Add support for Android in example code of LayoutAnimation
  • Add Tencent Classroom app to the Showcase
  • Dispatch native handled events to JS
  • Make synchronouslyUpdateViewOnUIThread use the operations queue
  • Android: Introduce viewLayerTypeAndroid and deprecate renderToHardwareAndroid
  • [RFC] Only run React Native Android instrumentation tests internally
  • add more infos on how to profile the javascript #10944
  • [Experiment][RFC][CI] Attempt to stabilize React Native open source Android e2e test
  • Add icebox command
  • Fixed Android bug causing to remove wrong view after reordering by zIndex
  • Update
  • [website] fix `for` being used instead of `htmlFor`
  • [Docs] fix wrong script name 'publish-website' to 'gh-pages'
  • [WebView] Add props for overriding native component
  • Remove errors for detecting native postMessage
  • Expose barStyle for NavigatorIOS and TabBarIOS
  • Android datepicker mode configurations added
  • Caching assets only for production environment
  • ios:UIViewManager: Export accessibilityElementsHidden
  • Update docs options command
  • Remove wrong-react-native.js and its bin reference from package.json
  • Omit all line terminators for ImageStore.getBase64ForTag
  • Update build.gradle
  • iOS: Fix an image loader crash
  • Add StyleSheet.setStyleAttributePreprocessor
  • Adds `touchSoundEnabled` prop to Touchables
  • Added npm react-native-cli command to windows and linux
  • KeyboardAvoidingView measures frame using absolute window position
  • Fix for updation in MainActivity.js
  • Added nav item property change observer to RCTWrapperViewController t…
  • Force original ime option when using multiline with blurOnSubmit in a…
  • [docs] Upgrading - mention peerDependency on React
  • * Reduce emit overhead to ~50% of prior, by caching class-name of java-script module/interface.
  • New upgrading process, relying on Git
  • Add CLI basics in docs
  • Fix babelHelpers.typeof is not a function
  • [NavigationExperimental] Support custom card style interpolators
  • Include guide for BreakingChanges page
  • tweak am start command
  • Update for iOS debugging on device
  • Add ability to specify main Activity in run-android
  • Fix an ArrayIndexOutOfBoundsException when setMaxLength for EditText
  • docs for RTL support
  • Add support for nested AnimatedValues in AnimatedStyle (like shadowOffset)
  • [ImagePickerIOS] Fixed camera crash when video mode is on.
  • typo (data -> intent)
  • Remove deprecated method 'RCTExecuteOnMainThread'
  • Fix Left and Right buttons styles on Android NavigationBar
  • Fix babel only regexp on windows
  • Add Remedy to showcase
  • Include props in new ListView and ScrollView mocks
  • Navigation header title single line
  • Upgrade to OkHttp 3.5.0 and migrate to new websocket api
  • Add link to Convoy Android app to showcase
  • Ask only for "In use" location permissions in case "Always" location …
  • Properly restore default values when removing props driven by native animated
  • Apple TV support 6: make 2048 and TicTacToe examples work
  • Add note about 12key input to TextInput
  • Add symlinks under node_modules as part of projectRoots
  • Add adidas GLITCH to showcase
  • [iOS build warnings] RCTConvert: Deprecated NSStringArray typedef
  • Fix Android debugging doc
  • Fix typo for messaging test in webview example
  • Update
  • ProgressBarAndroid checks indeterminate prop type manually
  • Add accessibilityElementsHidden Prop To View Comp.
  • Add Jack in Showcase
  • Added AnimatedValueXY.removeAllListeners
  • Let LayoutAnimation respect style opacity on Android. Fix issue #11769
  • Android build docs should include 39.0 command
  • Add 'Android SDK Platform 23' to check list
  • Remove og:url to improve links preview on Facebook
  • Fix .gitignore of HelloWorld template to commit third party JARs
  • Add a method to get the current orientation of the StatusBar [iOS only]
  • Change arguments for emitError to match other uses
  • Added Geektime App to showcase
  • Android: Refactor so uimanager can depend on modules/core
  • update image on gratuitous example
  • Allow listener for native Animated.event
  • injected javascript comments now work on android
  • [travis] Add myself as recipient for notifications.
  • [React DevTools] Move DevTools integration into its own repo
  • Added option to set mixed content mode in android webview
  • [RCTWebView] Fix webViewDidFinishLoad is called several times in iOS
  • [TextInput] Implements 'onKeyPress' for Android - PR fixes
  • [Website] Use Sass for CSS, Visual Refresh
  • Change cursor color when using selectionColor on Android
  • Add onabort to XHR classes
  • BREAKING: Android: Support withCredentials flag in XHRs
  • BREAKING: iOS: Support withCredentials flag in XHRs
  • Finish AccessibilityInfo implementation
  • Update Getting Started instructions.
  • iOS: Remove leading space from accessibilityLabel
  • iOS: Expose fontScale to JavaScript
  • Added JadoPado, One of the leading E-Commerce platforms in Middle East in showcase page
  • Network/FormData typeof object allowing null
  • ImagePickerIOS take photo with wrong orientation
  • Fix use of uninitialized memory when unsetting `flex` property
  • fix new-library command #9968
  • Add proper Stetho debugging setup documentation
  • Make resolveShadowNode and resolveViewManager public
  • Subclass RCTEventEmitter in RCTUIManager
  • Native Animated blog post
  • Android - Create the ReactFragment
  • Fix RCTPicker crash
  • Improve the documentation for ListView and ListViewDataSource
  • Adding supported formats to Image component docs
  • Added 'react-native start' command, which was missing
  • close `<audio>` tag. Some debugger (ex: remote-redux-devtools-on-debu…
  • Remove unnatural indent in doc
  • Examples have changed
  • Fix Android 4.1-4.3 WebView source baseUrl bug
  • Fixing compiler warning
  • React.podspec fix for RCTAnimation header issue
  • call onMomentumScrollEnd when we tap to status bar
  • Link to main Android NDK website
  • Fix data race on read/write _instance variable in ModuleData class
  • Fix new-library to copy to current project
  • Update examples in docs and address version lag of CRNA
  • [PushNotificationIOS] Play sound in local notification only if soundName is specified
  • pass polyfillModuleNames into packager
  • [Android] CameraRoll support for Videos
  • Updated component name to maintain tutorial flow.
  • feat(bundle): allow to extend asset extensions
  • Enable custom source file extensions through cli args or rn-cli.config.js
  • Properly handle babel ignored files, returning only the contents
  • Backport CRNA docs work to 0.44-stable
  • Adding PushNotificationIOS finish method usage
  • Add params Object to SwipeableListView.getNewDataSource()
  • Allow switch termination req
  • Fixed ListViewMock unique key error when many sections
  • Removed unnecessary getNode() call from _listRef
  • Mention correct shortcut to open "Developer Tools"
  • Add ART library to UIExplorer for iOS, with sample and snapshot test
  • Add newly recommended method for RCTLinkingManager due to deprecation
  • Update the README Examples section for RNTester
  • [Docs] Add support for syntax highlighting for languages other than JS
  • Only run tabbing logic on docs that contain blocks
  • Update ListView Basics to use FlatList, SectionList.
  • iOS: Improve accessibility of multiline TextInputs
  • WIP: Remove Haste from Libraries/ and convert to relative requires
  • packager: adds regression test to ensure arbitrary platforms are supported
  • packager: upgrade jest-haste-map version
  • A year has past
  • Deco has a new home
  • iOS: Introduce API for making screen reader announcements
  • Refactor of Fiber integration with React Fiber + Stack
  • Akring integration tests fix
  • Reference PermissionsAndroid in Geolocation doc
  • Fix some issues with the React podspec for the Cxx bridge
  • Android: Support setting background color on ARTSurfaceView
  • Android:Make MessageQueueThreadImpl startNewBackgroundThread more eff…
  • FlatList - Add dev validation of the object returned by getItemLayout
  • upgrade image-size
  • Update overflow docstring to add note on Android
  • iOS `presentationStyle` Modal Appearance
  • Fix podspecs for Cxx bridge
  • Update VirtualizedList.js, fix wrong position after scrollToEnd when props.refreshing === true
  • Inject configured OkHttpClient to networking module using MainPackageConfig
  • Make "nativePerformanceNow" use same clock as "SystemClock.elapsedRealtime()"
  • Add support for flashScrollIndicators on iOS
  • Use Component name instead of project name to align with other docs
  • Enable TLS 1.1 and TLS 1.2 on Android 4.1-4.4 for web socket connection
  • iOS: Support allowFontScaling on TextInput
  • resolved the broken links for all components method in page linking
  • Upgrade Gradle and Android SDK versions.
  • Enable platforms to configure CLI commands
  • Update all the android related projects to target API level 27
  • Support received intent in Linking class
  • Make sure refreshControl shows up on initial render if specified
  • Adding pod target config to `yoga` to solve warning.
  • Prevents JS Debugger issues with CORS
  • Removing broken check for height auto-sizing
  • Add minify flag to react-native bundle command
  • GLog fix on case sensitive APFS macOS
  • Add "modules" option to babel-preset to allow disabling transpilation…
  • fix(RCTImageLoader): Adds `requiresMainQueueSetup` to fix v0.52
  • Fix #17610, Add fixtures to metro blacklist
  • [SwipeableFlatList] Fix #16685, fix opening rows doesn't close on swipe left a new row.
  • [react-native-cli] fixed issue with runIOS not being able to launch tvOS app
  • [WIP] Android 64-bit
  • [ENHANCEMENT] [ANDROID] Upgraded to Gradle Wrapper 4.4.1 and SDK's to latest stable versions
  • Fix Xcode Archive task failing if project path contains whitespace
  • Add accessibilityElementsHidden prop
  • Make DevTools configurable
  • Typos in code
  • Added WebView InitialScale Property for Android
  • All android logs are dispatched through FLog java class
  • This ensures no illegal cookies are send to okhttp
  • Android: Fix crash when perf monitor does not run within UI thread.
  • Android: Adjust border radius to maximum of half the smallest side
  • [WIP] Add `disableYellowBox` to `YellowBox` API
  • Fix scripts/
  • Fix for 17497
  • Use app name from app.json for registering application
  • [iOS][Scroll Issue]Added scroll Bounds check in scrollToOffset method in RCTScrollView on iOS
  • add annotation processor for ReactMethod
  • Add missing mock for AppState (removeEventListener)
  • RNTester http_server send cookie fix
  • [Native Animated] Support for animated tracking in native driver
  • [Android] Fix: setSelection methods is always returned.
  • Fixes issue with on android with TextInput focus inside ScrollView
  • Exclude jsbundle files from VCS
  • Removing warning for Pointer is missing a nullability type specifier …
  • AnimatedImplementation: Make sure we don't attempt to start an animation with index above array-length.
  • Fix DynamicFromMap object pool synchronization
  • Increase Tls1.2.0 support on Android (5.0.1 and below)
  • Added new command for different directory
  • Remove Array.from in to fix bug on back press
  • added command activity launcher directory
  • Bundle download progress on Android
  • [WIP] Replace Appium and IntegrationTests with Detox
  • tvOS: TV nav event emitter should check for bridge
  • Allow specifying location of metro cache dir.
  • Fix: CUICatalog: Invalid asset name supplied: '(null)'
  • cause error "No component found for view with name "RCTText"" in ios
  • DX: log full js errors instead of just error messages (ExceptionsManager)
  • Fix - Unable to build React target after a 'pod install'
  • Enable obfuscation in ProGuard rules by default
  • Added: informational error message on getting Android drawable folder…
  • [ANDROID] [BUGFIX] [WebView] Fix touchmove event inside the webview
  • Correct RCTAnimation import
  • Translate Readme to Brazilian Portuguese
  • Bridge Android's WebView `onScrollChanged`.
  • Update node-notifier (has mem leak fix)
  • Deprecate interpolate method from animated nodes and add to AnimatedImplementation.
  • Added support for using animated values as the target of an interpolation.
  • npmignore: ignore tests and fixtures
  • Prevent show a hidden status bar when opening modals, fix #7474
  • Fix bug rows doesn't close on scroll in a SwipeableFlatList
  • Add tvOS Remote Tap Gestures
  • [Android][TextInput] Fix: mostRecentEventCount is not updated.
  • check for GET and Head in send request
  • [Android] Checkbox to inherit from AppCompatCheckBox
  • Loosen Platform check to allow better code sharing for out-of-tree platforms
  • Make perspective transformation look exactly same on iOS and Android
  • support android checkbox tinting
  • Added nestedScrollEnabled prop to scroll view for android
  • [WIP][IOS][BUGFIX][TextInput] Fix #18272 TextInput.setNativeProps({text: ''}) to work
  • Local cli/android/normalize project name
  • Feature/action sheet destructive button indexes
  • Fix #18244 Support CRLF build.gradle for Linking
  • Fix android build release
  • Fix a race condition in AppState that prevents listeners from being notified
  • Add docs for Swift usage to RCTBridgeModule.h
  • Add ability for Animated views to be created with scale X or scale Y
  • Don't wrap ListEmptyComponent in an extra view
  • This ensures no illegal cookies are send to okhttp
  • Fix checking if in debug mode
  • Support Interpolation of strings when using native driver in Animated
  • Added nullability specifier to factory typedef
  • Add devDependencies support for templates
  • [CI] Start tracking coverage (JavaScript)
  • Set default value for back overshoot
  • Fix android duplicate linking
  • Add error log for ReactPackage missing empty list implementation
  • VirtualizedList: Fix spacer size calculation
  • Add platform hook for View style props
  • Add accessibilityHint for iOS
react-native questions on Stackoverflow (View All Questions)
  • React-Native: Module AppRegistry is not a registered callable module
  • React Native : target with hash string 'android-X' not found
  • When I learn the first react-native demo,react-native error
  • Pop to previous scene using React-Native-Scrollable-Tab-View
  • UI Components library for react native
  • React Native iOS NavigatorIOS title font
  • Dismiss Keyboard React-Native
  • React-Native and playing music from the Soundcloud API?
  • Codepush React-Native android staging release
  • What will happen if I use setState() function in constructor of a Class in ReactJS or React Native?
  • How to automatically load more rows when scroll to the Bottom use PullToRefreshViewAndroid or other components of React-Native
  • React-native dyld error: _AVMetadataObjectTypeDataMatrixCode
  • HightLight / ScrollTo - ListView, ScrollView on React-Native
  • after upgrade, react native still showed the old version number
  • React Native how to detect link form string and convert to a link?
  • React native cross platform programming
  • React native flexbox - how to do percentages || columns || responsive || grid etc
  • React-Native Android Image Source from Couchbase Lite
  • Use key or ref in React-Native
  • Google Maps in React-Native (iOS)
  • React Native: How to export a method with a return value?
  • React Native Android : Creating a simple module
  • React-native Name Collision without Pod
  • how to generate apk after finishing project on react native using Windows
  • How do i compile my react native code into a Android apk
  • react-native project/directory structure setup
  • React Native sectionHeaderHasChanged: (s1, s2) => s1 !== s2,
  • React Native listview how to fix header without using section header
  • How to force an object to update react-native
  • React native init not working
react-native latest release notes
v0.54.0 February 2018

Welcome to the February 2018 release of React Native! This release includes work done by the React Native team and the community in January, and there are some big changes here after the holidays. Thanks for 270 commits from 87 contributors, you all are great! Here are a few highlights from the release:

  • Long awaited Blob changes: upload, download, fetch locally, and more
  • Sticky headers now work on inverted Lists
  • Update to the newest React, which deprecated some lifecycle methods and added new ones expect Yellowbox until React Native is updated
  • Space-evenly is now there (sorry for the confusion with 0.52's release notes)
  • A lot of under-the-covers work on Yoga, iOS's Text and TextInput, and a ton of other areas
  • Multiple crash fixes

The changelog is arranged by the customary added, removed, changed, and fixed plus internal; the changes are also organized by platform.

If you want to get involved in the process of preparing releases and making changelog (yes, we need your help!), please get in touch with me.

We keep the draft of changelogs here: Visit this repository for tracking the progress of upcoming releases and suggesting improvements to the current one.


VR Specific Additions

Android Specific Additions

iOS specific additions


iOS specific removals

  • Removed outdated assertion in RCTShadowView related to breaking change in Yoga (e3ff3cf by @shergin)

Android specific removals

iOS specific removals


iOS Specific Changes

Android specific changes


  • Fix JS debugger issues related to CORS (29f8354 by @njbmartin)
  • Keep the .gitignored files during the react-native-git-upgrade process (7492860 by @ncuillery)
  • Fix re-render case on SwipeableRow (a580a44)
  • Fix display of syntax error messages when HMR is enabled (2b80cdf by @ide)
  • Add fixtures to metro blacklist in order to let build succeed (4194bb2 by @t4deu)

Android specific fixes

iOS specific fixes

  • Make sure refreshControl shows up on initial render if specified (ed5872e by @vonovak)
  • Fix Crash when CameraRoll is getting assets from iCloud and no filename is provided (2ae2436 by @pentarex)
  • Fix Xcode Archive task failing if project path contains whitespace (8aa568e by @jevakallio)
  • react-native link has been fixed to correctly link iOS and tvOS targets (a63fd37 by @dlowder-salesforce)
  • GLog fix on case sensitive APFS macOS (2fef1ba by @hovox)
  • Fixed issue where you cannot launch tvOS app on Apple TV simulator (afd988f)

Internal work

v0.53.0 January 2018

This changelog has been prepared by Ryan Turner (@turnrye) - thank you for your time and making such a detailed changelog

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


iOS exclusive additions

  • react-native run-ios now supports the --port argument for metro (33d710e)

Android exclusive additions


iOS exclusive changes

Android exclusive changes


  • TextInput no longer has the autoGrow prop, since this is platform-default behavior now (dabb78b by @shergin)

iOS exclusive removals

  • Updates to the bridge in order to enable future rendering optimizations (d2dc451 by @shergin)


  • 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 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


Below is a list of the remaining, low-level changes that made it into this release of React Native.

v0.52.0 December 2017

This changelog has been prepared by Ryan Turner (@turnrye) - thank you for your time and making such a detailed changelog

This release had a lot of work around the bundler and packager, a ton of bugfixes, and updates to many of React-Native's dependencies. Lots of under-the-hood work was done as well to improve the layout engine. Happy new year!

If you would like to help us with the next release changelog, please contact @grabbou

New features


  • Ignore YellowBox warnings with YellowBox.ignoreWarnings([...]) rather than console.ignoredYellowBox = [...] (26038f5 by @wli)


Bug fixes


  • Removing reactBridgeDidFinishTransaction from RCTScrollView (a255204 by @shergin)
  • Removing inherited background color optimization from RCTText to reduce code complexity please give feedback if you find performance differences! (8c8944c by @shergin)


Below is a list of the remaining, low-level changes that made it into this release of React Native.

Other projects in JavaScript