It’s been a while but high time to continue our blog series on React Native! Our first two blogs covered the topics of ‘React Native and the five key advantages’ and ‘React Native: a brief history’. We are gradually gaining more and more experience in building React Native apps, and we are looking for new colleagues to join us in this adventure. But what makes a good React Native developer? What is the right background: native or web?

Native or web: to each their own challenges

First it’s important to know what exactly React Native is. Put very simply it’s a javascript framework for building native apps, with maximal code sharing between Android and iOS.

From our own experience, we notice that React Native developers often have a web background. This is probably because React Native is in essence a javascript framework, which is a web language. However, it is used in an entirely different setting: there’s no cursor that moves through a web page, you use your finger on a mobile device. That’s a whole new way of working, and hence a whole new way of developing.

Of course native developers can also make the transition to React Native. They won’t face many obstacles in terms of UI (user interface) but the programming language is very new to them. Whatever your background: you will have to overcome some challenges. Either in terms of UI or in terms of technology.

Mixed teams

For our React Native projects, we include native developers very early on in the process. Recently we for example integrated a completely native component in one of the React Native projects we are working on. The native developers maintain the native part of the app, and there is some sort of bridge with the React Native part to easily access the data. We believe there will always be a healthy mix between native and React Native code. Some things just work perfectly in native technology (especially those features closest to the hardware), so there’s no need to begin reinventing these in React Native if you can’t bring any added value. A smooth integration is what you should focus on.

The five must-have skills of a React Native developer

The advantage of working in React Native at a company like icapps is that the expertise to overcome these obstacles is sitting right next to or across from you at the office. Since we have developers for both native (Android and iOS) and web (front-end and back-end) technology, there is always someone to fill in the gaps and give you tips on how to improve your work.

All that talking about obstacles and challenges doesn’t mean you need to be a superhero to successfully master React Native. What you need are these 5 skills:

  1. Adventurous. React Native is still a fairly young technology but that makes it all the more exciting! You’re a pioneer!

  2. Sociable. You will be needing your colleagues, and ideally you work on projects in mixed teams.

  3. Flexible. Don’t go desperately clinging to your ‘own’ platform, this won’t work. We’ve seen Android developers build an iOS app but entirely in the Android style: not exactly a satisfying result. Whereas it’s not that hard to find similarities in style between both native platforms.

  4. Creative. Being a pioneer means that you will sometimes be entering unexplored territory and coming across unexpected problems. You will have to be creative, using your own background and experience or your lovely colleagues to tackle these.

  5. Can-do mentality. It will be hard in the beginning, there’s no denying this. You will be facing a lot of errors. But once you make it past the first week, you will have learned how to avoid these, or you will know how to fix them.

The ultra-all-round-developer

Where’s the fun in all of this? Why not stick to what you are used to? Think about this: you will be the ultra-all-round-developer. Some people like to specialize and that’s great: we need highly-skilled web and native developers. But some people don’t like to choose. They want to do it all, pick a little bit of everything. If that’s you, then React Native is a match made in heaven.