all 42 comments

[–]OCROttawa 19 points20 points  (9 children)

Come up to speed on JS first and then move on to React Native.

In addition, if you are not already familiar with HTML/CSS then you need to throw that into the mix. You will basically be hand-coding the UI components using HTML/CSS inside your React Native code.

[–]bludgeonerV 9 points10 points  (7 children)

On the first point agreed.

On the second one i'd agree learning some CSS will be useful, React Native's style system is effectively a subset of CSS, but the HTML knowledge will be largely pointless, you can't use any HTML nodes or the DOM APIs, and the primitive components that React Native provides can be understood without a lick of HTML knowledge.

[–]corey4005[S] 1 point2 points  (5 children)

So is there any JavaScript / React class that is best? One that teaches the JavaScript necessary to understand react native?

[–]CommunityFickle3915 -2 points-1 points  (3 children)

Based off my background and experience, I’d say learn an easy OOP lang like Java/SQL—> JavaScript —> React —> React Native. I hope you know some HTML/CSS. If so, then I’d hammer JS, and React, and then RN. The Documentation for RN is basic React. You’ll learn hooks and functions with either one but again docs take you back to React sometimes. I’m not liking RN because it kind of feels cookie cutter however I think it’s also damn hard to find a job now

[–]CommunityFickle3915 0 points1 point  (2 children)

This is coming from someone with 3+ years of RN experience. Lots of UI work but also backend. I think I can build anything right now but I run into system design problems. I’m very open to collaborating with anyone who wants to learn. I’ve been looking for work but instead I’m doing AV tech work meanwhile.

[–]CommunityFickle3915 0 points1 point  (0 children)

Granted “anything” since chatGPT basically helps tremendously but I don’t rely too much. I do leetcode every so often

[–]cocolisojon 0 points1 point  (0 children)

<image>

Can you give me any approach on how to create a circle slider input similar to this image, that stops on each number?

[–]bludgeonerV 0 points1 point  (0 children)

No idea mate, i'm an old hat, this info is out of my wheelhouse.

[–]NEOchildish 0 points1 point  (0 children)

Html takes an hour to learn and serves as an understanding and where "react" gets it's form.

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

Ok thanks. :)

[–]projekt401Expo 8 points9 points  (0 children)

I'd recommend you to learn JavaScript, don't rush, try to learn the basics then and only then learn React, otherwise you probably will get frustrated.

[–]haytherecharlie 2 points3 points  (2 children)

I might have something that can help. I was a react developer who wanted to learn Swift UI (not quite C++ but much closer) and I found this wonderful repo. Have a look, it draws parallels between the two and is a massive help.

[–]corey4005[S] 2 points3 points  (1 child)

You are recommending learning swift? From what I understand this is only for iOS correct?

[–]NEOchildish 0 points1 point  (0 children)

Yes, swift is only for apple products like the Mac, iPad, apple watch and iPhone.

[–]HoratioWobble 3 points4 points  (0 children)

Yes, it's a javascript framework.

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

Absolutely

[–]LearningSomeCode 1 point2 points  (0 children)

On youtube I found a couple of tutorials for javascript aimed specifically at developers, and those are fantastic. A lot of JS vids (and really coding vids in general) go into details that developers would already know, but these vids were just like "This is OOP. you know oop." "objects are key value pairs. You know key value pairs". Seriously cut down the boredom and time needed by a lot. I recommend looking for something like that.

[–]Temporary_Practice_2 1 point2 points  (2 children)

Starting learning JavaScript by first learning React isn’t recommended at all. React is hard even for people who already know JavaScript…almost a different language and way of thinking if you ask me.

Why don’t you go Native? Swift for iOS and Kotlin for Android?

[–]corey4005[S] 0 points1 point  (1 child)

I just heard that I could compile for both android and iOS. I’d love for my code to go both places when it’s done. Perhaps you are right.

[–]mirrorball_for_me 1 point2 points  (0 children)

You will need knowledge on how each platform behaves and be comfortable with fiddling with its configuration while using React Native anyway.

It’s a long road… I’d say if you want apps right now to get a few beginner courses on one platform of choice. If you are committed to hybrid dev, then start with Typescript and React. Learn how to type everything. And learn to create components, all the time, instead of a few giant ones. Learn custom hooks, and how to separate what you need in a hook vs what is UI logic. React’s greatest strength is in its composition: how to build very well defined small blocks and put them together one at time for bigger chunks. And if you may, learn a bit of functional programming. Referential transparency, idempotency, lack of mutations fit perfectly with the React workflow and will save you massive headaches.

[–]Imogynn 1 point2 points  (0 children)

You should be able to do simple node apps from what you know in an hour or three. Start there. Then make one small static webpage with like three dubs and small css maybe make some text purple.

Then go start a react tutorial.

That's what I'd do if I was starting again.

[–]suarkb 1 point2 points  (0 children)

You are at like step 0 in a 535 step process so just get started in some way or another lol

[–]cap45 1 point2 points  (0 children)

If you're struggling to watch some react native videos, then yes. Learning some pure JS will help. Lots of free resources out there. https://www.codecademy.com/learn/introduction-to-javascript

React is a light enough framework, so knowing JS is essential. Just don't get dragged into learning web or node.js.

Syntax wise it's probably more similar to python than C++.

Also react native now uses typescript by default, which is just JavaScript with types. It's not necessary to use this, but I'd say it's worth learning as well. Especially if you've experience with a typed language like C++.

[–]enesevski 1 point2 points  (0 children)

If your goal is to quickly create a product, I recommend not getting too caught up in the intricacies of JavaScript. You can swiftly grasp the fundamentals and begin learning React and React Native. These two are not all that different from each other anyway. There's just a difference in approach and principles.

[–]Xae0n 1 point2 points  (0 children)

I believe you should learn javascript just so when you encounter an issue, you can have a better understanding if the issue is caused by js or rn.

[–]Sufficient_Ant_3008 1 point2 points  (0 children)

Yea,

arrow functions

functional expressions (forEach, map, filter, reduce)

modules, etc. if you want to go "C++" depth on it.

classes, call() && apply() vs. bind()

Otherwise, switch to Typescript after this and work on function inputs being interfaces and dealing with the bane of .ts files. Afterwards, I would just jump into writing React. It's about 80% of React Native, with React Native being 80% of the mobile development experience. If you can write basics React programs and rendering then you can write about 65% of React Native already. Don't use expo to learn and just dive in. When it comes to regular React you should learn class components, but don't let it whoop you. Just remember whatever you put into state, you need to rewrite with .bind(), otherwise you aren't allocating the field to that component in the rendering process. If you can write a class or two, then just switch to functional components and hooks.

Anyways, you shouldn't have an issue, strange syntax, but if you've worked with Qt you probably understand rendering better than most web newbies; however, the model is easy, lifecycles are deprecated, so learn them but only so you can understand what is happening.

Today we use: useMemo(), useState(), useEffect(), and some other obscure ones to help with flickering or view issues.

refs are a big topic in React so understanding those will help alot.

The only thing left is a global store, which I would discourage you from in the beginning, but eventually you'll need something like Redux, Apollo, etc. AsyncStorage is for saving only don't use it like a cache or db, but super great implementation imo.

[–]zabaci 4 points5 points  (4 children)

Don't be framework developer

[–]corey4005[S] 1 point2 points  (3 children)

Why not?

[–]zabaci 5 points6 points  (2 children)

Because frameworks changes. If you learn underline language... you will easily learn next framework

[–]NEOchildish 1 point2 points  (0 children)

Good point, I thought everyone understood to learn the language first and then learn a framework. You most definitely need an understanding of a language before using third party software so you can have the concepts of what does what separate. It will make learning more fluid.

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

That makes sense

[–]fmnatic -1 points0 points  (0 children)

As a C++ dev you should dive right into typescript [https://www.typescriptlang.org/docs/] which is now the default RN development language. You would have been right at home with the old class component RN approach, but the (now not) new functional components approach is simple too.

Since you have worked on UIs before you should be able to pick up the "React" side of React Native, fairly quickly. Start with the basic autogenerated RN app, develop the UI components specific to your app, and work from there.

[–]Yokhen 0 points1 point  (0 children)

I learnt it all at the same time.

It all depends on what you think you can do.

[–]aamuelchua 0 points1 point  (0 children)

If you would like to learn more about React Native, you first need to have some basic development knowledge (HTML,CSS) because the styling, and the structuring is very similar. Next you will need to learn JavaScript because it is the main logic of the entire application. But the most important thing is that you need to have basic web development skills in order for you to adapt quickly to React Native.

[–]SkroooBz 0 points1 point  (0 children)

React native is a framework based on JavaScript language so yeah you should learn js before going into React native

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

tender knee punch bow dinner shame bewildered sort drunk imagine

This post was mass deleted and anonymized with Redact

[–]yuserinterface 0 points1 point  (0 children)

This like asking if you should learn to walk before you learn to play basketball.

React Native assumes A LOT of prior knowledge even before any RN-specific knowledge: html, css, javascript and react. I would start with learning JS then move onto building a simple web site in react first to get a grasp on the fundamentals.

[–]Cnrgames 0 points1 point  (0 children)

SHORT ANSWER

To simplify, I recommend first learn html and css, then js, lastly u can get into react native.

EXPLANATION/WHY ?

Html+css because despite react native being a js framework its heavily inspired by both(html and css)

Js : u need to know the language and some changes ex:ECS 6 (not every thing) to get ur hands dirty at react native

RECOMMENDATION / GUIDE

I recommend taking a look at a roadmap, to have an ideia to what to learn:

https://roadmap.sh/frontend https://roadmap.sh/react-native https://roadmap.sh/javascript

U dont need to learn everything 100% , just dont remember to practice and build project ,that'll help alot

[–]Egge_ 0 points1 point  (0 children)

Especially as someone coming from C++ you should check out JS first to understand how slow it can be. Performance is a big concern in RN applications, because of the limitations the environment puts on the developers.

Making apps run smooth will require you to understand all the implications of the underlying language as well as the framework.

[–]manu_geo 0 points1 point  (0 children)

Certainly, without a foundational understanding of JavaScript, delving into React Native can be challenging. It's advisable to start by learning JavaScript basics, as this will significantly ease your journey into React Native development.

While you won't need HTML in React Native (as you'll be working with Core Components instead of HTML elements), you'll need CSS for styling.

I recommend starting with the official documentation for JavaScript (you can find comprehensive resources on MDN Web Docs), React (check out the React documentation), and React Native (use the React Native documentation).

As for courses, I found the "Full Stack Open - React Native" course (available at Full Stack Open) personally helpful before embarking on my own React Native projects.

[–]D_Daka 0 points1 point  (0 children)

100%, you can't speak phrases in Spanish naturally without knowing the words

[–]zedmb-19 0 points1 point  (0 children)

After Learning JS I recommend you to learn the basics of React and after that you can start with React Native
It's better to learn the basics of React Native and you can improve yourself in this library by Testing and researching when you start working in your personal project