this repo has no description
1<!doctype html><html lang=en dir=ltr class="docs-wrapper plugin-docs plugin-id-default docs-version-0.79 docs-doc-page docs-doc-id-set-up-your-environment" data-has-hydrated=false><meta charset=UTF-8><meta name=generator content="Docusaurus v3.8.0"><title data-rh=true>Set Up Your Environment · React Native</title><meta data-rh=true name=viewport content="width=device-width, initial-scale=1.0"><meta data-rh=true property=og:url content=https://reactnative.dev/docs/set-up-your-environment><meta data-rh=true property=og:locale content=en><meta data-rh=true name=docusaurus_locale content=en><meta data-rh=true name=docsearch:language content=en><meta data-rh=true property=og:image content=https://reactnative.dev/img/logo-share.png><meta data-rh=true name=twitter:card content=summary_large_image><meta data-rh=true name=twitter:image content=https://reactnative.dev/img/logo-share.png><meta data-rh=true name=twitter:site content=@reactnative><meta data-rh=true name=docusaurus_version content=0.79><meta data-rh=true name=docusaurus_tag content=docs-default-0.79><meta data-rh=true name=docsearch:version content=0.79><meta data-rh=true name=docsearch:docusaurus_tag content=docs-default-0.79><meta data-rh=true property=og:title content="Set Up Your Environment · React Native"><meta data-rh=true name=description content="In this guide, you'll learn how to set up your environment, so that you can run your project with Android Studio and Xcode. This will allow you to develop with Android emulators and iOS simulators, build your app locally, and more."><meta data-rh=true property=og:description content="In this guide, you'll learn how to set up your environment, so that you can run your project with Android Studio and Xcode. This will allow you to develop with Android emulators and iOS simulators, build your app locally, and more."><link data-rh=true rel=icon href=/img/favicon.ico><link data-rh=true rel=canonical href=https://reactnative.dev/docs/set-up-your-environment><link data-rh=true rel=alternate href=https://reactnative.dev/docs/set-up-your-environment hreflang=en><link data-rh=true rel=alternate href=https://reactnative.dev/docs/set-up-your-environment hreflang=x-default><link data-rh=true rel=preconnect href=https://8TDSE0OHGQ-dsn.algolia.net crossorigin=anonymous><link rel=alternate type=application/rss+xml href=/blog/rss.xml title="React Native RSS Feed"><link rel=alternate type=application/atom+xml href=/blog/atom.xml title="React Native Atom Feed"><link rel=alternate type=application/json href=/blog/feed.json title="React Native JSON Feed"><link rel=preconnect href=https://www.google-analytics.com><script>window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)},ga.l=+new Date,ga("create","UA-41298772-2","auto"),ga("send","pageview")</script><script async src=https://www.google-analytics.com/analytics.js></script><link rel=preconnect href=https://www.google-analytics.com><link rel=preconnect href=https://www.googletagmanager.com><script async src="https://www.googletagmanager.com/gtag/js?id=G-58L13S6BDP"></script><script>function gtag(){dataLayer.push(arguments)}window.dataLayer=window.dataLayer||[],gtag("js",new Date),gtag("config","G-58L13S6BDP",{})</script><link rel=search type=application/opensearchdescription+xml title="React Native" href=/opensearch.xml><link rel=icon href=/img/pwa/manifest-icon-512.png><link rel=manifest href=/manifest.json><meta name=theme-color content=#20232a><meta name=apple-mobile-web-app-capable content=yes><meta name=apple-mobile-web-app-status-bar-style content=#20232a><link rel=apple-touch-icon href=/img/pwa/manifest-icon-512.png><link rel=mask-icon href=/img/pwa/manifest-icon-512.png color=#06bcee><meta name=msapplication-TileImage href=/img/pwa/manifest-icon-512.png><meta name=msapplication-TileColor content=#20232a><script src=https://cdn.jsdelivr.net/npm/focus-visible@5.2.0/dist/focus-visible.min.js defer></script><script src=https://widget.surveymonkey.com/collect/website/js/tRaiETqnLgj758hTBazgd8ryO5qrZo8Exadq9qmt1wtm4_2FdZGEAKHDFEt_2BBlwwM4.js defer></script><script src=https://snack.expo.dev/embed.js defer></script><script src=https://platform.twitter.com/widgets.js async></script><link rel=stylesheet href=/assets/css/styles.883cb042.css><script src=/assets/js/runtime~main.8ac1e6f0.js defer></script><script src=/assets/js/main.341783f5.js defer></script><body class=navigation-with-keyboard><svg xmlns=http://www.w3.org/2000/svg style="display: none;"><defs>
2<symbol id=theme-svg-external-link viewBox="0 0 24 24"><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></symbol>
3</defs></svg>
4<script>!function(){var t=function(){try{return new URLSearchParams(window.location.search).get("docusaurus-theme")}catch(t){}}()||function(){try{return window.localStorage.getItem("theme")}catch(t){}}();document.documentElement.setAttribute("data-theme",t||(window.matchMedia("(prefers-color-scheme: dark)").matches?"dark":"light")),document.documentElement.setAttribute("data-theme-choice",t||"system")}(),function(){try{for(var[t,e]of new URLSearchParams(window.location.search).entries())if(t.startsWith("docusaurus-data-")){var a=t.replace("docusaurus-data-","data-");document.documentElement.setAttribute(a,e)}}catch(t){}}(),document.documentElement.setAttribute("data-announcement-bar-initially-dismissed",function(){try{return"true"===localStorage.getItem("docusaurus.announcement.dismiss")}catch(t){}return!1}())</script><div id=__docusaurus><div role=region aria-label="Skip to main content"><a class=skipToContent_oPtH href=#__docusaurus_skipToContent_fallback>Skip to main content</a></div><div class="theme-announcement-bar announcementBar_zJRd" style=background-color:#20232a;color:#fff role=banner><div class="content_bSb_ announcementBarContent_t7IR">Join us for React Conf on Oct 7-8. <a target=_blank rel="noopener noreferrer" href=https://conf.react.dev>Learn more</a>.</div></div><nav aria-label=Main class="theme-layout-navbar navbar navbar--fixed-top navbar--dark"><div class=navbar__inner><div class="theme-layout-navbar-left navbar__items"><button aria-label="Toggle navigation bar" aria-expanded=false class="navbar__toggle clean-btn" type=button><svg width=30 height=30 viewBox="0 0 30 30" aria-hidden=true><path stroke=currentColor stroke-linecap=round stroke-miterlimit=10 stroke-width=2 d="M4 7h22M4 15h22M4 23h22"/></svg></button><a class=navbar__brand href=/><div class=navbar__logo><img src=/img/header_logo.svg alt="React Native" class="themedComponent_siVc themedComponent--light_hHel"><img src=/img/header_logo.svg alt="React Native" class="themedComponent_siVc themedComponent--dark_yETr"></div><b class="navbar__title text--truncate">React Native</b></a><div class="navbar__item dropdown dropdown--hoverable"><a class=navbar__link aria-haspopup=true aria-expanded=false role=button href=/docs/set-up-your-environment>0.79</a><ul class=dropdown__menu><li><a class=dropdown__link href=/docs/next/set-up-your-environment>Next</a><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/set-up-your-environment>0.79</a><li><a class=dropdown__link href=/docs/0.78/set-up-your-environment>0.78</a><li><a class=dropdown__link href=/docs/0.77/set-up-your-environment>0.77</a><li><a class=dropdown__link href=/docs/0.76/set-up-your-environment>0.76</a><li><a class=dropdown__link href=/docs/0.75/set-up-your-environment>0.75</a><li><a class=dropdown__link href=/docs/0.74/set-up-your-environment>0.74</a><li><a class=dropdown__link href=/docs/0.73/getting-started>0.73</a><li><a class=dropdown__link href=/docs/0.72/getting-started>0.72</a><li><a class=dropdown__link href=/docs/0.71/getting-started>0.71</a><li><a class=dropdown__link href=/docs/0.70/getting-started>0.70</a><li><a class=dropdown__link href=/versions>All versions</a></ul></div></div><div class="theme-layout-navbar-right navbar__items navbar__items--right"><div class="navbar__item dropdown dropdown--hoverable dropdown--right"><a href=# aria-haspopup=true aria-expanded=false role=button class=navbar__link>Development</a><ul class=dropdown__menu><li><a aria-current=page class="dropdown__link dropdown__link--active" href=/docs/getting-started>Guides</a><li><a class=dropdown__link href=/docs/components-and-apis>Components</a><li><a class=dropdown__link href=/docs/accessibilityinfo>APIs</a><li><a class=dropdown__link href=/architecture/overview>Architecture</a></ul></div><a class="navbar__item navbar__link" href=/contributing/overview>Contributing</a><a class="navbar__item navbar__link" href=/community/overview>Community</a><a class="navbar__item navbar__link" href=/showcase>Showcase</a><a class="navbar__item navbar__link" href=/blog>Blog</a><a href=https://github.com/facebook/react-native target=_blank rel="noopener noreferrer" class="navbar__item navbar__link navbar-github-link" aria-label="GitHub repository"></a><div class="toggle_ki11 colorModeToggle_Hewu"><button class="clean-btn toggleButton_MMFG toggleButtonDisabled_Uw7m darkNavbarColorModeToggle_m8pZ" type=button disabled title="system mode" aria-label="Switch between dark and light mode (currently system mode)"><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_k9hJ lightToggleIcon_lgto"><path fill=currentColor d="M12,9c1.65,0,3,1.35,3,3s-1.35,3-3,3s-3-1.35-3-3S10.35,9,12,9 M12,7c-2.76,0-5,2.24-5,5s2.24,5,5,5s5-2.24,5-5 S14.76,7,12,7L12,7z M2,13l2,0c0.55,0,1-0.45,1-1s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S1.45,13,2,13z M20,13l2,0c0.55,0,1-0.45,1-1 s-0.45-1-1-1l-2,0c-0.55,0-1,0.45-1,1S19.45,13,20,13z M11,2v2c0,0.55,0.45,1,1,1s1-0.45,1-1V2c0-0.55-0.45-1-1-1S11,1.45,11,2z M11,20v2c0,0.55,0.45,1,1,1s1-0.45,1-1v-2c0-0.55-0.45-1-1-1C11.45,19,11,19.45,11,20z M5.99,4.58c-0.39-0.39-1.03-0.39-1.41,0 c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0s0.39-1.03,0-1.41L5.99,4.58z M18.36,16.95 c-0.39-0.39-1.03-0.39-1.41,0c-0.39,0.39-0.39,1.03,0,1.41l1.06,1.06c0.39,0.39,1.03,0.39,1.41,0c0.39-0.39,0.39-1.03,0-1.41 L18.36,16.95z M19.42,5.99c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06c-0.39,0.39-0.39,1.03,0,1.41 s1.03,0.39,1.41,0L19.42,5.99z M7.05,18.36c0.39-0.39,0.39-1.03,0-1.41c-0.39-0.39-1.03-0.39-1.41,0l-1.06,1.06 c-0.39,0.39-0.39,1.03,0,1.41s1.03,0.39,1.41,0L7.05,18.36z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_k9hJ darkToggleIcon_U96C"><path fill=currentColor d="M9.37,5.51C9.19,6.15,9.1,6.82,9.1,7.5c0,4.08,3.32,7.4,7.4,7.4c0.68,0,1.35-0.09,1.99-0.27C17.45,17.19,14.93,19,12,19 c-3.86,0-7-3.14-7-7C5,9.07,6.81,6.55,9.37,5.51z M12,3c-4.97,0-9,4.03-9,9s4.03,9,9,9s9-4.03,9-9c0-0.46-0.04-0.92-0.1-1.36 c-0.98,1.37-2.58,2.26-4.4,2.26c-2.98,0-5.4-2.42-5.4-5.4c0-1.81,0.89-3.42,2.26-4.4C12.92,3.04,12.46,3,12,3L12,3z"/></svg><svg viewBox="0 0 24 24" width=24 height=24 aria-hidden=true class="toggleIcon_k9hJ systemToggleIcon_E5c0"><path fill=currentColor d="m12 21c4.971 0 9-4.029 9-9s-4.029-9-9-9-9 4.029-9 9 4.029 9 9 9zm4.95-13.95c1.313 1.313 2.05 3.093 2.05 4.95s-0.738 3.637-2.05 4.95c-1.313 1.313-3.093 2.05-4.95 2.05v-14c1.857 0 3.637 0.737 4.95 2.05z"/></svg></button></div><div class=navbarSearchContainer_bzqh><button type=button class="DocSearch DocSearch-Button" aria-label="Search (Command+K)"><span class=DocSearch-Button-Container><svg width=20 height=20 class=DocSearch-Search-Icon viewBox="0 0 20 20" aria-hidden=true><path d="M14.386 14.386l4.0877 4.0877-4.0877-4.0877c-2.9418 2.9419-7.7115 2.9419-10.6533 0-2.9419-2.9418-2.9419-7.7115 0-10.6533 2.9418-2.9419 7.7115-2.9419 10.6533 0 2.9419 2.9418 2.9419 7.7115 0 10.6533z" stroke=currentColor fill=none fill-rule=evenodd stroke-linecap=round stroke-linejoin=round /></svg><span class=DocSearch-Button-Placeholder>Search</span></span><span class=DocSearch-Button-Keys></span></button></div></div></div><div role=presentation class=navbar-sidebar__backdrop></div></nav><div id=__docusaurus_skipToContent_fallback class="theme-layout-main main-wrapper mainWrapper_MB5r"><div class=docsWrapper__sE8><button aria-label="Scroll back to top" class="clean-btn theme-back-to-top-button backToTopButton_iEvu" type=button></button><div class=docRoot_DfVB><aside class="theme-doc-sidebar-container docSidebarContainer_c7NB"><div class=sidebarViewport_KYo0><div class=sidebar_CUen><nav aria-label="Docs sidebar" class="menu thin-scrollbar menu_jmj1 menuWithAnnouncementBar_YufC"><ul class="theme-doc-sidebar-menu menu__list"><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/getting-started>The Basics</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret menu__link--active" role=button aria-expanded=true href=/docs/environment-setup>Environment setup</a></div><ul class=menu__list><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/environment-setup>Get Started with React Native</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class="menu__link menu__link--active" aria-current=page tabindex=0 href=/docs/set-up-your-environment>Set Up Your Environment</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integration-with-existing-apps>Integration with Existing Apps</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/integration-with-android-fragment>Integration with an Android Fragment</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/building-for-tv>Building For TV Devices</a><li class="theme-doc-sidebar-item-link theme-doc-sidebar-item-link-level-2 menu__list-item"><a class=menu__link tabindex=0 href=/docs/out-of-tree-platforms>Out-of-Tree Platforms</a></ul><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/running-on-device>Workflow</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/style>UI & Interaction</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/debugging>Debugging</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/testing-overview>Testing</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/performance>Performance</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/javascript-environment>JavaScript Runtime</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/the-new-architecture/what-is-codegen>Codegen</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/native-platform>Native Development</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/headless-js-android>Android and iOS guides</a></div><li class="theme-doc-sidebar-item-category theme-doc-sidebar-item-category-level-1 menu__list-item menu__list-item--collapsed"><div class=menu__list-item-collapsible><a class="menu__link menu__link--sublist menu__link--sublist-caret" role=button aria-expanded=false href=/docs/legacy/native-modules-intro>Legacy Architecture</a></div></ul></nav></div></div></aside><main class=docMainContainer_a9sJ><div class="container padding-top--md padding-bottom--lg"><div class=row><div class=col><div class=docItemContainer_tjFy><article><div class="theme-doc-markdown markdown"><header><h1>Set Up Your Environment</h1></header><p>In this guide, you'll learn how to set up your environment, so that you can run your project with Android Studio and Xcode. This will allow you to develop with Android emulators and iOS simulators, build your app locally, and more.</p>
5<div class="theme-admonition theme-admonition-note admonition_WCGJ alert alert--secondary"><div class=admonitionHeading_GCBg><span class=admonitionIcon_L39b><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M6.3 5.69a.942.942 0 0 1-.28-.7c0-.28.09-.52.28-.7.19-.18.42-.28.7-.28.28 0 .52.09.7.28.18.19.28.42.28.7 0 .28-.09.52-.28.7a1 1 0 0 1-.7.3c-.28 0-.52-.11-.7-.3zM8 7.99c-.02-.25-.11-.48-.31-.69-.2-.19-.42-.3-.69-.31H6c-.27.02-.48.13-.69.31-.2.2-.3.44-.31.69h1v3c.02.27.11.5.31.69.2.2.42.31.69.31h1c.27 0 .48-.11.69-.31.2-.19.3-.42.31-.69H8V7.98v.01zM7 2.3c-3.14 0-5.7 2.54-5.7 5.68 0 3.14 2.56 5.7 5.7 5.7s5.7-2.55 5.7-5.7c0-3.15-2.56-5.69-5.7-5.69v.01zM7 .98c3.86 0 7 3.14 7 7s-3.14 7-7 7-7-3.12-7-7 3.14-7 7-7z"/></svg></span>note</div><div class=admonitionContent_pbrs><p>This guide requires Android Studio or Xcode. If you already have one of these programs installed, you should be able to get up and running within a few minutes. If they are not installed, you should expect to spend about an hour installing and configuring them.<details class="details_IpIu alert alert--info details_jERq" data-collapsed=true><summary>Is setting up my environment required?</summary><div><div class=collapsibleContent_Fd2D><p>Setting up your environment is not required if you're using a <a href=/architecture/glossary#react-native-framework>Framework</a>. With a React Native Framework, you don't need to setup Android Studio or XCode as a Framework will take care of building the native app for you.<p>If you have constraints that prevent you from using a Framework, or you'd like to write your own Framework, then setting up your local environment is a requirement. After your environment is set up, learn how to <a href=/docs/getting-started-without-a-framework>get started without a framework</a>.</div></div></details></div></div>
6<h4 class="anchor anchorWithStickyNavbar_JmGV" id=development-os>Development OS<a href=#development-os class=hash-link aria-label="Direct link to Development OS" title="Direct link to Development OS"></a></h4>
7<div class="tabs-container tabList_J5MA"><ul role=tablist aria-orientation=horizontal class="tabs pill-tabs"><li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_l0OV">macOS<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_l0OV">Windows<li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_l0OV tabs__item--active">Linux</ul><div class=margin-top--md><div role=tabpanel class=tabItem_wHwb hidden><h4 class="anchor anchorWithStickyNavbar_JmGV" id=target-os>Target OS<a href=#target-os class=hash-link aria-label="Direct link to Target OS" title="Direct link to Target OS"></a></h4><div class="tabs-container tabList_J5MA"><ul role=tablist aria-orientation=horizontal class="tabs pill-tabs"><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_l0OV tabs__item--active">Android<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_l0OV">iOS</ul><div class=margin-top--md><div role=tabpanel class=tabItem_wHwb><h2 class="anchor anchorWithStickyNavbar_JmGV" id=installing-dependencies>Installing dependencies<a href=#installing-dependencies class=hash-link aria-label="Direct link to Installing dependencies" title="Direct link to Installing dependencies"></a></h2>
8<p>You will need Node, Watchman, the React Native command line interface, a JDK, and Android Studio.</p>
9<p>While you can use any editor of your choice to develop your app, you will need to install Android Studio in order to set up the necessary tooling to build your React Native app for Android.</p>
10<h3>Node & Watchman</h3>
11<p>We recommend installing Node and Watchman using <a href=https://brew.sh/ target=_blank rel="noopener noreferrer">Homebrew</a>. Run the following commands in a Terminal after installing Homebrew:</p>
12<div class="language-shell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>shell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-shell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">brew </span><span class="token function" style=color:#79b6f2>install</span><span class="token plain"> </span><span class="token function" style=color:#79b6f2>node</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain">brew </span><span class="token function" style=color:#79b6f2>install</span><span class="token plain"> watchman</span><br></span></code></pre></div></div>
13<p>If you have already installed Node on your system, make sure it is Node 18.18 or newer.</p>
14<p><a href=https://facebook.github.io/watchman target=_blank rel="noopener noreferrer">Watchman</a> is a tool by Facebook for watching changes in the filesystem. It is highly recommended you install it for better performance.</p>
15<h3>Java Development Kit</h3>
16<p>We recommend installing the OpenJDK distribution called Azul <strong>Zulu</strong> using <a href=https://brew.sh/ target=_blank rel="noopener noreferrer">Homebrew</a>. Run the following commands in a Terminal after installing Homebrew:</p>
17<div class="language-shell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>shell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-shell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">brew </span><span class="token function" style=color:#79b6f2>install</span><span class="token plain"> </span><span class="token parameter variable" style=color:#cb4b16>--cask</span><span class="token plain"> zulu@17</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># Get path to where cask was installed to find the JDK installer</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain">brew info </span><span class="token parameter variable" style=color:#cb4b16>--cask</span><span class="token plain"> zulu@17</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># ==> zulu@17: <version number></span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># https://www.azul.com/downloads/</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># Installed</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># /opt/homebrew/Caskroom/zulu@17/<version number> (185.8MB) (note that the path is /usr/local/Caskroom on non-Apple Silicon Macs)</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># Installed using the formulae.brew.sh API on 2024-06-06 at 10:00:00</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain" style=display:inline-block></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token comment" style=color:#93a1a1># Navigate to the folder</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token function" style=color:#79b6f2>open</span><span class="token plain"> /opt/homebrew/Caskroom/zulu@17/</span><span class="token operator" style=color:#fc929e><</span><span class="token plain">version number</span><span class="token operator" style=color:#fc929e>></span><span class="token plain"> </span><span class="token comment" style=color:#93a1a1># or /usr/local/Caskroom/zulu@17/<version number></span><br></span></code></pre></div></div>
18<p>After opening Finder, double click the <code>Double-Click to Install Azul Zulu JDK 17.pkg</code> package to install the JDK.</p>
19<p>After the JDK installation, add or update your <code>JAVA_HOME</code> environment variable in <code>~/.zshrc</code> (or in <code>~/.bash_profile</code>).</p>
20<p>If you used above steps, JDK will likely be located at <code>/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home</code>:</p>
21<div class="language-shell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>shell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-shell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#cb4b16>JAVA_HOME</span><span class="token operator" style=color:#fc929e>=</span><span class="token plain">/Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home</span><br></span></code></pre></div></div>
22<p>The Zulu OpenJDK distribution offers JDKs for <strong>both Intel and M1 Macs</strong>. This will make sure your builds are faster on M1 Macs compared to using an Intel-based JDK.</p>
23<p>If you have already installed JDK on your system, we recommend JDK 17. You may encounter problems using higher JDK versions.</p>
24<h3>Android development environment</h3>
25<p>Setting up your development environment can be somewhat tedious if you're new to Android development. If you're already familiar with Android development, there are a few things you may need to configure. In either case, please make sure to carefully follow the next few steps.</p>
26<h4 id=android-studio>1. Install Android Studio</h4>
27<p><a href=https://developer.android.com/studio/index.html target=_blank rel="noopener noreferrer">Download and install Android Studio</a>. While on Android Studio installation wizard, make sure the boxes next to all of the following items are checked:</p>
28<ul>
29<li><code>Android SDK</code></li>
30<li><code>Android SDK Platform</code></li>
31<li><code>Android Virtual Device</code></li>
32</ul>
33<p>Then, click "Next" to install all of these components.</p>
34<blockquote>
35<p>If the checkboxes are grayed out, you will have a chance to install these components later on.</p>
36</blockquote>
37<p>Once setup has finalized and you're presented with the Welcome screen, proceed to the next step.</p>
38<h4 id=android-sdk>2. Install the Android SDK</h4>
39<p>Android Studio installs the latest Android SDK by default. Building a React Native app with native code, however, requires the <code>Android 15 (VanillaIceCream)</code> SDK in particular. Additional Android SDKs can be installed through the SDK Manager in Android Studio.</p>
40<p>To do that, open Android Studio, click on "More Actions" button and select "SDK Manager".</p>
41<p><img decoding=async loading=lazy alt="Android Studio Welcome" src=/assets/images/GettingStartedAndroidStudioWelcomeMacOS-64c618ea062865fedece6dd5f7b78fa4.png width=704 height=550 class=img_SS3x></p>
42<blockquote>
43<p>The SDK Manager can also be found within the Android Studio "Settings" dialog, under <strong>Languages & Frameworks</strong> → <strong>Android SDK</strong>.</p>
44</blockquote>
45<p>Select the "SDK Platforms" tab from within the SDK Manager, then check the box next to "Show Package Details" in the bottom right corner. Look for and expand the <code>Android 15 (VanillaIceCream)</code> entry, then make sure the following items are checked:</p>
46<ul>
47<li><code>Android SDK Platform 35</code></li>
48<li><code>Intel x86 Atom_64 System Image</code> or <code>Google APIs Intel x86 Atom System Image</code> or (for Apple M1 Silicon) <code>Google APIs ARM 64 v8a System Image</code></li>
49</ul>
50<p>Next, select the "SDK Tools" tab and check the box next to "Show Package Details" here as well. Look for and expand the "Android SDK Build-Tools" entry, then make sure that <code>35.0.0</code> is selected.</p>
51<p>Finally, click "Apply" to download and install the Android SDK and related build tools.</p>
52<h4>3. Configure the ANDROID_HOME environment variable</h4>
53<p>The React Native tools require some environment variables to be set up in order to build apps with native code.</p>
54<p>Add the following lines to your <code>~/.zprofile</code> or <code>~/.zshrc</code> (if you are using <code>bash</code>, then <code>~/.bash_profile</code> or <code>~/.bashrc</code>) config file:</p>
55<div class="language-shell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>shell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-shell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#cb4b16>ANDROID_HOME</span><span class="token operator" style=color:#fc929e>=</span><span class="token environment constant" style=color:#5a9bcf>$HOME</span><span class="token plain">/Library/Android/sdk</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable environment constant" style=color:#5a9bcf>PATH</span><span class="token operator" style=color:#fc929e>=</span><span class="token environment constant" style=color:#5a9bcf>$PATH</span><span class="token builtin class-name" style=color:#fac863>:</span><span class="token variable" style=color:#cb4b16>$ANDROID_HOME</span><span class="token plain">/emulator</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable environment constant" style=color:#5a9bcf>PATH</span><span class="token operator" style=color:#fc929e>=</span><span class="token environment constant" style=color:#5a9bcf>$PATH</span><span class="token builtin class-name" style=color:#fac863>:</span><span class="token variable" style=color:#cb4b16>$ANDROID_HOME</span><span class="token plain">/platform-tools</span><br></span></code></pre></div></div>
56<p>Run <code>source ~/.zprofile</code> (or <code>source ~/.bash_profile</code> for <code>bash</code>) to load the config into your current shell. Verify that ANDROID_HOME has been set by running <code>echo $ANDROID_HOME</code> and the appropriate directories have been added to your path by running <code>echo $PATH</code>.</p>
57<blockquote>
58<p>Please make sure you use the correct Android SDK path. You can find the actual location of the SDK in the Android Studio "Settings" dialog, under <strong>Languages & Frameworks</strong> → <strong>Android SDK</strong>.</p>
59</blockquote>
60<h2>Preparing the Android device</h2>
61<p>You will need an Android device to run your React Native Android app. This can be either a physical Android device, or more commonly, you can use an Android Virtual Device which allows you to emulate an Android device on your computer.</p>
62<p>Either way, you will need to prepare the device to run Android apps for development.</p>
63<h3>Using a physical device</h3>
64<p>If you have a physical Android device, you can use it for development in place of an AVD by plugging it in to your computer using a USB cable and following the instructions <a href=/docs/running-on-device>here</a>.</p>
65<h3>Using a virtual device</h3>
66<p>If you use Android Studio to open <code>./AwesomeProject/android</code>, you can see the list of available Android Virtual Devices (AVDs) by opening the "AVD Manager" from within Android Studio. Look for an icon that looks like this:</p>
67<img src=/docs/assets/GettingStartedAndroidStudioAVD.svg alt="Android Studio AVD Manager" width=100>
68<p>If you have recently installed Android Studio, you will likely need to <a href=https://developer.android.com/studio/run/managing-avds.html target=_blank rel="noopener noreferrer">create a new AVD</a>. Select "Create Virtual Device...", then pick any Phone from the list and click "Next", then select the <strong>VanillaIceCream</strong> API Level 35 image.</p>
69<p>Click "Next" then "Finish" to create your AVD. At this point you should be able to click on the green triangle button next to your AVD to launch it.</p>
70<h3>That's it!</h3>
71<p>Congratulations! You successfully set up your development environment.</p>
72<center><img src=/docs/assets/GettingStartedCongratulations.png width=150></center>
73<h2>Now what?</h2>
74<ul>
75<li>If you want to add this new React Native code to an existing application, check out the <a href=/docs/integration-with-existing-apps>Integration guide</a>.</li>
76<li>If you're curious to learn more about React Native, check out the <a href=/docs/getting-started>Introduction to React Native</a>.</li>
77</ul></div><div role=tabpanel class=tabItem_wHwb hidden><h2 class="anchor anchorWithStickyNavbar_JmGV" id=installing-dependencies>Installing dependencies<a href=#installing-dependencies class=hash-link aria-label="Direct link to Installing dependencies" title="Direct link to Installing dependencies"></a></h2>
78<p>You will need Node, Watchman, the React Native command line interface, Xcode and CocoaPods.</p>
79<p>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.</p>
80<h3 class="anchor anchorWithStickyNavbar_JmGV" id=node--watchman>Node & Watchman<a href=#node--watchman class=hash-link aria-label="Direct link to Node & Watchman" title="Direct link to Node & Watchman"></a></h3>
81<p>We recommend installing Node and Watchman using <a href=https://brew.sh/ target=_blank rel="noopener noreferrer">Homebrew</a>. Run the following commands in a Terminal after installing Homebrew:</p>
82<div class="language-shell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>shell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-shell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">brew </span><span class="token function" style=color:#79b6f2>install</span><span class="token plain"> </span><span class="token function" style=color:#79b6f2>node</span><span class="token plain"></span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain">brew </span><span class="token function" style=color:#79b6f2>install</span><span class="token plain"> watchman</span><br></span></code></pre></div></div>
83<p>If you have already installed Node on your system, make sure it is Node 18.18 or newer.</p>
84<p><a href=https://facebook.github.io/watchman target=_blank rel="noopener noreferrer">Watchman</a> is a tool by Facebook for watching changes in the filesystem. It is highly recommended you install it for better performance.</p>
85<h3 class="anchor anchorWithStickyNavbar_JmGV" id=xcode>Xcode<a href=#xcode class=hash-link aria-label="Direct link to Xcode" title="Direct link to Xcode"></a></h3>
86<p>Please use the <strong>latest version</strong> of Xcode.</p>
87<p>The easiest way to install Xcode is via the <a href="https://itunes.apple.com/us/app/xcode/id497799835?mt=12" target=_blank rel="noopener noreferrer">Mac App Store</a>. Installing Xcode will also install the iOS Simulator and all the necessary tools to build your iOS app.</p>
88<h4 class="anchor anchorWithStickyNavbar_JmGV" id=command-line-tools>Command Line Tools<a href=#command-line-tools class=hash-link aria-label="Direct link to Command Line Tools" title="Direct link to Command Line Tools"></a></h4>
89<p>You will also need to install the Xcode Command Line Tools. Open Xcode, then choose <strong>Settings... (or Preferences...)</strong> from the Xcode menu. Go to the Locations panel and install the tools by selecting the most recent version in the Command Line Tools dropdown.</p>
90<p><img decoding=async loading=lazy alt="Xcode Command Line Tools" src=/assets/images/GettingStartedXcodeCommandLineTools-7ddc121ba824227ca88a078b9ad9105e.png width=1884 height=1324 class=img_SS3x></p>
91<h4 class="anchor anchorWithStickyNavbar_JmGV" id=installing-an-ios-simulator-in-xcode>Installing an iOS Simulator in Xcode<a href=#installing-an-ios-simulator-in-xcode class=hash-link aria-label="Direct link to Installing an iOS Simulator in Xcode" title="Direct link to Installing an iOS Simulator in Xcode"></a></h4>
92<p>To install a simulator, open <strong>Xcode > Settings... (or Preferences...)</strong> and select the <strong>Platforms (or Components)</strong> tab. Select a simulator with the corresponding version of iOS you wish to use.</p>
93<p>If you are using Xcode version 14.0 or greater to install a simulator, open <strong>Xcode > Settings > Platforms</strong> tab, then click "+" icon and select <strong>iOS…</strong> option.</p>
94<h4 class="anchor anchorWithStickyNavbar_JmGV" id=cocoapods>CocoaPods<a href=#cocoapods class=hash-link aria-label="Direct link to CocoaPods" title="Direct link to CocoaPods"></a></h4>
95<p><a href=https://cocoapods.org/ target=_blank rel="noopener noreferrer">CocoaPods</a> is one of the dependency management system available for iOS. CocoaPods is a Ruby <a href=https://en.wikipedia.org/wiki/RubyGems target=_blank rel="noopener noreferrer">gem</a>. You can install CocoaPods using the version of Ruby that ships with the latest version of macOS.</p>
96<p>For more information, please visit <a href=https://guides.cocoapods.org/using/getting-started.html target=_blank rel="noopener noreferrer">CocoaPods Getting Started guide</a>.</p>
97<h3 class="anchor anchorWithStickyNavbar_JmGV" id=optional-configuring-your-environment>[Optional] Configuring your environment<a href=#optional-configuring-your-environment class=hash-link aria-label="Direct link to [Optional] Configuring your environment" title="Direct link to [Optional] Configuring your environment"></a></h3>
98<p>Starting from React Native version 0.69, it is possible to configure the Xcode environment using the <code>.xcode.env</code> file provided by the template.</p>
99<p>The <code>.xcode.env</code> file contains an environment variable to export the path to the <code>node</code> executable in the <code>NODE_BINARY</code> variable.
100This is the <strong>suggested approach</strong> to decouple the build infrastructure from the system version of <code>node</code>. You should customize this variable with your own path or your own <code>node</code> version manager, if it differs from the default.</p>
101<p>On top of this, it's possible to add any other environment variable and to source the <code>.xcode.env</code> file in your build script phases. If you need to run script that requires some specific environment, this is the <strong>suggested approach</strong>: it allows to decouple the build phases from a specific environment.</p>
102<div class="theme-admonition theme-admonition-info admonition_WCGJ alert alert--info"><div class=admonitionHeading_GCBg><span class=admonitionIcon_L39b><svg viewBox="0 0 14 16"><path fill-rule=evenodd d="M7 2.3c3.14 0 5.7 2.56 5.7 5.7s-2.56 5.7-5.7 5.7A5.71 5.71 0 0 1 1.3 8c0-3.14 2.56-5.7 5.7-5.7zM7 1C3.14 1 0 4.14 0 8s3.14 7 7 7 7-3.14 7-7-3.14-7-7-7zm1 3H6v5h2V4zm0 6H6v2h2v-2z"/></svg></span>info</div><div class=admonitionContent_pbrs><p>If you are already using <a href=https://nvm.sh/ target=_blank rel="noopener noreferrer">NVM</a> (a command which helps you install and switch between versions of Node.js) and <a href=https://ohmyz.sh/ target=_blank rel="noopener noreferrer">zsh</a>, you might want to move the code that initialize NVM from your <code>~/.zshrc</code> into a <code>~/.zshenv</code> file to help Xcode find your Node executable:<div class="language-zsh codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>zsh</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-zsh codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">export NVM_DIR="$HOME/.nvm"</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain">[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh" # This loads nvm</span><br></span></code></pre></div></div><p>You might also want to ensure that all "shell script build phase" of your Xcode project, is using <code>/bin/zsh</code> as its shell.</div></div>
103<h3>That's it!</h3>
104<p>Congratulations! You successfully set up your development environment.</p>
105<center><img src=/docs/assets/GettingStartedCongratulations.png width=150></center>
106<h2>Now what?</h2>
107<ul>
108<li>If you want to add this new React Native code to an existing application, check out the <a href=/docs/integration-with-existing-apps>Integration guide</a>.</li>
109<li>If you're curious to learn more about React Native, check out the <a href=/docs/getting-started>Introduction to React Native</a>.</li>
110</ul></div></div></div></div><div role=tabpanel class=tabItem_wHwb hidden><h4 class="anchor anchorWithStickyNavbar_JmGV" id=target-os-1>Target OS<a href=#target-os-1 class=hash-link aria-label="Direct link to Target OS" title="Direct link to Target OS"></a></h4><div class="tabs-container tabList_J5MA"><ul role=tablist aria-orientation=horizontal class="tabs pill-tabs"><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_l0OV tabs__item--active">Android<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_l0OV">iOS</ul><div class=margin-top--md><div role=tabpanel class=tabItem_wHwb><h2>Installing dependencies</h2>
111<p>You will need Node, the React Native command line interface, a JDK, and Android Studio.</p>
112<p>While you can use any editor of your choice to develop your app, you will need to install Android Studio in order to set up the necessary tooling to build your React Native app for Android.</p>
113<h3 id=jdk>Node, JDK</h3>
114<p>We recommend installing Node via <a href=https://chocolatey.org/install target=_blank rel="noopener noreferrer">Chocolatey</a>, a popular package manager for Windows.</p>
115<p>It is recommended to use an LTS version of Node. If you want to be able to switch between different versions, you might want to install Node via <a href=https://github.com/coreybutler/nvm-windows target=_blank rel="noopener noreferrer">nvm-windows</a>, a Node version manager for Windows.</p>
116<p>React Native also requires <a href=https://openjdk.java.net/projects/jdk/17/ target=_blank rel="noopener noreferrer">Java SE Development Kit (JDK)</a>, which can be installed using Chocolatey as well.</p>
117<p>Open an Administrator Command Prompt (right click Command Prompt and select "Run as Administrator"), then run the following command:</p>
118<div class="language-powershell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>powershell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-powershell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">choco install -y nodejs-lts microsoft-openjdk17</span><br></span></code></pre></div></div>
119<p>If you have already installed Node on your system, make sure it is Node 18 or newer. If you already have a JDK on your system, we recommend JDK17. You may encounter problems using higher JDK versions.</p>
120<blockquote>
121<p>You can find additional installation options on <a href=https://nodejs.org/en/download/ target=_blank rel="noopener noreferrer">Node's Downloads page</a>.</p>
122</blockquote>
123<blockquote>
124<p>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 <code>{project root folder}\android\gradle\wrapper\gradle-wrapper.properties</code> and changing the <code>distributionUrl</code> value to upgrade the Gradle version. You can check out <a href=https://gradle.org/releases/ target=_blank rel="noopener noreferrer">here the latest releases of Gradle</a>.</p>
125</blockquote>
126<h3>Android development environment</h3>
127<p>Setting up your development environment can be somewhat tedious if you're new to Android development. If you're already familiar with Android development, there are a few things you may need to configure. In either case, please make sure to carefully follow the next few steps.</p>
128<h4 id=android-studio>1. Install Android Studio</h4>
129<p><a href=https://developer.android.com/studio/index.html target=_blank rel="noopener noreferrer">Download and install Android Studio</a>. While on Android Studio installation wizard, make sure the boxes next to all of the following items are checked:</p>
130<ul>
131<li><code>Android SDK</code></li>
132<li><code>Android SDK Platform</code></li>
133<li><code>Android Virtual Device</code></li>
134<li>If you are not already using Hyper-V: <code>Performance (Intel ® HAXM)</code> (<a href=https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html target=_blank rel="noopener noreferrer">See here for AMD or Hyper-V</a>)</li>
135</ul>
136<p>Then, click "Next" to install all of these components.</p>
137<blockquote>
138<p>If the checkboxes are grayed out, you will have a chance to install these components later on.</p>
139</blockquote>
140<p>Once setup has finalized and you're presented with the Welcome screen, proceed to the next step.</p>
141<h4 id=android-sdk>2. Install the Android SDK</h4>
142<p>Android Studio installs the latest Android SDK by default. Building a React Native app with native code, however, requires the <code>Android 15 (VanillaIceCream)</code> SDK in particular. Additional Android SDKs can be installed through the SDK Manager in Android Studio.</p>
143<p>To do that, open Android Studio, click on "More Actions" button and select "SDK Manager".</p>
144<p><img decoding=async loading=lazy alt="Android Studio Welcome" src=/assets/images/GettingStartedAndroidStudioWelcomeWindows-ce20d1230828a1a26e143e3a4145f1df.png width=786 height=593 class=img_SS3x></p>
145<blockquote>
146<p>The SDK Manager can also be found within the Android Studio "Settings" dialog, under <strong>Languages & Frameworks</strong> → <strong>Android SDK</strong>.</p>
147</blockquote>
148<p>Select the "SDK Platforms" tab from within the SDK Manager, then check the box next to "Show Package Details" in the bottom right corner. Look for and expand the <code>Android 15 (VanillaIceCream)</code> entry, then make sure the following items are checked:</p>
149<ul>
150<li><code>Android SDK Platform 35</code></li>
151<li><code>Intel x86 Atom_64 System Image</code> or <code>Google APIs Intel x86 Atom System Image</code></li>
152</ul>
153<p>Next, select the "SDK Tools" tab and check the box next to "Show Package Details" here as well. Look for and expand the <code>Android SDK Build-Tools</code> entry, then make sure that <code>35.0.0</code> is selected.</p>
154<p>Finally, click "Apply" to download and install the Android SDK and related build tools.</p>
155<h4>3. Configure the ANDROID_HOME environment variable</h4>
156<p>The React Native tools require some environment variables to be set up in order to build apps with native code.</p>
157<ol>
158<li>Open the <strong>Windows Control Panel.</strong></li>
159<li>Click on <strong>User Accounts,</strong> then click <strong>User Accounts</strong> again</li>
160<li>Click on <strong>Change my environment variables</strong></li>
161<li>Click on <strong>New...</strong> to create a new <code>ANDROID_HOME</code> user variable that points to the path to your Android SDK:</li>
162</ol>
163<p><img decoding=async loading=lazy alt="ANDROID_HOME Environment Variable" src="data:image/png;base64,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" width=653 height=165 class=img_SS3x></p>
164<p>The SDK is installed, by default, at the following location:</p>
165<div class="language-powershell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>powershell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-powershell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">%LOCALAPPDATA%\Android\Sdk</span><br></span></code></pre></div></div>
166<p>You can find the actual location of the SDK in the Android Studio "Settings" dialog, under <strong>Languages & Frameworks</strong> → <strong>Android SDK</strong>.</p>
167<p>Open a new Command Prompt window to ensure the new environment variable is loaded before proceeding to the next step.</p>
168<ol>
169<li>Open powershell</li>
170<li>Copy and paste <strong>Get-ChildItem -Path Env:\</strong> into powershell</li>
171<li>Verify <code>ANDROID_HOME</code> has been added</li>
172</ol>
173<h4>4. Add platform-tools to Path</h4>
174<ol>
175<li>Open the <strong>Windows Control Panel.</strong></li>
176<li>Click on <strong>User Accounts,</strong> then click <strong>User Accounts</strong> again</li>
177<li>Click on <strong>Change my environment variables</strong></li>
178<li>Select the <strong>Path</strong> variable.</li>
179<li>Click <strong>Edit.</strong></li>
180<li>Click <strong>New</strong> and add the path to platform-tools to the list.</li>
181</ol>
182<p>The default location for this folder is:</p>
183<div class="language-powershell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>powershell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-powershell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token plain">%LOCALAPPDATA%\Android\Sdk\platform-tools</span><br></span></code></pre></div></div>
184<h2>Preparing the Android device</h2>
185<p>You will need an Android device to run your React Native Android app. This can be either a physical Android device, or more commonly, you can use an Android Virtual Device which allows you to emulate an Android device on your computer.</p>
186<p>Either way, you will need to prepare the device to run Android apps for development.</p>
187<h3>Using a physical device</h3>
188<p>If you have a physical Android device, you can use it for development in place of an AVD by plugging it in to your computer using a USB cable and following the instructions <a href=/docs/running-on-device>here</a>.</p>
189<h3>Using a virtual device</h3>
190<p>If you use Android Studio to open <code>./AwesomeProject/android</code>, you can see the list of available Android Virtual Devices (AVDs) by opening the "AVD Manager" from within Android Studio. Look for an icon that looks like this:</p>
191<img src=/docs/assets/GettingStartedAndroidStudioAVD.svg alt="Android Studio AVD Manager" width=100>
192<p>If you have recently installed Android Studio, you will likely need to <a href=https://developer.android.com/studio/run/managing-avds.html target=_blank rel="noopener noreferrer">create a new AVD</a>. Select "Create Virtual Device...", then pick any Phone from the list and click "Next", then select the <strong>VanillaIceCream</strong> API Level 35 image.</p>
193<blockquote>
194<p>If you don't have HAXM installed, click on "Install HAXM" or follow <a href=https://github.com/intel/haxm/wiki/Installation-Instructions-on-Windows target=_blank rel="noopener noreferrer">these instructions</a> to set it up, then go back to the AVD Manager.</p>
195</blockquote>
196<p>Click "Next" then "Finish" to create your AVD. At this point you should be able to click on the green triangle button next to your AVD to launch it.</p>
197<h3>That's it!</h3>
198<p>Congratulations! You successfully set up your development environment.</p>
199<center><img src=/docs/assets/GettingStartedCongratulations.png width=150></center>
200<h2>Now what?</h2>
201<ul>
202<li>If you want to add this new React Native code to an existing application, check out the <a href=/docs/integration-with-existing-apps>Integration guide</a>.</li>
203<li>If you're curious to learn more about React Native, check out the <a href=/docs/getting-started>Introduction to React Native</a>.</li>
204</ul></div><div role=tabpanel class=tabItem_wHwb hidden><h2 class="anchor anchorWithStickyNavbar_JmGV" id=unsupported>Unsupported<a href=#unsupported class=hash-link aria-label="Direct link to Unsupported" title="Direct link to Unsupported"></a></h2><blockquote>
205<p>A Mac is required to build projects with native code for iOS. You can use <a href=https://expo.dev/go target=_blank rel="noopener noreferrer">Expo Go</a> from <a href=/docs/environment-setup#start-a-new-react-native-project-with-expo>Expo</a> to develop your app on your iOS device.</p>
206</blockquote></div></div></div></div><div role=tabpanel class=tabItem_wHwb><h4 class="anchor anchorWithStickyNavbar_JmGV" id=target-os-2>Target OS<a href=#target-os-2 class=hash-link aria-label="Direct link to Target OS" title="Direct link to Target OS"></a></h4><div class="tabs-container tabList_J5MA"><ul role=tablist aria-orientation=horizontal class="tabs pill-tabs"><li role=tab tabindex=0 aria-selected=true class="tabs__item tabItem_l0OV tabs__item--active">Android<li role=tab tabindex=-1 aria-selected=false class="tabs__item tabItem_l0OV">iOS</ul><div class=margin-top--md><div role=tabpanel class=tabItem_wHwb><h2 class="anchor anchorWithStickyNavbar_JmGV" id=installing-dependencies>Installing dependencies<a href=#installing-dependencies class=hash-link aria-label="Direct link to Installing dependencies" title="Direct link to Installing dependencies"></a></h2>
207<p>You will need Node, the React Native command line interface, a JDK, and Android Studio.</p>
208<p>While you can use any editor of your choice to develop your app, you will need to install Android Studio in order to set up the necessary tooling to build your React Native app for Android.</p>
209<h3>Node</h3>
210<p>Follow the <a href=https://nodejs.org/en/download/package-manager/ target=_blank rel="noopener noreferrer">installation instructions for your Linux distribution</a> to install Node 18.18 or newer.</p>
211<h3>Java Development Kit</h3>
212<p>React Native currently recommends version 17 of the Java SE Development Kit (JDK). You may encounter problems using higher JDK versions. You may download and install <a href=https://openjdk.java.net target=_blank rel="noopener noreferrer">OpenJDK</a> from <a href=https://adoptopenjdk.net/ target=_blank rel="noopener noreferrer">AdoptOpenJDK</a> or your system packager.</p>
213<h3>Android development environment</h3>
214<p>Setting up your development environment can be somewhat tedious if you're new to Android development. If you're already familiar with Android development, there are a few things you may need to configure. In either case, please make sure to carefully follow the next few steps.</p>
215<h4 id=android-studio>1. Install Android Studio</h4>
216<p><a href=https://developer.android.com/studio/index.html target=_blank rel="noopener noreferrer">Download and install Android Studio</a>. While on Android Studio installation wizard, make sure the boxes next to all of the following items are checked:</p>
217<ul>
218<li><code>Android SDK</code></li>
219<li><code>Android SDK Platform</code></li>
220<li><code>Android Virtual Device</code></li>
221</ul>
222<p>Then, click "Next" to install all of these components.</p>
223<blockquote>
224<p>If the checkboxes are grayed out, you will have a chance to install these components later on.</p>
225</blockquote>
226<p>Once setup has finalized and you're presented with the Welcome screen, proceed to the next step.</p>
227<h4 id=android-sdk>2. Install the Android SDK</h4>
228<p>Android Studio installs the latest Android SDK by default. Building a React Native app with native code, however, requires the <code>Android 15 (VanillaIceCream)</code> SDK in particular. Additional Android SDKs can be installed through the SDK Manager in Android Studio.</p>
229<p>To do that, open Android Studio, click on "Configure" button and select "SDK Manager".</p>
230<blockquote>
231<p>The SDK Manager can also be found within the Android Studio "Settings" dialog, under <strong>Languages & Frameworks</strong> → <strong>Android SDK</strong>.</p>
232</blockquote>
233<p>Select the "SDK Platforms" tab from within the SDK Manager, then check the box next to "Show Package Details" in the bottom right corner. Look for and expand the <code>Android 15 (VanillaIceCream)</code> entry, then make sure the following items are checked:</p>
234<ul>
235<li><code>Android SDK Platform 35</code></li>
236<li><code>Intel x86 Atom_64 System Image</code> or <code>Google APIs Intel x86 Atom System Image</code></li>
237</ul>
238<p>Next, select the "SDK Tools" tab and check the box next to "Show Package Details" here as well. Look for and expand the "Android SDK Build-Tools" entry, then make sure that <code>35.0.0</code> is selected.</p>
239<p>Finally, click "Apply" to download and install the Android SDK and related build tools.</p>
240<h4>3. Configure the ANDROID_HOME environment variable</h4>
241<p>The React Native tools require some environment variables to be set up in order to build apps with native code.</p>
242<p>Add the following lines to your <code>$HOME/.bash_profile</code> or <code>$HOME/.bashrc</code> (if you are using <code>zsh</code> then <code>~/.zprofile</code> or <code>~/.zshrc</code>) config file:</p>
243<div class="language-shell codeBlockContainer_mQmQ theme-code-block" style=--prism-color:#FFFFFF;--prism-background-color:#282C34><div class=codeBlockTitle_kY6l>shell</div><div class=codeBlockContent_t_Hd><pre tabindex=0 class="prism-code language-shell codeBlock_RMoD thin-scrollbar" style=color:#FFFFFF;background-color:#282C34><code class=codeBlockLines_AclH><span class=token-line style=color:#FFFFFF><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable" style=color:#cb4b16>ANDROID_HOME</span><span class="token operator" style=color:#fc929e>=</span><span class="token environment constant" style=color:#5a9bcf>$HOME</span><span class="token plain">/Android/Sdk</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable environment constant" style=color:#5a9bcf>PATH</span><span class="token operator" style=color:#fc929e>=</span><span class="token environment constant" style=color:#5a9bcf>$PATH</span><span class="token builtin class-name" style=color:#fac863>:</span><span class="token variable" style=color:#cb4b16>$ANDROID_HOME</span><span class="token plain">/emulator</span><br></span><span class=token-line style=color:#FFFFFF><span class="token plain"></span><span class="token builtin class-name" style=color:#fac863>export</span><span class="token plain"> </span><span class="token assign-left variable environment constant" style=color:#5a9bcf>PATH</span><span class="token operator" style=color:#fc929e>=</span><span class="token environment constant" style=color:#5a9bcf>$PATH</span><span class="token builtin class-name" style=color:#fac863>:</span><span class="token variable" style=color:#cb4b16>$ANDROID_HOME</span><span class="token plain">/platform-tools</span><br></span></code></pre></div></div>
244<blockquote>
245<p><code>.bash_profile</code> is specific to <code>bash</code>. If you're using another shell, you will need to edit the appropriate shell-specific config file.</p>
246</blockquote>
247<p>Type <code>source $HOME/.bash_profile</code> for <code>bash</code> or <code>source $HOME/.zprofile</code> to load the config into your current shell. Verify that ANDROID_HOME has been set by running <code>echo $ANDROID_HOME</code> and the appropriate directories have been added to your path by running <code>echo $PATH</code>.</p>
248<blockquote>
249<p>Please make sure you use the correct Android SDK path. You can find the actual location of the SDK in the Android Studio "Settings" dialog, under <strong>Languages & Frameworks</strong> → <strong>Android SDK</strong>.</p>
250</blockquote>
251<h3>Watchman</h3>
252<p>Follow the <a href=https://facebook.github.io/watchman/docs/install#buildinstall target=_blank rel="noopener noreferrer">Watchman installation guide</a> to compile and install Watchman from source.</p>
253<blockquote>
254<p><a href=https://facebook.github.io/watchman/docs/install target=_blank rel="noopener noreferrer">Watchman</a> is a tool by Facebook for watching changes in the filesystem. It is highly recommended you install it for better performance and increased compatibility in certain edge cases (translation: you may be able to get by without installing this, but your mileage may vary; installing this now may save you from a headache later).</p>
255</blockquote>
256<h2>Preparing the Android device</h2>
257<p>You will need an Android device to run your React Native Android app. This can be either a physical Android device, or more commonly, you can use an Android Virtual Device which allows you to emulate an Android device on your computer.</p>
258<p>Either way, you will need to prepare the device to run Android apps for development.</p>
259<h3>Using a physical device</h3>
260<p>If you have a physical Android device, you can use it for development in place of an AVD by plugging it in to your computer using a USB cable and following the instructions <a href=/docs/running-on-device>here</a>.</p>
261<h3>Using a virtual device</h3>
262<p>If you use Android Studio to open <code>./AwesomeProject/android</code>, you can see the list of available Android Virtual Devices (AVDs) by opening the "AVD Manager" from within Android Studio. Look for an icon that looks like this:</p>
263<img src=/docs/assets/GettingStartedAndroidStudioAVD.svg alt="Android Studio AVD Manager" width=100>
264<p>If you have recently installed Android Studio, you will likely need to <a href=https://developer.android.com/studio/run/managing-avds.html target=_blank rel="noopener noreferrer">create a new AVD</a>. Select "Create Virtual Device...", then pick any Phone from the list and click "Next", then select the <strong>VanillaIceCream</strong> API Level 35 image.</p>
265<blockquote>
266<p>We recommend configuring <a href=https://developer.android.com/studio/run/emulator-acceleration.html#vm-linux target=_blank rel="noopener noreferrer">VM acceleration</a> on your system to improve performance. Once you've followed those instructions, go back to the AVD Manager.</p>
267</blockquote>
268<p>Click "Next" then "Finish" to create your AVD. At this point you should be able to click on the green triangle button next to your AVD to launch it.</p>
269<h3>That's it!</h3>
270<p>Congratulations! You successfully set up your development environment.</p>
271<center><img src=/docs/assets/GettingStartedCongratulations.png width=150></center>
272<h2>Now what?</h2>
273<ul>
274<li>If you want to add this new React Native code to an existing application, check out the <a href=/docs/integration-with-existing-apps>Integration guide</a>.</li>
275<li>If you're curious to learn more about React Native, check out the <a href=/docs/getting-started>Introduction to React Native</a>.</li>
276</ul></div><div role=tabpanel class=tabItem_wHwb hidden><h2 class="anchor anchorWithStickyNavbar_JmGV" id=unsupported-1>Unsupported<a href=#unsupported-1 class=hash-link aria-label="Direct link to Unsupported" title="Direct link to Unsupported"></a></h2><blockquote>
277<p>A Mac is required to build projects with native code for iOS. You can use <a href=https://expo.dev/go target=_blank rel="noopener noreferrer">Expo Go</a> from <a href=/docs/environment-setup#start-a-new-react-native-project-with-expo>Expo</a> to develop your app on your iOS device.</p>
278</blockquote></div></div></div></div></div></div></div><footer class="theme-doc-footer docusaurus-mt-lg"><div class="theme-doc-footer-edit-meta-row row"><div class=editButtons_t0bR><a href=https://github.com/facebook/react-native-website/edit/main/docs/set-up-your-environment.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_bHB7 aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit page for next release</a><a href=https://github.com/facebook/react-native-website/edit/main/website/versioned_docs/version-0.79/set-up-your-environment.md target=_blank rel="noopener noreferrer" class=theme-edit-this-page><svg fill=currentColor height=20 width=20 viewBox="0 0 40 40" class=iconEdit_bHB7 aria-hidden=true><g><path d="m34.5 11.7l-3 3.1-6.3-6.3 3.1-3q0.5-0.5 1.2-0.5t1.1 0.5l3.9 3.9q0.5 0.4 0.5 1.1t-0.5 1.2z m-29.5 17.1l18.4-18.5 6.3 6.3-18.4 18.4h-6.3v-6.2z"/></g></svg>Edit page for current release</a></div><div class=lastUpdated_VsjB><span class=theme-last-updated>Last updated<!-- --> on <b><time datetime=2025-04-14T14:14:17.000Z itemprop=dateModified>Apr 14, 2025</time></b></span></div></div></footer></article><nav class="docusaurus-mt-lg pagination-nav" aria-label="Docs pages"><a class="pagination-nav__link pagination-nav__link--prev" href=/docs/environment-setup><div class=pagination-nav__sublabel>Previous</div><div class=pagination-nav__label>Get Started with React Native</div></a><a class="pagination-nav__link pagination-nav__link--next" href=/docs/integration-with-existing-apps><div class=pagination-nav__sublabel>Next</div><div class=pagination-nav__label>Integration with Existing Apps</div></a></nav></div></div></div></div></main></div></div></div><footer class="theme-layout-footer footer footer--dark"><div class="container container-fluid"><div class="row footer__links"><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Develop</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/docs/getting-started>Guides</a><li class=footer__item><a class=footer__link-item href=/docs/components-and-apis>Components</a><li class=footer__item><a class=footer__link-item href=/docs/accessibilityinfo>APIs</a><li class=footer__item><a class=footer__link-item href=/architecture/overview>Architecture</a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Participate</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/showcase>Showcase</a><li class=footer__item><a class=footer__link-item href=/contributing/overview>Contributing</a><li class=footer__item><a class=footer__link-item href=/community/overview>Community</a><li class=footer__item><a href=https://reactnative.directory/ target=_blank rel="noopener noreferrer" class=footer__link-item>Directory<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://stackoverflow.com/questions/tagged/react-native target=_blank rel="noopener noreferrer" class=footer__link-item>Stack Overflow<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Find us</div><ul class="footer__items clean-list"><li class=footer__item><a class=footer__link-item href=/blog>Blog</a><li class=footer__item><a href=https://x.com/reactnative target=_blank rel="noopener noreferrer" class=footer__link-item>X<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://bsky.app/profile/reactnative.dev target=_blank rel="noopener noreferrer" class=footer__link-item>Bluesky<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://github.com/facebook/react-native target=_blank rel="noopener noreferrer" class=footer__link-item>GitHub<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div><div class="theme-layout-footer-column col footer__col"><div class=footer__title>Explore More</div><ul class="footer__items clean-list"><li class=footer__item><a href=https://react.dev/ target=_blank rel="noopener noreferrer" class=footer__link-item>ReactJS<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://opensource.fb.com/legal/privacy/ target=_blank rel="noopener noreferrer" class=footer__link-item>Privacy Policy<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a><li class=footer__item><a href=https://opensource.fb.com/legal/terms/ target=_blank rel="noopener noreferrer" class=footer__link-item>Terms of Service<svg width=13.5 height=13.5 aria-hidden=true viewBox="0 0 24 24" class=iconExternalLink_2l9O><path fill=currentColor d="M21 13v10h-21v-19h12v2h-10v15h17v-8h2zm3-12h-10.988l4.035 4-6.977 7.07 2.828 2.828 6.977-7.07 4.125 4.172v-11z"/></svg></a></ul></div></div><div class="footer__bottom text--center"><div class=margin-bottom--sm><a href=https://opensource.fb.com/ rel="noopener noreferrer" class=footerLogoLink_tutC><img src=/img/oss_logo.svg alt="Meta Open Source Logo" class="footer__logo themedComponent_siVc themedComponent--light_hHel"><img src=/img/oss_logo.svg alt="Meta Open Source Logo" class="footer__logo themedComponent_siVc themedComponent--dark_yETr"></a></div><div class=footer__copyright>Copyright © 2025 Meta Platforms, Inc.</div></div></div></footer></div>