React Native

Having decided to step into the world of Mobile Software Engineering, excited for the satisfaction I’d found in developing iOS apps in XCode and Swift, I embarked upon React Native.

Getting set up took a little while. This is not a simple case of downloading an IDE to use and getting started with your first ‘Hello World’ in your shiny new language. After downloading many packages, languages (I was not expecting to require Python2 for this), and additional Android Studio tools… the emulator was still not working. I had been eager to begin a React Native application and put to the test the knowledge I’d gained about how this all works but I was struggling to get a simple app to load.

I then discovered the glorious Expo. Expo can be installed and run from bash (if Windows’ amazing start bar search will stop hiding my Git Bash from me for some reason – is it because I refuse to enable Cortana to listen in on me at all times in case I happen to mention its name? – perhaps a rambling for another time).

After struggling to get past even the dependency graph load without Expo, I immediately saw the results load on the Android Emulator I had open when I ran ‘expo start’ from within my project folder. I was so pleased that I downloaded the Expo app on a handy iOS device so I could watch both screens update simultaneously as I developed my apps.

I am always impressed at how erm – Reactive – React Native is. I can add a new <TextInput/> into my render function, save, and immediately see a new text input component on both the Android emulator and the iOS device. This is fantastic for ensuring the development of apps which are performant on either OS and perhaps encouraging continous development (ensuring that the changes made could be deployed at any time).

As I’ve been setting up React Native on my current system, the small apps I’ve developed so far have not really been blog-worthy – basic tutorial following and messing with styles etc… I’ll get back to you when I’ve made something somewhat interesting 🙂

Leave a Reply

Your email address will not be published. Required fields are marked *