Opinions

February 8th, 2020
opinion

Course Complete

After toiling away for about 3 weeks or so, I've finally finished Maximilian Schwarzmüeller's React Native - The Practical Guide on Udemy, and boy am I relieved to put that one to bed. This 30-hour course is packed with information, way too much information for 30 hours. As I've stated in many blog entries over the past few weeks, I feel like I learned a ton, and I'm happy I took the course, but the pace was unbearable at times, and mostly overwhelming. I thought I was completely done with the course about a couple hours ago until I realized he had just added another section on React Navigation within the last 2 days, and when I refreshed my browser, it popped in. This was a really disappointing feeling, but it turned out to be a pretty straightforward section, and I was able to get through it pretty easily. Actually, the newest upgrade of React Navigation is really nice and makes a lot more sense coming from a React background, as I do. It is more component-based, instead of using a config file as much, and just reads more like what I'm used to seeing.

finishline

I had 2 other sections to finish before this one today, and I'm really happy I got through them, although I don't think the content was presented very well. The first section was on creating React Native projects without the use of the managed workflow of Expo. A developer can use the React Native CLI or eject an Expo app to get the barebones setup for Expo and create apps in either of these ways. The only advantage I could see to doing either one of these is that the project itself will end up being a little leaner, but I don't see that being an issue until I get into some massive apps with React Native, and I think that would be a decision the senior developer on the team would make instead of me. Expo has some great built-in features, and really does a lot of the work under-the-hood, such as compiling down to code for Android or IOS without the developer having to mess around with that. The other section was on sending React Native apps to production, and I feel like this section was really rushed. I wasn't able to fully grasp everything he talked about in this section, and I feel like he didn't spend enough time going through it step-by-step. I was also really disappointed by the fact that, if you want to deploy to the Google Play store or the Apple Store, you have to pay a fee either way. It's not much, but I'm used to living in the open-source world, and this almost seems criminal coming from using some of the tools and technologies I've used for free, like Netlify and Heroku.

netlify

I usually reserve my opinions for courses and, believe it or not, I try to stay positive in these opinions. If you've only been reading my blog for the past few weeks, this doesn't seem true, but I typically only write something negative if it's egregious, and I believe this course crossed that line. I would like to talk about React Native as a whole, though. Coming from the React world, everything runs pretty smoothly in the workflow. Once you start a local server, most of the time it will hot reload when you save a change to your code, and the changes are nearly instantaneous. With tools like Netlify, Now, and Heroku, the deployment process is really smooth and doesn't take an in-depth understanding of devOps to be able to pull it off. With React Native, you write code in vsCode, then have to have a simulator up for an IPhone and one for an Android, and things crash all the time. I must have had to quit out of my local server well over 100 times during the process of this course and reboot the simulators. I wasted countless hours dealing with this workflow, and it just seems like there is still a lot of room for improvement. Don't get me wrong: there are some great features in React Native, and overall I think it's a very valuable framework, given you only need to know JavaScript and can write apps for both Android and IOS. But, I feel like the team at React Native needs to spend some serious time working on the developer experience, because right now it is kind of lacking. Dan Abramov perfected the hot reloading system with React, and there's no reason someone on the the genius team at React Native can't do something similar.

Until tomorrow!

Created by Sam Thoyre, © 2019