Install Day

April 23rd, 2020
dev environment

Stuck

I can safely say that today was not my most productive day, through no fault of my own. I knew it was going to be rough trying to get going with React Native, as it was when I took the online course, but I had no idea. It all started yesterday afternoon, actually, when I found out I would be working on this React Native project. My cohort asked me if I had the most up-to-date version of XCode, and I found that I did not. But, to get that update, I needed the most up-to-date version of MacOS. I started off updating MacOS Mojave and finished that update before realizing there was a newer version of the OS, called Catalina. So, that update was all for naught. I got to work installing Catalina, and this took the better part of the night to get fully installed yesterday. In fact, I did my studies on my phone instead of on the computer while it was installing last night. Finally, at about 9 PM, it finished installing, which allowed me to install the newest version of XCode. I had no problems with this, and so I thought I was all ready to go for today. I was wrong.

dev environment

I started the day by trying to start the simulator and launch the application on my local server. Immediately, I hit an error. It occurred to me at this point that, when I took the course, we used the Expo CLI and did everything through Expo. With React Native, you basically have 2 options for development, with Expo, which is a third party service that comes equipped with a bunch of tools for making your app more functional, or directly with React Native, which then gives you more freedom to install whatever packages you might need. In the course, we stuck to Expo, I think primarily because it is a little easier to understand and get going on than it is with just sticking to React Native, but my cohort didn't want to sacrifice the freedom that comes along with working just with React Native, so he is not using Expo. This meant that I had some more things to install. I went through a little step-by-step guide on getting React Native launched and thought I had it all figured out, but I hit a stopping point when I errored out on installing Watchman, a dependency for working with React Native locally. It turns out I didn't have the administrative rights to mess with this, so I had to check out Stack Overflow and ask my co-worker if he had any suggestions. Once I hopped on a call with him, we were able to get rolling. By 1 PM, literally 5 hours into the day, I finally had the application running for the first time.

dev environment

While I had been getting this set up, he had been working on initializing a new repository that would serve as a monorepo for our project. He decided that it would be best if our application's code all lived in one location so we could share functionality between the web version and the mobile version. That way, if we wanted to create a hook or something that should work on both ends, we would only have to write it once. The theory works, and really makes a lot of sense, but this meant I had to go back and go through the installation process again. He also found a really cool tool called Catalog, which acts as a living design system for our code. In here, we can write all of the shared styles that we will have across our applications and be able to refer to them in a central location. This can be deployed to a local server, so we actually added this to the monorepo as well. This way, if we are working on the project, we could have this up and running on the side and refer to it whenever we wanted. We're still going to have a lot of work to do on this, but in the end, it's going to be really handy, and I think it's just going to make the whole thing a lot more scalable. Around 2 PM, though, both of our computers hit maximum capacity. I think being on a video call all day and having the simulator in XCode open, along with 3 or 4 different processes going through vsCode was just too much for it to handle. After this, we were pretty limited as to what we could accomplish. Hopefully, he's able to take me through some of the code tomorrow and point in the right direction of where I should be working.

Until tomorrow!

Created by Sam Thoyre, © 2019