This app has been built to showcase the use of different tecnologies
- React Native
- Expo
- Typescript
- Javascript
- Redux
Redux, was used because it was requested in the specs of the challenge. I wouldn't normally use it for this kind of scenario.
Pravatar takes a lot to return the images. This is why I've added a loader until the avar is ready to be displayed. After the first load, the image is chached and displayed immedialty
FaceApp shows a list of rows containing details of mock people. The avatar and the name are shown.
When the app loads, it tries to fetch the data from the BE.
If an error occurs, an error is displayed with some details and a button retry will allow the app to reattempt the fetch.
A filter is available on the same page of the list of faces. The filter has been modelled on the behaviour of the Google Contacts App.
Node v12.16.2
npm install --global expo-cli
npm i
expo start
If you are trying to use the BE hosted on localhost, you'll need to get your machine's local IP and change the constant localIP
in the file: redux/faceList.ts
If the app is run locally and the local IP is not set, an error will be displayed. This is not the best solution...
npm run test
The app can now be opened from the same network using the expo client or from an emulator running on the same machine.
Scan this code with the Expo client
Click here (It's necessary to have the Expo client installed)
The app will use an instance of the BE running on a free Dyno on Heroku. The startup of the Dyno could take some seconds.