| iOS | Android |
|---|---|
![]() |
![]() |
- 1. General Information
- 2. Main Features
- 3. Installation and Setup Instructions
- 4. Libraries
- 5. License
This repository contains source code for A React Native Technical Interview test.
Check out requirements here.
-
Screens
- Login screen.
- Dashboard screen with bottom navigation:
- There will be 2 tabs inside it:
- Home
- Favorite
- There will be 2 tabs inside it:
-
Login Screen
- There will be three views.
- Enter Email (Input Field)
- Enter Password (Input Field)
- Login (Button)
- Login button click → check the user input and allow login with the fixed email & password below.
- If email & password matched, open the dashboard screen with two tabs. (Email: reactnative@jetdevs.com , Password: jetdevs@123 )
- There will be three views.
-
Home Tab
- Random user API, load more (pagination), and pull to refresh.
- The following items should be in each item.
- Profile picture
- Name
- Other details (optional, you can add them to make better UI)
- Your favorite icon on the top right side.
- Provide a function to mark users as a favorite/unfavorite.
-
Favorite Tab
- Show your favorite users list.
- Provide an option to mark users as an unfavorite.
This is a new React Native project, bootstrapped using @react-native-community/cli.
Note: Make sure you have completed the React Native - Environment Setup instructions till "Creating a new application" step, before proceeding.
First, you will need to start Metro, the JavaScript bundler that ships with React Native.
To start Metro, run the following command from the root of your React Native project:
# using npm
npm start
# OR using Yarn
yarn startLet Metro Bundler run in its own terminal. Open a new terminal from the root of your React Native project. Run the following command to start your Android or iOS app:
# using npm
npm run android
# OR using Yarn
yarn android# using npm
npm run ios
# OR using Yarn
yarn iosIf everything is set up correctly, you should see your new app running in your Android Emulator or iOS Simulator shortly provided you have set up your emulator/simulator correctly.
This is one way to run your app — you can also run it directly from within Android Studio and Xcode respectively.
- React Native@0.74:
- Routing:
- State management:
- Zustand:
- A small, fast and scalable state-management solution using simplified flux principles.
- Why zustand over redux?:
- Simple and un-opinionated.
- Makes hooks the primary means of consuming state.
- Doesn't wrap your app in context providers.
- Can inform components transiently (without causing render).
- Zustand:
- Forms:
- React Hook Form: Performant, flexible and extensible forms with easy-to-use validation.
- @hookform/resolvers; Yup: Form validation.
- API request
- Axios: HTTP client.
- React-query:
- Fetch, cache and update data.
- Server state management.
- Other libraries
MIT license

