The main challenge encountered was getting used to working with an already written open-source app with a completely unfamiliar and sometimes not optimal code structure. The challenge was to add features and improve upon the already existing features, without rewriting the entirety of the app.
UI Tests were recorded with Espresso and later edited to apply different thread sleep time, depending on the feature as well as additional tests and asserts on the steps being performed.
Unit tests covered all the features implemented. The goal was to make sure that at any given time the steps taken in each feature were met with the right asserts. As some of the features were not compatible with the Android Studio emulators, unit tests were crucial in the development to make sure the code written was properly tested.