When you are building apps with React Native and have no mobile background experience, you probably need a bit of help to make things easier, being good at Javascript won’t be enough, that’s why I’m writing this short post, I won’t mention popular tools like Redux, Jest, Flow etc as they are not just to work with React Native, they can be used on any Javascript environment.

Expo

At the moment seems like there is no sense to build a React Native app without it, if it wans't for Expo, this post would include much more tools and helpers but Expo gives you su much, that you can skip a lot of extra steps, some of the manny bennefits are list bellow.

Reactotron

I won't say debugging a react native app is the most pleasant experience, I wrote a post on how to do it with the common tools which are not too bad I guess, however, there is an actual app that goes further called Reactotron

Reactotron is easy to get running, it has a great visual interface which helps you see all data coming from the server, HTTP calls, it can be hook with redux so you can keep track off your actions and how they are being called, you can inspect and edit stuff as well.

If you like to have everything controlled on your text editor, there is an extra plugging called openInEditor which allows you click on the error line of code to have the file open in your editor.

reactotron with react native

A mini example on how easy is to console something with Reactotron.

import Reactotron from 'reactotron-react-native';

......

Reactotron.log('Hello 123')

Bugsnag

Bugsnag helps you detect both native OS and JavaScript errors in your React Native apps for IOS and Android. It can be added anywhere in your Js code, you will then get notification emails with a link to a file which explains the problem in more depth.

There is a repo which guides you on how to get started and best uses cases. After creating an account and following the configuration instructions, getting it to work is pretty straightforward.

.......
  .catch((error) => {
    bugsnag.notify(error);
  });

Create React Native App

If you are building an app from scratch, Create React Native App gives you a nice minimalistic setup to get you start and running ( the react community did a fine job putting this one together). It comes with Expo which is great but still gives you the option to build your app with Xcode or an Android emulator like Genymotion by running the common commands npm run ios or npm run android.

You can choose to use npm or yarn, it has test integrated with jest-expo, this doc will give you a nice guide on what you can do and how. Create React Native App it is not opinionated in the sense on how you organize your files, it doesn't come with redux either, you will have to do all that job yourself.