As a junior developer at Mäd, I've been learning React Native for the last the last few months. I've always liked to develop mobile apps, especially developing for iOS (with Swift). But the fact that with React Native, I can create both iOS and Android apps with the same code is pretty awesome.
React Native is quite similar to React.js, we write code very much like we do for the web. This means that the coding is straightforward and easy to learn. Understanding the basic concepts such as components, props, and states goes a long way to picking up React Native.
After I became proficient on the UI development, I then started to tackle the basic concepts such as components, props, and states. This enabled me to store values from a screen and ten pass values between screen to screen or from a parent to a child component. I also started exploring the vast library of React Native libraries such as react-navigation and FastImage.
My other positive experience with React Native is from the wider development community. During my work I've had to do a lot of research for useful libraries or certain errors that I hadn't encountered before. I found that there was a huge amount of available documentation, and plenty of forums where I could ask for help or advice.
Once I had the basics down, I then started on integrating Firebase, which is a Platform-As-A-Service offered by Google. At its core, it provides a scalable realtime database that can be used to store data and sync it across multiple clients. It comes with lots of SDKs and great documentation. Initially I ran into a couple of integration issues, but I was up and running quite quickly.
Lastly, I also learned react-redux, which makes sure that I don't have to declare the state in every screen, which makes the code more easy to maintain if there are changes later on in the development. Redux helps to store global states that I can use for other parts of the app.
All in all, React Native is a really powerful framework for building mobile applications, and a great choice for those projects that don't require lots of native phone functionalities. It is suitable for projects where the client wants a faster deployment and doesn't have a large budget.
It's also a great eye-opening experience for a junior developer like myself to gain experience, while being supported by the other dozen React Native developers at Mäd.