Build native macOS apps with React.
See the official React Native website for an introduction to React Native.
React Native is a framework developed by Facebook that 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.
- Declarative. React makes it painless to create interactive UIs. Declarative views make your code more predictable and easier to debug.
- Component-Based. Build encapsulated components that manage their state, then compose them to make complex UIs.
- Developer Velocity. See local changes in seconds. Changes to JavaScript code can be live reloaded without rebuilding the native app.
- Portability. Reuse code across iOS, Android, and other platforms.
React Native is developed and supported by many companies and individual core contributors. Find out more in our ecosystem overview.
This repository is a working fork of facebook/react-native that adds support for the official React Native for macOS implementation from Microsoft.
You can read more about the macOS implementation in our website - React Native for Windows + macOS. You can read about how we manage this fork in our docs folder.
- Requirements
- Building your first React Native app
- Documentation
- How to Contribute
- Code of Conduct
- License
React Native apps may target iOS 13.4 and Android 5.0 (API 21) or newer. You may use Windows, macOS, or Linux as your development operating system, though building and running iOS apps is limited to macOS. Tools like Expo can be used to work around this.
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:
You can run React Native for macOS apps on Mac devices with versions Catalina (10.15) or newer.
For a full and detailed list of the system requirements and how to set up your development platform, see our System Requirements documentation on our website.
See the Getting Started Guide on our React Native for Windows + macOS website to build your first React Native for macOS app.
Search the existing issues and try to make sure your problem doesn’t already exist before opening a new issue. If your issue doesn't exist yet, try to make sure you provide as much information as possible to us so we can help you sooner. It’s helpful if you include information like:
- The version of macOS, React Native, React Native macOS extension where you ran into the issue.
- A stack trace and reduced repro case when possible.
- Ensure the appropriate template is used when filing your issue(s).
See Contributing guidelines for how to set up your fork of the repo and start a PR to contribute to React Native for macOS.
Good First Issue and help wanted are great starting points for PRs.
The full documentation for React Native can be found on the documentation website. The React Native documentation discusses components, APIs, and topics that are specific to React Native. For further documentation on the React API that is shared between React Native and React DOM, refer to the React documentation.
The source for the React Native documentation and website is hosted on a separate repo, @facebook/react-native-website.
React Native for Windows + macOS has its own separate documentation site where Windows and macOS specific information, like API docs and blog updates live. We are still working on the documentation for macOS, contributions are welcome!
If you're looking for sample code, just browse the RNTester folder for examples
For more details on how this fork handles keeping up with upstream, and how the general git flow works, check out this dedicated document.
The React Native for macOS extension, including modifications to the original Facebook source code, and all newly contributed code is provided under the MIT License. Portions of the React Native for macOS extension derived from React Native are copyright Facebook.
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.
Upgrading to new versions of React Native may give you access to more APIs, views, developer tools, and other goodies. See the Upgrading Guide for instructions.
React Native releases are discussed in this discussion repo.
The main purpose of this repository is to continue evolving React Native core. We want to make contributing to this project as easy and transparent as possible, and we are grateful to the community for contributing bug fixes and improvements. Read below to learn how you can take part in improving React Native.
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.
Read our Contributing Guide to learn about our development process, how to propose bugfixes and improvements, and how to build and test your changes to React Native.
You can learn more about our vision for React Native in the Roadmap.
We have a list of good first issues that contain bugs which have a relatively limited scope. This is a great place to get started, gain experience, and get familiar with our contribution process.
Larger discussions and proposals are discussed in @react-native-community/discussions-and-proposals.
React Native is MIT licensed, as found in the LICENSE file.
React Native documentation is Creative Commons licensed, as found in the LICENSE-docs file.