/react-native-windows

A framework for building native UWP and WPF apps with React.

Primary LanguageC#OtherNOASSERTION

React Native plugin for Universal Windows Platform (UWP)

Hero Image with Logo

React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. 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.

This repository adds support for the Windows 10 SDK, which allows you to build apps for:

Quick Links

Introduction

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

System Requirements

  • You can build and deploy React Native Windows apps on the Pro or Enterprise versions of Windows 7 SP1, Windows 8.1, or Windows 10
    • You cannot run the emulators and some other developer tooling on the "Starter" or "Home" versions of these operating systems
    • You can run React Native Windows UWP apps only on Windows 10 devices, but React Native Windows WPF apps will run on Windows 7-10 so long as .NET 4.6 is installed on the end user's machine
  • Download Visual Studio 2017 Community or Greater. (Visual Studio 2015 support has been deprecated.)
    • You will need to start Visual Studio after it is installed to do some final setup before it can be used to build or run your React Native Windows application
  • Windows 10 SDK Build 14393

Note: Development on React Native Windows itself currently requires Visual Studio 2017. It is not supported with VS Code, but we will gladly accept pull requests to enable a great developer experience in those environments.

Getting Started

Want to develop a React Native Windows app? Head over to our Getting Started Guide.

Getting Help

Please use these community resources for getting help. We use the GitHub issues for tracking bugs and feature requests and have limited bandwidth to address them.

  • Chat with us on Reactiflux in #react-native-platforms
  • If it turns out that you may have found a bug, please open an issue

Documentation

React Native already has great documentation, and we're working to ensure the React Native Windows plugin is part of that documentation story. Check out the React documentation for further details about the React API in general.

For information on parity status with Android and iOS, including details on implemented and missing components and modules, along with related issues for missing features from partial implementations, go here.

Showing the Debug Menu

  • On UWP, press Shift+F10 to open the debug menu.
  • On WPF, press CTRL+D or CTRL+M to open the debug menu.

Extending React Native

  • Looking for a component? JS.coach
  • Fellow developers write and publish React Native modules to npm and open source them on GitHub.
  • Third party modules may be missing Windows support, so reach out to the project owners directly.
  • Making modules helps grow the React Native ecosystem and community. We recommend writing modules for your use cases and sharing them on npm.
  • You should almost never need to modify or fork React Native Windows itself (the ReactNative and ReactNative.Shared project/sources) to create custom controls. The extension points should already exist to do just about anything!
  • Read the guides on Native Modules for Windows and Native UI Components for Windows if you are interested in extending native functionality.

Opening Issues

If you encounter a bug with the React Native Windows plugin, we would like to hear about it. Search the existing issues and try to make sure your problem doesn’t already exist before opening a new issue. It’s helpful if you include the version of Windows, React Native, React Native Windows plugin, and device family (i.e., mobile, desktop, Xbox, etc.) you’re using. Please include a stack trace and reduced repro case when appropriate, too.

The GitHub issues are intended for bug reports and feature requests. For help and questions with using the React Native Windows plugin please make use of the resources listed in the Getting Help section. There are limited resources available for handling issues, and by keeping the list of open issues lean we can respond in a timely manner.

Contributing

  • Install the requirements
  • Check out the React Native Windows code itself and install npm dependencies
git clone --recursive https://github.com/ReactWindows/react-native-windows.git
cd react-native-windows
npm install
  • Note: If you just want to get started with developing your own app, read Getting Started with App Development. You only need to interact with npm to use for your app development.

For more information about contributing PRs and issues, see our Contribution Guidelines

Good First Task and help wanted are great starting points for PRs.

Each pull request has the unit tests, code analysis, and a Winium integration test run in the AppVeyor CI service. To shorten the feedback cycle, please be sure to run the unit tests in Visual Studio and verify they are passing before submitting pull requests. For extra credit, verify the examples in RNTester continue to work properly.

Examples

  • If you're looking for sample code, just browse the RNTester folder in the GitHub web UI

License

The React Native Windows plugin, including modifications to the original Facebook source code, and all newly contributed code is provided under the MIT License. Portions of the React Native Windows plugin derived from React Native are copyright Facebook.

Code of Conduct

This project has adopted the Microsoft Open Source Code of Conduct. For more information see the Code of Conduct FAQ or contact opencode@microsoft.com with any additional questions or comments.