Productivity

1. Hotloading

One thing I noticed about ReactNative in general is that even if you have both the iOS and Android simulators up, only one will hot reload. I’m not sure if this is getting fixed but there’s a straightforward work around at the moment, which is running the react-native dev server on two ports (and pointing iOS at the second port you set up), here are the instructions. I originally thought having all three platforms hot reloading would be awesome for development, but I’ve found myself mostly only having one platform up at a time, or web + one mobile at best.

There is a use I have found for hot reloading all three platforms though, and that’s when you want to demo this system’s capability. You can talk about how productive this workflow is until you’re blue in the face, but simply changing a line of code and showing all three apps changing simultaneously gets your point across more succinctly.

2. Loading your dev environment

There can be a lot to set up each time you want to develop. Start up two servers, start up the iOS and android emulators, wait a minute for the android emulator to load then run react-native run-android. I recommend scripting the process. I used Alfred App.

So that’s my initial roundup. With this being a reasonably new and low documented library I was a little worried about spending a lot of time struggling against it to get things working. Whilst you need some experience in the react stack (including an understanding of webpack and babel), and will have to solve some problems without having a top quality walkthrough to reference, overall I’ve found this structure to be a pleasure to work with and unparalleled in output.

This is a new space and best practices and processes are still being figured out. Discussion and disagreement will be essential to pave the way to having strong resources in place that we can point to. If there’s any knowledge you want to share or parts you disagree with, I encourage you to get involved, and we can all figure this out together.