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.
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.
A mini example on how easy is to console something with Reactotron.
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.