Recently I gathered my courage and asked straightaway the following question on Reddit.
“How to level up as a react native developer?”
and I am so glad that I asked, I have got lots of important suggestions and useful guidelines. Here is my attempt to document the discussion in a blog post.
Before going to discuss each point, let me just illustrate the list in one diagram to have a clear idea beforehand.
- Native Module
The most common skill that has been mentioned in the discussion is to have the skill of creating native modules both in iOS & Android. I believe as a react native developer 80–90% of the time we do not really work with any native module. Either we do not need them or we use third-party packages. However, in order to grow and set yourself apart from other RN devs, this is an essential skill.
What & how to learn?
In order to create native modules, we will need to at least grasp the basics of swift and kotlin programming language and play around with them to do small kinds of stuff in the beginning. The best way to learn this skill is to build something useful. There is a very good package that helps start creating a native module very easily. It gives a great boilerplate so that you can just start. The package is called react-native-builder-blob.
2. Animation
Definitely, animation is an important skill if you want to grow yourself in the front-end field. Most of the RN devs can create screens from a design template but when it comes to animation and gestures a lot of us struggle. If you are good with animation, your value automatically increases as an RN dev.
What & how to learn?
The most suggestion was to learn react-native-reanimated, since the animation happens in the native layer and there is no concern about performance. To learn this particular skill, everyone suggested watching William’s Youtube channel or his personal course.
3. React Native Core Architecture
Understanding how RN works under the hood, the bridge, the new fabric renderer, the communication layer, limitations will give you a clear idea and eventually will help you make the right and scalable decisions for your product. A lot of us are working with RN for a long time and we do not even know the core idea of this framework, obviously, to build an app you don’t need to know them, but to level up we should also understand how the framework works.
4. Debugging techniques & Performance
A lot of us are comfortable with the building but when it comes to finding bugs, issues and solving them we tend to be lost. So this one is a vital skill for RN devs to find the root cause of the bugs with proper debugging tools and techniques and resolve them. This skill will set you apart and your team will always rely on your skill. Debugging tools like flipper, reactotron, react-native-debugger, breakpoints are very helpful and effective. At the same time knowing things like measuring the app performance with perf monitor and package like react-native-performace will definitely help you level up.
5. Testing
Writing tests for your apps might be the next most important skill you want to achieve. Often times we just build and do a manual test. It is time-consuming and we miss a lot of scenarios, eventually, our app becomes more buggy and error prone. So to level up our career in this field, this is a must skill that we need to explore. I believe react-native-testing-library is a good place to start.
6. Extending to other platforms
Most of the time we build our apps for iOS and Android platforms. However, we can extend the same code-base to macOS, Web, Windows, etc. Obviously, the other platforms will not work 100% smoothly like android & iOS. If we keep at it and find ways to make our codebase compatible with other platforms, this will definitely give our career a great boost.
7. Expanding our skills horizontally
This was one of my favorite points that came out from the discussion. In order to level up in this field, we should not just focus on RN, rather we can slowly expand our skills in different domains. Those skills will definitely come in handy and help us grow in our fields. For example, we can learn backend — ( maybe enough to create APIs, authentication, etc), DevOps (maybe to host and scale/understand how that works?), UI/UX (maybe we can learn to design in Figma? understand the UX better for our users?), etc etc.
That’s all that came out from the discussion, I am really glad and set some of the goals from the above points. If you are feeling that you are stuck, not growing, you can definitely try to check this list. Hope this helps!