Information:
📱 App Setup
Make sure you’ve followed the official setup: https://reactnative.dev/docs/environment-setup
-
Install dependencies:
npm install
or
yarn
-
Start Metro (Dev Server):
npm start
or
yarn start
-
Run the App on Android:
npm run android
or
yarn android
-
Reload / Refresh:
Android:
- Double press "R"
- OR open the developer menu with:
- Cmd ⌘ + M (macOS)
- Ctrl + M (Windows/Linux)
-
Modify your app:
Edit
App.tsxand save to see changes via Fast Refresh.
📡 Mock API Setup (EPG Data)
-
Clone the mock-api with the correct branch "cloudberry":
git clone -b cloudberry https://github.com/NoriginMedia/mock-api.git cd mock-api
-
Install dependencies:
npm install
-
Start the mock API server:
npm run start
The server will run on port 1337.
→ Mock service running at: http://localhost:1337 → Try it: http://localhost:1337/epg
- Make sure Node.js is installed before running the mock API.
- If you're not familiar with NPM, visit: https://docs.npmjs.com/
⚙️ App Configuration
-
Locate the file:
/src/config.ts
-
Find the
API_ROUTEparameter. -
If using a physical device:
-
Get your computer's local IP (e.g., 192.168.x.x)
-
Replace the value of
API_ROUTEwith:export const API_ROUTE = "http://192.168.x.x:1337";
-
-
If using an emulator (virtual device), leave it as:
export const API_ROUTE = "http://localhost:1337";
📷 Screenshots
You can find screenshots demonstrating the app's functionality in the following folder:
/screenshots
Please refer to these images to understand the app's UI and features.
📝 Final Notes on App Functionality
-
At the bottom of the app, there are 5 icons. Select the 3rd icon to display the TV channel programming guide.
-
On the left side, different channels are shown using icons because the original images from the API are no longer available.
-
At the top, there is a date selector; however, it currently has no functionality as the API always returns data for the current day.
-
On the right side, a list of movies or shows is displayed in their respective time slots.
-
There is a "Now" button at the bottom left that allows you to jump directly to the movies currently being broadcast.
-
A vertical purple line indicates the current time on the schedule, and it automatically updates as time progresses.
-
You can refresh the data by pulling down completely when at the top of the list.
-
The Norigin Media company icon was updated because the previous one was no longer available.
-
The primary color was changed to better match the logo.
-
There are three ways to view movie details:
- Selecting a movie that has already aired (before the current purple line) shows past details including season information.
- Selecting a movie currently airing displays live details.
- Selecting a movie airing in the future shows upcoming movie information.
Thank you very much for the opportunity to complete this technical test.
If you have any questions or feedback, please feel free to contact me via email or open an issue on GitHub.