Basically you need to get familiar with the react ecosystem. Here's some that you would be widely using
- React: Some important concepts here are
- State and Lifecycle
- Lists and keys - this is important in understanding how rendering works.
- Higher order components
- I wouldn't say hooks is necessary to learn but it's something you will come across in a lot of examples. It's ok to not use them IMO.
- Redux: I am assuming you already know about this
- Redux Saga: for async api comms
- React Native: Pretty much uses the same react, redux stuff except for some new interfaces. Some important things to learn here are
- Styling - this is quite different from web. It requires good knowledge of flex box.
- Native components - provides you with an array of components
- Expo: makes react native builds and development easy by offering a wide array of components on top of React Native.
- Understand the different workflows
- React Navigation: your go to navigation library for react-native. Navigation is one of the core functionality that gives a snappy UX so it's important to get familiar with this and stick to a native approach. (There will be some learning curve / boilerplate in integrating these libraries together but that's a one off)
- React Native Elements: some common elements used in an app. It's best to stick with standard elements and use theming to provide colours and such. You can also checkout material design equivalent of this so that you simply stick with a standard component library. Try not to style too much and stick with standard stuff.
- Use a Spacing system: One of the things that heavily affects the user experience is inconsistent spacing, use a proper spacing system. Learn more.
- React Native Community: has a lot of components that you can pick from - you will come across this while going through expo and react-native.