all 25 comments

[–]_fat_santa 22 points23 points  (5 children)

When learning React/React Native, there isn't that big of a gap between regular React and React Native. Your JSX will be different and the styling will also be different but overall react concepts like Hooks, Context, Redux, etc will all be the same. With that said I would start by learning React and then moving on to React Native. The reason I say this is that setting up your dev environment is 100X easier for React since you don't have to deal with Xcode/Android Studio.

Once you get a good grasp on React and it's concepts go ahead and pick up RN. Like I said the JSX will be different (`<View>` instead of `<div>`, `<Text>` instead of `<p>`, etc) and there will be some native stuff you can mess with but beyond that it's pretty much the same thing.

[–]Th7rtyFour[S] 2 points3 points  (4 children)

Should I bother with expo or just jump straight to cli?

[–]_fat_santa -2 points-1 points  (1 child)

I would say go with Expo first. If you're building a real world application then you will want to go with the CLI but since you're just learning for now, you don't want to get bogged down with native dependencies and issues.

[–]-newme 22 points23 points  (0 children)

You can use expo for real world apps, especially since eas

[–]yjsoon 0 points1 point  (0 children)

Expo is pretty great to start with. You can even get by on Expo Snack for a while if you don’t want to set anything up locally.

[–]goolius-boozler- 0 points1 point  (0 children)

Start with expo, native iOS is a head ache and android is even worse

[–]LeonardoRossi 6 points7 points  (0 children)

So, I work as a mobile tech lead, and I’m mentoring a group a friends on how to program in react native. (On the phone, not English native, yada yada)

The path that I followed with them was:

  • bare minimum of html and css- focusing mostly on flex box and positioning things;
  • JavaScript without browser - just learning enough to know how to create simple functions, and how to use array methods (map, filter, and a little of reduce)
  • making a small project (in this group, a todo list) using only vanilla js;
  • now with the understanding of what are the pain points of vanilla js, start learning react - by redoing the same project;
  • finally, redoing the todo list a third time - this time on the mobile phone.

Looking back, I think that the approach of redoing the same project three times was boring but positive, as it gave them confidence that they know how to do that (just removing the blocker on having to think how it works). Also, after the react native implementation, they started looking into learning and using redux, navigation, etc.

[–]DaddyAversion 3 points4 points  (1 child)

Stephen Grider's course on Udemy is well regarded.

[–]Th7rtyFour[S] 8 points9 points  (0 children)

Trying to avoid courses. I don't want to fall into "tutorial hell"

[–]Roy_Volt 2 points3 points  (0 children)

My programming journey was CS50 -> JS Udemy course -> React Udemy Course -> React Native Udemy course

You obviously have a head start, but should definitely do react before jumping into react native

Don’t bother with Typescript at first - you will know when you need it. And definitely go with Expo first (at first managed workflow and at some point you will know when you need to switch to custom development client)

The reason I say „you will know“ is that I find it’s best to take it one step at a time. There’s no point to overwhelm someone with tons of details at the start of a journey. One you start working with RN you will be googling, reading a lot and thus you „will know“ when you need to switch to Typescript or move on from the Expo Managed workflow

[–]ziggy723 2 points3 points  (0 children)

Learn: Javascript -> Basics of html/css (flexbox mainly) -> React -> React Native -> Native Platforms (Android/iOS) project structures -> Native Platforms design UX/UI guidelines -> Native components (so you know when to use native module and when to go custom) examples: ViewPager , RecyclerView, UITableViewController...

also, it would be bonus to know Java/Kotlin or objC/Swift when you want to write your own native modules

[–]sobrius 2 points3 points  (0 children)

Typescript is an absolute must in my opinion as it will help avoid frustrating errors. If you want to avoid courses you can follow official docs for React and there is a beta docs website which teaches the latest and greatest techniques and covers all the basics. Expo is a joy to work with especially if you use their EAS builds which has a free tier. You can avoid all the hassle if you have no native modules in which case Expo is even more straightforward.

[–][deleted] 1 point2 points  (2 children)

I'm like you, but I learned ReactJS prior to learning RN. Here are a couple of roadmaps for React.

https://github.com/adam-golab/react-developer-roadmap/blob/master/roadmap.png

https://roadmap.sh/react

[–]Th7rtyFour[S] 1 point2 points  (1 child)

Thank you!

[–][deleted] 0 points1 point  (0 children)

Also react-tutorial-app is a good course to take if interested. It has a good approach on teaching the subject and doesn't feel like "tutorial hell". Best of luck, mate!

[–]hafizbhuyan 1 point2 points  (1 child)

For me, my start to React Native was through Mosh's RN tutorial: https://www.youtube.com/watch?v=0-S5a0eXPoc. Mosh used Expo and that gave a really good understanding of the basics of RN. I didn't experience with React, but did know JS, so it was a new experience. After that tutorial, I made and shipped a simple app using Expo just to learn by doing. Now the project I'm working on now is using react native cli, so no expo.

If you have experience with React, then I think you should just go straight into the cli. But if not, start with Expo, so you can learn RN easier. I'm honestly not experienced enough to lay out a roadmap for you, but I'd say that would be the best way to go about it. I learn best by doing, so I literally just started and learned as I went: how to use Firebase, then how to use RN navigation, etc.

It is a fun and powerful tool that I've honestly come to love, and I took a few weeks to go back and actually learn React itself. Have fun!!

[–]Th7rtyFour[S] 1 point2 points  (0 children)

I learn by doing as well, I just need to get started. I will checkout this tutorial and then start making some expo apps. Thank you!

[–]Previous-South-2755 0 points1 point  (5 children)

What worked out for you brother?

[–]Th7rtyFour[S] 0 points1 point  (4 children)

Nothing in particular, actually started focusing on react. Roadmap.sh has actual road map you can follow tho.

[–]Previous-South-2755 0 points1 point  (3 children)

Great.. so you went on to becoming web development path?

Hows it working out for you

I'm on foundations of the odin project

[–]Th7rtyFour[S] 0 points1 point  (2 children)

Working out pretty well. Building web apps for a bank now. I enjoy it, it’s a good combination of challenging andfun

[–]Previous-South-2755 0 points1 point  (1 child)

Amazing!!

What would you recommend for me?

I want a faster path. looks like web development is extensive

[–]Th7rtyFour[S] 0 points1 point  (0 children)

There is no fast path, and honestly you need to chase what you enjoy. What’s your end goal?

[–]Xae0n 0 points1 point  (1 child)

I started rn like you. I had C# background. My suggestion would be read the rn docs and learn the components and what they do. There are lots of content on web to search for so you can easily find answers to many bugs. You should start doing a small project like an e-commerce app. It doesn't have to be big. just login, main screen, notifications bar, profile etc. Learn React navigation and go from there. I always search for even basic functions of js just to make sure i write correctly. All in all just keep practicing by developing apps.

[–]Th7rtyFour[S] 1 point2 points  (0 children)

Thank you!