# File Structure in React Native Explained

Hey folks, today we'll look into the folder structure of a react-native boilerplate application. So let's get into it.

![](https://cdn.hashnode.com/res/hashnode/image/upload/v1681399570548/e7603938-65eb-4cab-b54b-42122ef910a7.png align="center")

1. **\_tests**
    
    The tests folder contains all the files used to test our application. This is the folder where testers will write the test cases.
    
2. **.bundle**
    
    This contains some configurations that we rarely touch upon.
    
3. **.vscode**
    
    It contains your workplace's settings.
    
4. android
    
    This contains files related to the android application.
    
5. ios
    
    Similar to android files but for ios.
    
6. node\_modules
    
    If you're a JavaScript Developer, you probably won't need an introduction to node\_modules 😆. It contains packages that our project depends upon.
    
7. eslintrc.js
    
    It contains some linting configurations for following the best practices.
    
8. .gitignore
    
    Unnecessary files that we don't want to push to the GitHub repository is included here.
    
9. .node-version
    
    It contains the version of node.js we're using.
    
10. .prettierrc.js
    
    It contains configurations for developer specifications for ease of coding.
    
11. .ruby-version
    
    This file is used for specific ios version configuration.
    
12. .watchmanconfig
    
    A tool that watches the code changes and updates the UI.
    
13. app.json
    
    This contains configuration for android and ios applications.
    
14. app.tsx
    
    The starting file of our application brings the face of our application.
    
15. babel.config.js
    
    It bundles the different JavaScript files and makes one file.
    
16. Gemfile
    
    A ruby-based file used for ios development
    
17. index.js
    
    The first file contains a single file(App.tsx) that contains all the components.
    
18. metro.config.js
    
    A bundler used by Babel.
    
19. package-lock.json
    
    The package-lock. json is **a lockfile** that holds information on the dependencies or packages installed for a node. js project, including their exact version numbers.
    
20. package.json
    
    This contains information about our application and also contains the necessary dependencies our project is using.
    
21. tsconfig.js
    
    Contains the path of the file that provides the types.
    

Huh 😑, that's a big one. But not to worry, we will only work on some important files and build our application. In the next blog, we'll build our first "The Hello World!" 😁 application.
