Hey dear fellow developers, I have been working as a React Native developer since 2018 and I would like to share my experience on how I managed to start my React Native journey.
I am sharing this article because this is NOT about a quick and step by step guide to set up the development environment or blah blah blah, rather I have mentioned the basic steps to follow on how to become a React Native developer. If you are a beginner and familiar of any programming language then you would be able to follow :-
I have mentioned 8 steps in a well ordered manner to start developing applications using React Native.
First of all you must have a knowledge of the topics described below before you start developing any software/application to write a clean code base which can be easily readable and have optimised performance.
Best Practices for Coding Standards: https://code.tutsplus.com/tutorials/top-15-best-practices-for-writing-super-readable-code--net-8118
Algorithms & Data Structures: https://www.tutorialspoint.com/data_structures_algorithms/data_structures_basics.htm
Concept of Object Oriented Programming (OOP) : https://dev.to/charanrajgolla/beginners-guide---object-oriented-programming
Note: If you already have some knowledge of how to develop web pages, you can skip this step
Yes of course, You might be thinking right now, why you need to learn web development to become a mobile developer. The answer is, React Native code includes something very similar to create user interfaces. The plus point here is if you know how to utilize your HTML and CSS to make attractive UIs then learning React Native will be a piece of cake because before starting React Native I was a web developer and it took me just a few days to understand it.
Learning Resource: https://www.w3schools.com/html/default.asp
These days Javascript is a very popular programming language to develop attractive UIs as well as Backend things. To develop mobile applications in react native Javascript is used, that’s why a strong understanding of Javascript is essential. Moreover, learning the ECMAScript (ECMAScript is the scripting language that forms the basis of JavaScript) ES6/7/8 syntaxes will help you to groom the ability to perform complex tasks easily.
Learning Resources:
Basic Javascript: https://www.w3schools.com/js/
Advanced Javascript: https://javascript.info/
ES7: https://medium.freecodecamp.org/ecmascript-2016-es7-features-86903c5cab70
When trying to create a simple application using React Native, you’ll know that the NodeJS environment is a prerequisite to install in your local machine/computer. That is because React Native uses NodeJs to compile/build your Javascript code and also the NPM (Node Package Manager) which will be used to install third party dependencies/libraries. That’s why having a sound knowledge on NodeJs and NPM is compulsory.
Learning Resources:
Node Js documentation: https://nodejs.org/en/docs/
NPM documentation: https://docs.npmjs.com/
I will recommend you, before going into React Native, learn the basics of React Js. Because by doing this, you will gain an understanding of the React JS component lifecycle and JSX which will also be used in React Native. However, you don’t need to spend too much time to learn React Js, once you get a basic understanding you should jump to the next step.
Learning Resources :
React Js Documentation: https://reactjs.org/docs/getting-started.html
React Js Crash Course: https://www.youtube.com/watch?v=Ke90Tje7VS0
Once you have a bit of knowledge of React Js, you will get to know what the ‘state’ is in React and you will realize how hard it is to manage it. Redux is a library to manage the state which is used by React and other Javascript applications to handle the state management of the applications. Redux is used exactly in the same way for both React and React Native applications so it is very important to have a good knowledge of Redux.
Learning Resources:
Redux Basics: https://redux.js.org/basics
Redux Usage with React: https://redux.js.org/basics/usagewithreact
If you have followed and read the above mentioned courses, you will have a solid understanding and now you are ready to get started developing the mobile applications using React Native :)
I will recommend you to read and follow the official documentation of the React Native. Since you have already learned React Js, most of the concepts in React Native have already been solved so you will be able to learn it quickly.
(Note: Do not forget to learn how react native actually works)
Learning Resources:
React Native Documentation: https://facebook.github.io/react-native/docs/getting-started
Recommended Udemy Course: https://www.udemy.com/the-complete-react-native-and-redux-course/
React Native Crash Course: https://www.youtube.com/watch?v=6ZnfsJ6mM5c
To debug the application easily, you can use the React Native debugger: https://github.com/jhen0409/react-native-debugger
Navigation, as the name explains everything which means to move from one place to another. Navigation in React Native has exactly the same meanings to move one screen to another and it is a major thing which is needed in any mobile application. There are many other libraries for navigation but I personally used it. It is very easy to get started with and incorporates effective navigation in React Native apps that is the reason I am going to recommend this. Moreover, it has a well explained documentation.
Learning Resources :
React Navigation Documentation: https://reactnavigation.org/docs/en/getting-started.html
Alternatives: https://reactnavigation.org/docs/en/alternatives.html
Further reading: https://www.toptal.com/react#hiring-guide
Finally!
I am assuming :)
If you are reading this step then you will be able to develop a basic React Native application. I have just provided a basic knowledge of how to start development of mobile applications using React Native and it is completely up to you to explore and go beyond the basics.
A bunch of Thanks for reading this article and I hope it helped you at least a little bit :)
If you need any help regarding React JS / React Native the feel free to ping me on: wikramdas0@gmail.com OR contact@wikramdas.com