Into React Native

April 26th, 2020
rn

Diving In

I've switched gears completely in my studies now and am diving into React Native. For the last 2 weeks, I spent my study time boning up on CSS, and I feel like I've really progressed my skills in that time. This was definitely an area of weakness for me, so I'm glad I chose to take those courses. I think in my professional life, it's already having an impact on my abilities and confidence, and I feel like going forward it's going to be integral to my success. Since we do not use any kind of component libraries, I no longer have the option of just being mediocre with CSS; it's really an imperative that I become an expert. I'm still not at that level, but my understanding of the skill is much better than it was. As I've said in past entries, before my job, all of my projects were built using component libraries. Since my skills with CSS weren't very good, I had to rely on a component library to make them look better, or more professional. There's really nothing wrong with using a component library, and I think this is a skill in and of itself. However, if you can learn to write your own CSS, it opens up all kinds of possibilities. Plus, I don't think my company is alone in the fact that they don't use component libraries, and in most frontend positions, you will be required to write a whole lot of CSS. I would really like to move into writing Sass in my job, now that I know it. I think this is a great tool and really optimizes your workflow when working with CSS. It's not completely up to me, though, and I don't know if I'll be able to convince my cohort to do so.

native

So, on to React Native. I took a course by Maximilian Schwarzmueller about 2 or 3 months ago on React Native and really got a good feel for the framework. I didn't feel totally comfortable, and I also felt like the course moved at an incredibly fast pace, passing over a lot of information that seemed critical. This is probably my biggest gripe with all of his courses, and he's definitely not one of my favorite instructors because of this. I still felt like I learned a lot, and I can tell starting this new course that I already have a pretty good base of knowledge. Obviously, the name implies there are a lot of similarities with React in React Native, and this is definitely true. Most of the business logic is the same or very similar, however there are some stark contrasts. The biggest hurdle I'm seeing so far is getting used to navigation. Unfortunately, in this course and the first course I took, we are using a general system I won't be using in my job. In the project at work, we are using React-Router for React Native. It's actually a lot simpler than using React-Navigation, in my opinion, and I think it will be pretty easy to pick up. I've used React-Router in plenty of personal projects, and I don't think it's that different for Native. Another big difference is displaying lists. With React, you can just map over a list and it will be displayed in the way you want it to be displayed. React Native uses built-in components for this, namely Flatlist. This gives it some extra features that are useful for mobile view. I think you can still map over an array in React Native; you just sacrifice some built-in features and I don't think it's optimal.

rn

This course is by Stephen Grider, of whom I don't think I've taken a bad course yet. He's always very thorough in his explaining of concepts, and I really like his style. He tends to take a relatively small piece of code and dwell on it for an inordinate amount of time. He'll write something out, explaining it as he goes, and then suggest there may be a better way of doing it. He'll do this sometimes 3 or 4 different times before you arrive at the truly optimal way of doing something. He also spends a lot of time on refactoring, which I really appreciate. So far, we're just going over the very basics of React Native and, in a sense, React itself. Unlike most React courses I've taken, though, he is going hooks first. Since hooks are so new, most courses only teach them after teaching the old of doing things, using class components and lifecycle methods. Fortunately, he's skipping right to the good stuff. I can safely say my comfort in these areas has grown exponentially since I started my job. Before I got into it, I really had to think about things critically to understand even basic state management. Now, I use useReducer, useContext, useEffect, and of course, useState on a daily basis and with general ease. I've certainly learned a lot over the course of a month and a half, and I expect that knowledge will keep growing as I dive into the world of React Native with this next project. I hope this course and my next one on React Native will help to accelerate this learning curve.

Until tomorrow!

Created by Sam Thoyre, © 2019