When building a cross-platform app, the need to write different code for different platforms may arise. This can always be achieved by organizing the various components in different folders:
Another option may be naming the components differently depending on the platform they are going to be used in:
```sh
BigButtonIOS.js
BigButtonAndroid.js
```
But React Native provides two alternatives to easily organize your code separating it by platform:
## Platform specific extensions
React Native will detect when a file has a `.ios.` or `.android.` extension and load the right file for each platform when requiring them from other components.
For example, you can have these files in your project:
```sh
BigButton.ios.js
BigButton.android.js
```
With this setup, you can just require the files from a different component without paying attention to the platform in which the app will run.
```javascript
var BigButton = require('./components/BigButton');
```
React Native will import the correct component for the running platform.
## Platform module
A module is provided by React Native to detect what is the platform in which the app is running. This piece of functionality can be useful when only small parts of a component are platform specific.