The Complete React Developer Course (w/ Hooks and Redux) - Expensify App

26th May 2020

What is this?

The Expensify app is the second app in Andrew Mead's Udemy course, The Complete React Developer Course (w/ Hooks and Redux). It aims to build upon what was learned whilst building the Indecision App.

Topics covered

It covers topics such as:

  • Higher order components

  • React-Router (anonymous and logged in)

  • Redux

  • Testing with Jest and Enzyme

  • A deployment to Heroku

  • Firebase data storage and user authentication

  • SCSS

Teaching

The teaching style of the course is to explain to you what you need to do via the introduction of a topic. Andrew them demonstrates it by starting to write the code. However, he then sets a task. If you complete that task yourself, it aims demonstrate that you have understood the topic. For example, he might create one action for a reducer and then set a task to write the next one. He then goes through the solution after a brief pause.

Once I had completed the majority of the sections, the tasks that he set to complete started to encompass many of the different topics such as updating a reducer, adding an action and writing some tests to make sure that it was all working.

My thoughts

Considering I was just starting to learn React, this style of course really suited me. It took me step by step through various topics and I felt really comfortable with the pace. In fact, I found myself starting, and sometimes completing, tasks before they had been fully explained.

I didn't understand everything straight away. I completed most tasks independently which was quite satisfying. However, for the testing section once we got onto the topic of Test Spies and mock functions, I started to get a bit lost. I had to watch the solutions being implemented. However, as the course moved on and I came back to testing I found that things had started to click. It also helped that I have some previous examples to fall back on.

The final app itself is nothing particularly special. I say that as a long time Developer who has worked on CMS systems such as Drupal for many years. I would be able to create this in a fraction of the time in such a system. However, it would not be as fast and slick. React feels very smooth. The app has an add and edit form, some fields and a list of the entries with a search facility. The entries are stored and retrieved from firebase per user. I would question whether the solution would continue to function as well if you had many entries as all entries are loaded into Redux. Anyway, it's a nice introduction to React.

It would be nice to do the 3rd edition for this course when it is released. Hooks was a bit tagged onto the end of the course as part of a third un-styled app. I would have liked to do some refactoring of this app instead. That would have been closer to a real life work situation and it would have been very insightful especially when choosing between Redux and the Context API.

Certificate of Completion

Useful Links

Created by Andrew Lilley © 2022