This post is meant to be read in the context of its parent post "Lessons Learned on a React-Native Project". If you've stumbled on this particular page randomly, I'd recommend jumping over to that post and starting from there.

I have a tendency when starting a new technology to skim the doco at best, and just muddle my way through. Let me say right now that this is a bad idea when it comes to React-Native (and probably a bad idea in general now that I think about it). There is so much going on, that if you try just "muddling your way through", you will miss out on a lot of important information and context. My recommendation before starting a React-Native project is to go (at the very least) to the following pages to get a basic introduction to the various components (ha) that make up a React-Native project:

  1. React-Native
    • For... React-Native, obviously! The doco here, while a bit confusing at times in terms of how its laid out, is really good and provides a lot of great information. I'd suggest having a close look at the Styling, Layout, Networking, and FlatList sections as a start.
  2. React
    • The underlying component engine (is that the right term?) that drives React-Native. React-Native tends to assume a lot of knowledge around React itself, so I'd highly suggest getting very familiar with React. I'd pay particular attention to lifecycle methods, as incorrect usage of these can end up having some pretty severe performance implications on your application.
  3. Gradle
    • Getting familiar with the high-level ways in which Gradle works will save you so much time and suffering. Please, read this.
  4. XCode
    • Going in with at least some basic knowledge of this beast of an IDE will help make things easier.
  5. CocoaPods
    • This isn't as essential as the others, as Pod files themselves are fairly straightforward.
  6. Android Studio
    • Similar to my point about XCode, this is another beast of an IDE. I've avoided covering it as Android Studio honestly isn't too bad. It's got some issues (Gradle syncing I found was really painful and inconsistent), but things mostly make sense in terms of when you need to use the IDE, like generating app icons. You'll also want to use Android Studio if you plan on upgrading the version of Gradle that you're using. Word of warning here... This can (obviously lol) change how things compile, so you may get new errors you hadn't seen before. Unless you really need to, I wouldn't update Gradle unless you have to.
  7. React-Native CLI
    • Useful specifically for the commands around logging simulator/device logs, but also gives you some nice context around how the CLI works in general.

Next Section -> "I have no idea how to do effective testing in a React-Native project"