A react native mobile application that shows popular music from iTunes API for the Middle Software Engineer Role
SaltPay is branching into the music business and needs a new React Native app. In a fictional world, SaltPay is branching into the music business and we need a new app. This React Native app needs to display the top 100 songs based on the iTunes API.
- Show top 100 albums based on the json feed here:
https://itunes.apple.com/us/rss/topalbums/limit=100/json
- Build out the project to the wireframe inside the /Designs folder
- A clean modern look
- A good user experience
- Add interaction to the App: open a details page when clicking an album; go to the Album link
- Allow the top 100 to be searchable
-
Technologies used
- Typescript For type safe incontractly to using Javasript
- React-Native Learn once, write anywhere
-
Networking
- Axios as my http client to interact with the iTunes API
-
Local Cache
- Realm - Realm's mobile database is an open source, developer-friendly alternative to CoreData and SQLite
-
State-management
- React-Redux - The library lets your React components read data from a Redux store, and dispatch actions to the store to update state.
- Redux-thunk - for async redux actions
-
UI
- Lottie - for loader animations
- react-navigation-shared-element - for beautiful navigation transitions
-
Test
- jtest
- Redux mock store - A mock store for testing Redux async action creators and middleware.
To run the project, clone it then navigate to the folder and cd
into SaltMusic
while inside the following
- Install dependecies:
npm install --save
- Run metro:
make metro-start
(this uses aMakefile
present to the root dir to runnpx react-native start
) - Run android:
make run-android
(uses the Makefile to run the actual command)
I added some screenshots in the screenshots
folder, in the root directory of the project. Added some GIFs to also show end to end test on the app