Hooks and It’s Intricacies.

Thus far the challenges for me regarding the capstone app in terms of React Native really revolve around hooks. More specifically, the useEffect hook. After getting familiar with it on the other screens I was working on, I am now working on a screen that is relatively complex in that it calls useEffect multiple times, with each useEffect relying on the data from the previous useEffect call. And within each, useEffect call, exists an async function. So, a little more involved than just a single easy peasy useEffect call.

After struggling a bit, I’m at the point where I can easily implement two useEffects on a screen page. But for some reason, the third useEffect I need is proving to be problematic. On load screen, for a brief second, it renders properly, but then reverts back to a blank screen. The app gives me a dash of hope, and then takes it away. Thankfully, the third useEffect isn’t a super important one and for now I can do away with it to revisit it later while I work on some back end connectivity stuff, but it’s really perplexing me.

Aside from that, the Expo Go development environment and the tooling around React Native continue to blow my mind. Seeing where the app is at is exciting, and though some of the team members are better at styling, it seems, on their portions, I’ve mainly just been focused on getting the plumbing working and communicating with other screens and the database, but I am pleased with the results. Given where the team and I are at in terms of deliverables, we’re pretty close to getting a lot of the pieces interconnected I feel, and it makes the possibility of pursuing stretch goals all the more feasible it seems. Notwithstanding more technical challenges of course.

The thing that has stood out to me the most in this capstone is that when I do have issues, and given the perhaps not so common issues that might arise, StackOverflow does a good job of bridging some knowledge gaps, but not 100%. There is still a bit of problem solving required to figure out some finer details, and how to implement it on my side for my issue, but the problem solving side has been very rewarding. It feels more like “real” programming versus just a fine narrow spec sheet for a class assignment that is so frequent in this program. All in all, this latest sprint has been pretty good.

Until next time,

Andrew Vo