Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

0.70 sync 1107 #664

Merged
merged 88 commits into from
Nov 7, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
88 commits
Select commit Hold shift + click to select a range
010d7cd
TextInput: Add readOnly prop (#3278)
gabrieldonadel Sep 6, 2022
51a7543
AccessibilityInfo: add prefersCrossFadeTransitions to docs (#3279)
gabrieldonadel Sep 6, 2022
9a4ad7a
TextInput: Add rows prop (#3280)
gabrieldonadel Sep 6, 2022
04250d6
TextInput: Add inputMode prop (#3289)
gabrieldonadel Sep 6, 2022
0de9633
Flexbox: correct example description (#3284)
EvertEt Sep 6, 2022
9422060
adding accessibilityRole 'grid' to documentation (#3224)
fabOnReact Sep 6, 2022
7d7f483
View: Add tabIndex prop (#3286)
gabrieldonadel Sep 6, 2022
f57ac2d
Image: Add tintColor prop (#3292)
gabrieldonadel Sep 6, 2022
b432092
TextInput: Add enterKeyHint prop (#3299)
Sep 6, 2022
10f26e9
Revert renaming native components (#3301)
rickhanlonii Sep 6, 2022
d9d4adb
docs: fix path in script example (#3302)
vonovak Sep 7, 2022
000d581
Update New Architecture instructions to use CMake instead of Android.…
cortinico Sep 8, 2022
9e6e311
Follow-up on CMake clarification for 0.70 (#3309)
cortinico Sep 8, 2022
7c1091c
The New Architecture section editorial review (#3288)
arati-1 Sep 8, 2022
4a3b02c
[New Architecture][iOS][0.71.0] Update the App Migration section (#3268)
Sep 9, 2022
42e0266
fix: Address missing feedback from prev PR (#3312)
Sep 9, 2022
54d266b
Clarify New Architecture Terminology (#3308)
cortinico Sep 9, 2022
63d00e7
Revert "Clarify New Architecture Terminology (#3308)" (#3314)
rickhanlonii Sep 9, 2022
c084b5a
Clarify New Architecture Terminology - Take 2 (#3316)
cortinico Sep 9, 2022
bbd36d1
[0.70] Clarify New Architecture Terminology (#3315)
cortinico Sep 9, 2022
38cd75a
Remove unnecessary box from Legacy Native Modules/Components (#3313)
cortinico Sep 13, 2022
0468011
Fix title case in testing-overview.md (#3322)
JiashengWu Sep 14, 2022
791d9d1
[FEAT] Add doc to simplify podspecs for Native Modules and Native Com…
Sep 14, 2022
1285a79
[Fix] Improve Getting started with iOS (#3323)
Sep 15, 2022
a917b04
Fix broken links to Appendix (#3319)
cortinico Sep 15, 2022
5462afb
fix _getting-started-macos-ios.md info format (#3326)
sunnylqm Sep 16, 2022
7bb5d88
[0.71.0] Update the New Architecture guide with the changes for the N…
cortinico Sep 16, 2022
8c65a42
minor tweaks to the wording for the versions page (#3327)
kelset Sep 16, 2022
5dd8fcd
showcase: update entries (#3328)
kelset Sep 16, 2022
7202412
fix incorrect link to re-enable prod deploy (#3330)
Simek Sep 19, 2022
72c8bd5
Modify the top navbar to be less full (#3177)
kelset Sep 20, 2022
4e386d6
Update docs with AGP 7.3.x setup (#3333)
cortinico Sep 21, 2022
b5f5b5a
Update colors docs regarding expanded support for CSS Colors (#3306)
gabrieldonadel Sep 21, 2022
91ce6bc
fix: Improve wording for iOS getting started (#3334)
Sep 21, 2022
8754483
Add id prop to Text, TouchableWithoutFeedback and View docs (#3285)
gabrieldonadel Sep 21, 2022
12dc712
Updated button.md to reference Pressable (#3237)
athakur3 Sep 21, 2022
357254c
chore: clean up new arch docs (#3332)
kelset Sep 22, 2022
b55bdc6
Add new props to Image docs (#3310)
dhruvtailor7 Sep 22, 2022
94c5e80
fix: remove isFabricEnabled check from docs (#3336)
okwasniewski Sep 22, 2022
4260478
add documentation for `aria-modal` prop (#3320)
dakshbhardwaj Sep 23, 2022
69f723b
Text: add documentation for `userSelect` prop (#3311)
dakshbhardwaj Sep 23, 2022
54f9a7d
Add Source Maps Page (#3293)
iBotPeaches Sep 23, 2022
c9448b0
add documentation for `aria-valuemax` `aria-valuemin` `aria-valuenow`…
dakshbhardwaj Sep 23, 2022
86139c5
Document ability to pass Element via ItemSeparatorComponent (#3343)
retyui Sep 25, 2022
400d509
Layout Props: clean warning in example (#3344)
Damoness Sep 26, 2022
905824a
fix(native-modules-android.md): rename createCalendarEventCallback (#…
joshuayoes Sep 26, 2022
ff9886c
Update showcase link for Artsy (#3340)
pvinis Sep 26, 2022
3d1ea2c
add NFL to the showcase (#3347)
kelset Sep 27, 2022
d6fe39d
Checks for the documentation (#3348)
arati-1 Sep 28, 2022
006f573
Address Security Vulnerabilities in Dependencies (#3351)
yungsters Sep 30, 2022
b943d45
Apply updated copyright to `*.js` files (#3352)
yungsters Sep 30, 2022
6e981dd
rework the community section of the website (#3338)
kelset Sep 30, 2022
84397da
Update to Contributor Covenant (#3354)
yungsters Sep 30, 2022
9987b07
Fix more copyright header issues (#3353)
yungsters Sep 30, 2022
4b1aeff
fix: remove isTurboModuleEnabled check from docs (#3337)
okwasniewski Oct 3, 2022
4c3603b
Update pillars-turbomodule.md (#3355)
ismaelsousa Oct 3, 2022
2e4eb04
Fix codegen iOS scripts paths (#3359)
krystofwoldrich Oct 4, 2022
3c124e0
Showcase: add Wix's apps section. (#3349)
asafkorem Oct 4, 2022
911a282
Finalize the Kotlinization (#3360)
cortinico Oct 5, 2022
a6e7419
feat: Add verticalAlign to Text Style Props docs (#3361)
gabrieldonadel Oct 6, 2022
f0d9c4a
Communities: remove duplicate header (#3365)
Naturalclar Oct 7, 2022
e5ba872
Missing header in `docusaurus.config.js` (#3369)
yungsters Oct 11, 2022
03d8848
Fix headers on *.ts files (#3370)
yungsters Oct 11, 2022
e00c9b0
Getting Started: fix Android version label in older docs (#3367)
Naturalclar Oct 12, 2022
37d85ba
Layout Props: Update aspectRatio supported types (#3363)
gabrieldonadel Oct 12, 2022
f6be947
ScrollView: rephrase onContentSizeChange description (#3357)
Smartech-git Oct 12, 2022
3add39c
Getting Started: list zsh before bash in macOS guide (#3358)
karlhorky Oct 12, 2022
6dc2805
docs: update running on simulator iOS (#3346)
luism3861 Oct 12, 2022
f042dca
add back missing docs vote component (#3371)
Simek Oct 12, 2022
ae47850
fix: improve TM explanation (#3364)
Oct 16, 2022
20908b3
New Architecture - Remove the extra steps required to copy .so files …
cortinico Oct 16, 2022
e4d0982
chore(release): Update release testing section for new E2E testing sc…
kelset Oct 18, 2022
262ff68
Fixed typo in headless-js-android.md (#3377)
mjh316 Oct 19, 2022
df492ce
Fix typo in New Architecture Intro (#3374)
telmen Oct 19, 2022
0339cae
Add updated instructions on using Hermes (#3376)
hramos Oct 25, 2022
d4fcb93
The Hermes docs in next, also apply to 0.70. (#3380)
hramos Oct 28, 2022
fd87e46
Build from Source: add missing paren in publishing (#3387)
Oct 28, 2022
b47dc1d
Recommend to use `es2019` and use community driven TS config `@tsconf…
retyui Oct 31, 2022
1636d5e
Replaced editUrl branch name with main (#3389)
rvieceli Nov 1, 2022
ea4f803
Tweak homepage text to more broadly refer to platforms (#3391)
huntie Nov 2, 2022
cdd9399
Fix documentation typos (#3395)
gabrieldonadel Nov 4, 2022
96f4297
update to microsoft-openjdk11 (#3386)
khali70 Nov 5, 2022
00646cd
feat: Update fontVariant supported types docs (#3378)
gabrieldonadel Nov 5, 2022
f279c06
Add missing aria props to Accessibility docs (#3396)
gabrieldonadel Nov 5, 2022
c944021
Alert: Add "isPreferred" to AlertButtonStyle (#2839)
Nov 5, 2022
8e22289
View Style Props: Add borderCurve prop (#2785)
eric-edouard Nov 5, 2022
ab32e2d
Speeding up Build: Fixing symbolic links (#3329)
rplankenhorn Nov 6, 2022
00c2808
Added lineBreakStrategyIOS to Text and TextInput (#2566)
bang9 Nov 6, 2022
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .alexrc.js
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
/**
* Copyright (c) Facebook, Inc. and its affiliates.
* Copyright (c) Meta Platforms, Inc. and affiliates.
*
* This source code is licensed under the MIT license found in the
* LICENSE file in the root directory of this source tree.
Expand Down
4 changes: 2 additions & 2 deletions .eslintrc.json
Original file line number Diff line number Diff line change
Expand Up @@ -4,8 +4,8 @@
"overrides": [
{
"files": ["*.yaml", "*.yml"],
"plugins": ["yaml"],
"extends": ["plugin:yaml/recommended"]
"plugins": ["yml"],
"extends": ["plugin:yml/standard"]
},
{
"files": ["*.md", "*.mdx"],
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@ contact_links:
url: https://github.com/react-native-community/upgrade-support
about: Need help upgrading to a newer React Native version? Visit the Upgrade Support repository.
- name: 🤔 Questions and Help
url: https://reactnative.dev/help
url: https://reactnative.dev/community/support
about: Looking for help with your app? Please refer to the React Native community's support resources.
- name: 🚀 React Native Discussions and Feature Proposals
url: https://github.com/react-native-community/discussions-and-proposals
Expand Down
180 changes: 80 additions & 100 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -1,100 +1,80 @@
# [Open Source Code of Conduct](https://code.facebook.com/codeofconduct)

This code of conduct outlines our expectations for participants within the
**Facebook Open Source** community, as well as steps to reporting unacceptable
behavior. We are committed to providing a welcoming and inspiring community for
all and expect our code of conduct to be honored. Anyone who violates this code
of conduct may be banned from the community.

Our open source community strives to:

* **Be friendly and patient.**
* **Be welcoming:** We strive to be a community that welcomes and supports
people of all backgrounds and identities. This includes, but is not limited to
members of any race, ethnicity, culture, national origin, colour, immigration
status, social and economic class, educational level, sex, sexual orientation,
gender identity and expression, age, size, family status, political belief,
religion, and mental and physical ability.
* **Be considerate:** Your work will be used by other people, and you in turn
will depend on the work of others. Any decision you take will affect users and
colleagues, and you should take those consequences into account when making
decisions. Remember that we’re a world-wide community, so you might not be
communicating in someone else’s primary language.
* **Be respectful:** Not all of us will agree all the time, but disagreement is
no excuse for poor behavior and poor manners. We might all experience some
frustration now and then, but we cannot allow that frustration to turn into a
personal attack. It’s important to remember that a community where people feel
uncomfortable or threatened is not a productive one.
* **Be careful in the words that you choose:** we are a community of
professionals, and we conduct ourselves professionally. Be kind to others. Do
not insult or put down other participants. Harassment and other exclusionary
behavior aren’t acceptable. This includes, but is not limited to:
* Violent threats or language directed against another person.
* Discriminatory jokes and language.
* Posting sexually explicit or violent material.
* Posting (or threatening to post) other people’s personally identifying
information (“doxing”).
* Personal insults, especially those using racist or sexist terms.
* Unwelcome sexual attention.
* Advocating for, or encouraging, any of the above behavior.
* Repeated harassment of others. In general, if someone asks you to stop, then
stop.
* **When we disagree, try to understand why:** Disagreements, both social and
technical, happen all the time. It is important that we resolve disagreements
and differing views constructively.
* **Remember that we’re different.** The strength of our community comes from
its diversity, people from a wide range of backgrounds. Different people have
different perspectives on issues. Being unable to understand why someone holds
a viewpoint doesn’t mean that they’re wrong. Don’t forget that it is human to
err and blaming each other doesn’t get us anywhere. Instead, focus on helping
to resolve issues and learning from mistakes.

This code is not exhaustive or complete. It serves to distill our common
understanding of a collaborative, shared environment, and goals. We expect it to
be followed in spirit as much as in the letter.

## Diversity Statement

We encourage everyone to participate and are committed to building a community
for all. Although we may not be able to satisfy everyone, we all agree that
everyone is equal. Whenever a participant has made a mistake, we expect them to
take responsibility for it. If someone has been harmed or offended, it is our
responsibility to listen carefully and respectfully, and do our best to right
the wrong.

Although this list cannot be exhaustive, we explicitly honor diversity in age,
gender, gender identity or expression, culture, ethnicity, language, national
origin, political beliefs, profession, race, religion, sexual orientation,
socioeconomic status, and technical ability. We will not tolerate discrimination
based on any of the protected characteristics above, including participants with
disabilities.

## Reporting Issues

If you experience or witness unacceptable behavior—or have any other
concerns—please report it by contacting us via [email protected]. All reports
will be handled with discretion. In your report please include:

* Your contact information.
* Names (real, nicknames, or pseudonyms) of any individuals involved. If there
are additional witnesses, please include them as well. Your account of what
occurred, and if you believe the incident is ongoing. If there is a publicly
available record (e.g. a mailing list archive or a public IRC logger), please
include a link.
* Any additional information that may be helpful.

After filing a report, a representative will contact you personally. If the
person who is harassing you is part of the response team, they will recuse
themselves from handling your incident. A representative will then review the
incident, follow up with any additional questions, and make a decision as to how
to respond. We will respect confidentiality requests for the purpose of
protecting victims of abuse.

Anyone asked to stop unacceptable behavior is expected to comply immediately. If
an individual engages in unacceptable behavior, the representative may take any
action they deem appropriate, up to and including a permanent ban from our
community without warning.

_This Code Of Conduct follows the
[template](http://todogroup.org/opencodeofconduct/) established by the
[TODO Group](http://todogroup.org/)._
# Code of Conduct

## Our Pledge

In the interest of fostering an open and welcoming environment, we as
contributors and maintainers pledge to make participation in our project and
our community a harassment-free experience for everyone, regardless of age, body
size, disability, ethnicity, sex characteristics, gender identity and expression,
level of experience, education, socio-economic status, nationality, personal
appearance, race, religion, or sexual identity and orientation.

## Our Standards

Examples of behavior that contributes to creating a positive environment
include:

- Using welcoming and inclusive language
- Being respectful of differing viewpoints and experiences
- Gracefully accepting constructive criticism
- Focusing on what is best for the community
- Showing empathy towards other community members

Examples of unacceptable behavior by participants include:

- The use of sexualized language or imagery and unwelcome sexual attention or
advances
- Trolling, insulting/derogatory comments, and personal or political attacks
- Public or private harassment
- Publishing others' private information, such as a physical or electronic
address, without explicit permission
- Other conduct which could reasonably be considered inappropriate in a
professional setting

## Our Responsibilities

Project maintainers are responsible for clarifying the standards of acceptable
behavior and are expected to take appropriate and fair corrective action in
response to any instances of unacceptable behavior.

Project maintainers have the right and responsibility to remove, edit, or
reject comments, commits, code, wiki edits, issues, and other contributions
that are not aligned to this Code of Conduct, or to ban temporarily or
permanently any contributor for other behaviors that they deem inappropriate,
threatening, offensive, or harmful.

## Scope

This Code of Conduct applies within all project spaces, and it also applies when
an individual is representing the project or its community in public spaces.
Examples of representing a project or community include using an official
project e-mail address, posting via an official social media account, or acting
as an appointed representative at an online or offline event. Representation of
a project may be further defined and clarified by project maintainers.

This Code of Conduct also applies outside the project spaces when there is a
reasonable belief that an individual's behavior may have a negative impact on
the project or its community.

## Enforcement

Instances of abusive, harassing, or otherwise unacceptable behavior may be
reported by contacting the project team at <[email protected]>. All
complaints will be reviewed and investigated and will result in a response that
is deemed necessary and appropriate to the circumstances. The project team is
obligated to maintain confidentiality with regard to the reporter of an incident.
Further details of specific enforcement policies may be posted separately.

Project maintainers who do not follow or enforce the Code of Conduct in good
faith may face temporary or permanent repercussions as determined by other
members of the project's leadership.

## Attribution

This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4,
available at https://www.contributor-covenant.org/version/1/4/code-of-conduct.html

[homepage]: https://www.contributor-covenant.org

For answers to common questions about this code of conduct, see
https://www.contributor-covenant.org/faq
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
MIT License

Copyright (c) Facebook, Inc. and its affiliates.
Copyright (c) Meta Platforms, Inc. and affiliates.

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
Expand Down
6 changes: 2 additions & 4 deletions docs/_getting-started-macos-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -73,17 +73,15 @@ Finally, click "Apply" to download and install the Android SDK and related build

The React Native tools require some environment variables to be set up in order to build apps with native code.

Add the following lines to your `$HOME/.bash_profile` or `$HOME/.bashrc` (if you are using `zsh` then `~/.zprofile` or `~/.zshrc`) config file:
Add the following lines to your `~/.zprofile` or `~/.zshrc` (if you are using `bash`, then `~/.bash_profile` or `~/.bashrc`) config file:

```shell
export ANDROID_SDK_ROOT=$HOME/Library/Android/sdk
export PATH=$PATH:$ANDROID_SDK_ROOT/emulator
export PATH=$PATH:$ANDROID_SDK_ROOT/platform-tools
```

> `.bash_profile` is specific to `bash`. If you're using another shell, you will need to edit the appropriate shell-specific config file.

Type `source $HOME/.bash_profile` for `bash` or `source $HOME/.zprofile` to load the config into your current shell. Verify that ANDROID_SDK_ROOT has been set by running `echo $ANDROID_SDK_ROOT` and the appropriate directories have been added to your path by running `echo $PATH`.
Run `source ~/.zprofile` (or `source ~/.bash_profile` for `bash`) to load the config into your current shell. Verify that ANDROID_SDK_ROOT has been set by running `echo $ANDROID_SDK_ROOT` and the appropriate directories have been added to your path by running `echo $PATH`.

> Please make sure you use the correct Android SDK path. You can find the actual location of the SDK in the Android Studio "Preferences" dialog, under **Appearance & Behavior** → **System Settings** → **Android SDK**.

Expand Down
52 changes: 42 additions & 10 deletions docs/_getting-started-macos-ios.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ import M1Cocoapods from './\_markdown-m1-cocoapods.mdx'; import RemoveGlobalCLI

## Installing dependencies

You will need Node, Watchman, the React Native command line interface, Xcode and CocoaPods.
You will need Node, Watchman, the React Native command line interface, a Ruby version manager, Xcode and CocoaPods.

While you can use any editor of your choice to develop your app, you will need to install Xcode in order to set up the necessary tooling to build your React Native app for iOS.

Expand All @@ -19,6 +19,35 @@ If you have already installed Node on your system, make sure it is Node 14 or ne

[Watchman](https://facebook.github.io/watchman) is a tool by Facebook for watching changes in the filesystem. It is highly recommended you install it for better performance.

### Ruby

[Ruby](https://www.ruby-lang.org/en/) is a general-purpose programming language. React Native uses in some scripts related to the iOS dependency management. As every programming language, there are different versions of Ruby that have been developed during the years.

React Native uses a `.ruby-version` file to make sure that your version of Ruby is aligned with what is needed. Currently, macOS 12.5.1 is shipped with Ruby 2.6.8, which is **not** what is required by React Native. Our suggestion is to install a Ruby version manager and to install the proper version of Ruby in your system.

Some common Ruby version manager are:

- [rbenv](https://github.com/rbenv/rbenv)
- [RVM](https://rvm.io/)
- [chruby](https://github.com/postmodern/chruby)
- [asdf-vm](https://github.com/asdf-vm) with the [asdf-ruby](https://github.com/asdf-vm/asdf-ruby) plugin

To check what is your current version of Ruby, you can run this command:

```
ruby --version
```

React Native uses [this version](https://github.com/facebook/react-native/blob/main/template/_ruby-version) of Ruby. You can also find which version your specific project needs in the `.ruby-version` file at root of your RN project.

### Ruby's Bundler

Ruby uses the concept of **gems** to handle its own dependencies. You can think of a gem as a package in NPM, a formula in Homebrew or a single pod in Cocoapods.

Ruby's [Bundler](https://bundler.io/) is a Ruby gem that helps managing the Ruby dependencies of your project. We need Ruby to install Cocoapods and using Bundler will make sure that all the dependencies are aligned and that the project works properly.

If you want to learn more about why we need this tool, you can read [this article](https://bundler.io/guides/rationale.html#bundlers-purpose-and-rationale).

### Xcode

The easiest way to install Xcode is via the [Mac App Store](https://itunes.apple.com/us/app/xcode/id497799835?mt=12). Installing Xcode will also install the iOS Simulator and all the necessary tools to build your iOS app.
Expand All @@ -37,15 +66,7 @@ To install a simulator, open <strong>Xcode > Preferences...</strong> and select

#### CocoaPods

[CocoaPods](https://cocoapods.org/) is built with Ruby and it will be installable with the default Ruby available on macOS.

Using the default Ruby available on macOS will require you to use `sudo` when installing gems. (This is only an issue for the duration of the gem installation, though.)

```shell
sudo gem install cocoapods
```

Otherwise you can use a Ruby version manager, such as `rbenv`. Apps created with the command `npx react-native init` described below are configured to work well with `rbenv` and will pick the correct Ruby version requested by the template.
[CocoaPods](https://cocoapods.org/) is one of the dependency management system available for iOS. It is built with Ruby and you can install it using the version of Ruby you configured with in the previous steps.

For more information, please visit [CocoaPods Getting Started guide](https://guides.cocoapods.org/using/getting-started.html).

Expand All @@ -67,6 +88,17 @@ npx react-native init AwesomeProject

This is not necessary if you are integrating React Native into an existing application, if you "ejected" from Expo, or if you're adding iOS support to an existing React Native project (see [Integration with Existing Apps](integration-with-existing-apps.md)). You can also use a third-party CLI to init your React Native app, such as [Ignite CLI](https://github.com/infinitered/ignite).

:::info

If you are having trouble with iOS, try to reinstall the dependencies by running:

1. `cd ios` to navigate to the
2. `bundle install` to install Bundler
1. If needed: install a [Ruby Version Manager](#ruby) and update the Ruby version
3. `bundle exec pod install` to install the iOS dependencies.

:::

### [Optional] Using a specific version or template

If you want to start a new project with a specific React Native version, you can use the `--version` argument:
Expand Down
4 changes: 2 additions & 2 deletions docs/_getting-started-windows-android.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,14 +17,14 @@ React Native also requires [Java SE Development Kit (JDK)](https://openjdk.java.
Open an Administrator Command Prompt (right click Command Prompt and select "Run as Administrator"), then run the following command:

```powershell
choco install -y nodejs-lts openjdk11
choco install -y nodejs-lts microsoft-openjdk11
```

If you have already installed Node on your system, make sure it is Node 14 or newer. If you already have a JDK on your system, we recommend JDK11. You may encounter problems using higher JDK versions.

> You can find additional installation options on [Node's Downloads page](https://nodejs.org/en/download/).

> If you're using the latest version of Java Development Kit, you'll need to change the Gradle version of your project so it can recognize the JDK. You can do that by going to `{project root folder}\android\gradle\wrapper\gradle-wrapper.properties` and changing the `distributionUrl` value to upgrade the Gradle version. You can check out [here the lastest releases of Gradle](https://gradle.org/releases/).
> If you're using the latest version of Java Development Kit, you'll need to change the Gradle version of your project so it can recognize the JDK. You can do that by going to `{project root folder}\android\gradle\wrapper\gradle-wrapper.properties` and changing the `distributionUrl` value to upgrade the Gradle version. You can check out [here the latest releases of Gradle](https://gradle.org/releases/).

<h3>Android development environment</h3>

Expand Down
Loading