My basic settings in React Native projects
August 18, 2019 • ☕️ 4 min read
Heeeeeeeey Coders!!
Today I want to show you my main basic settings I use when starting a project in React Native from scratch.
ESLint e Prettier
To start with, let’s go with them, our little friends ESLint and Prettier that you’ve seen here on the blog, so just follow the steps of the previous tutorial, Configuring ESlint and Prettier on ReactJS and React Native.
Reactotron
If you don’t know what Reactotron is, it’s used to inspect code in ReactJS and React Native, I think it can still be much more useful for React Native than for ReactJS, and for me it’s essential in my projects. If you still had this difficulty understanding what Reactotron is, it may be that later on I will bring an article about it.
Okay, now let’s to code:
Step 1: To start with, add the Reactotron dependencies, this includes not only Reactotron itself, but the Reactotron dependencies with Redux and Redux Saga. So make sure you have Redux and Redux Saga installed, if not, install them first like this:
yarn add reactotron-react-nativeNow the Reacotron + Redux + Redux Saga dependencies:
yarn add reactotron-react-native reactotron-redux reactotron-redux-sagaStep 2: Create a
configfolder inside thesrcfolder of your project;
Step 3: Inside the
configfolder create a file calledReactotronConfig.js, the structure should look like this:
your-project-rn
├── src/
│ ├── config/
│ │ └── ReactotronConfig.jsStep 4: Inside the
ReactotronConfig.jsfile paste the code:
import Reactotron from 'reactotron-react-native';
if (__DEV__) {
const tron = Reactotron.configure()
.useReactNative()
.connect();
console.tron = tron;
tron.clear();
}Note: Notice to Android friends, if by any chance your project information is not showing up on your Reactotron Desktop, add your computer ip to Reactotron.configure (), like this:
import Reactotron from 'reactotron-react-native';
if (__DEV__) {
const tron = Reactotron.configure({ host: 'your-ip' }) .useReactNative()
.connect();
console.tron = tron;
tron.clear();
}Step 5: Import ReactotronConfig into the project’s index:
import React from 'react';
import { StatusBar } from 'react-native';
import './config/ReactotronConfig';
import Routes from './routes';
export default function App() {
return (
<Routes />
);
}Note: Remember to import it before ALL non-React imports.
React Native Gesture Handler
Gesture Handler is a very famous library used to recognize gestures made on the cell phone by React Native, such as tweezers movement etc.
Step 1: Installing:
yarn add react-navigation react-native-gesture-handlerStep 2: Linking:
react-native link react-native-gesture-handlerStep 3: For Android there’s one more step, so I left the link that takes you straight to the React Native Gesture Handler page with the steps you have to do, it is recommended to do what is passed on the official site, because this information may change , so I won’t copy and paste here.
Below the link:
https://kmagiera.github.io/react-native-gesture-handler/docs/getting-started.html#android
Styled-Components
Well, for starters, I want to make clear my great passion for stylish components, I can no longer style anything without using Styled-Components. I don’t want ~want~ to go into too much detail, because I want to bring a unique article about it, but in short, Styled-Components is used to make stylizations using JS files.
Step 1: Installing:
yarn add styled-componentsVector Icons
As its name implies, it’s an easy way to work with Icone on React Native.
Step 1: Installing:
yarn add react-native-vector-iconsStep 2: Linking:
react-native link react-native-vector-iconsStep 3: How to use:
import React from 'react';
import { View } from 'react-native';
import Icon from 'react-native-vector-icons/MaterialIcons';
export default function Main({ navigation }) {
return (
<View>
<Icon name="add" size={20} color="#FFF" /> </View>
);
}Async Storage
Async Storage is React Native’s Local Storage, it is like a local database to save some data, but using the storage itself.
Passo 1: Installing:
yarn add @react-native-community/async-storagePasso 2: Linking:
react-native link @react-native-community/async-storageFinishing
So Coders, that’s it, as I increase this list I’m adding here, and soon I want to add the Redux part here, plus the organization of my folders.
But I hope this all helps somehow, until next time!
