26th May 2020
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.
It covers topics such as:
Higher order components
React-Router (anonymous and logged in)
Redux
A deployment to Heroku
Firebase data storage and user authentication
SCSS
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.
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.
Expensify App: https://react-portfolio-expensify.herokuapp.com/ As this is hosted on a free plan at Heroku, the app goes into hibernation when it is not in use. As such it might take some time to initially load.
Training Course: https://www.udemy.com/course/react-2nd-edition/