This is a takehome test for candidates applying for a React Native developer position at MoonPay. It contains two sections: "Mobile", and "Follow-up" which together include a series of tests involving React Native, Styling, JavaScript.
Feel free to solve these questions however you see fit, using whatever coding style or third-party libraries you think are appropriate.
For review purposes we'd recommend using Expo, but you don't have to use this if you don't want to.
To start the test, simply clone this repo and make your edits locally.
For the mobile portion of the test, use the /mobile
folder. There are 7 features we'd like to add:
- Fetch and display the list of currencies available on MoonPay (see endpoint below).
- Add styles to create a responsive layout that will display one column on mobile devices and two columns on tablet devices.
- Add a control to denote if currencies not supported in the US should be displayed.
- Add a control to denote if currencies not available in test mode should be displayed.
- Add a control of your choice to sort the list of currencies by alphabetical order using the name of the currencies.
- Add a control of your choice to sort the list of currencies by alphabetical order using the symbol/code of the currencies.
- Add a control of your choice to apply a random shuffle to the list of currencies when it is clicked.
Feel free to structure the code however you prefer and use third-party libraries at your discretion.
We are also interested to see how you would approach testing your code.
Do not spend too much time on making it beautiful. Basic aesthetics are welcome, but we are not grading your design skills here.
React Native must be used as the base library and the application should work in both android and iOS devices
- MoonPay API
GET /v3/currencies
endpoint: https://api.moonpay.com/v3/currencies
Answer the questions in the FOLLOW-UP.md file.
Once you've completed the test, please compress your files (via zip or tar) and return them as a link or email attachment in reply to your test invite. We'd like the code in your submission to remain private, so please avoid committing or pushing the code publicly.
Do not include node_modules or .git in your submission
Once we receive it, a member of our team will review and we'll get back to you as soon as possible.
Thanks!