xNok/react-native-oa-practice

โ˜… 0Forks 0JavaScriptGitHub โ†—Compare

README

React Native Performance & Optimization Practice

Welcome to the React Native Technical Assessment. This repository is designed to test your ability to optimize a React Native application for performance, user experience, and stability.

๐Ÿš€ Getting Started

  1. Install Dependencies Run the setup script to install all necessary packages.

    npm run setup
    # OR
    npm install && npx expo install @shopify/flash-list expo-image
  2. Start the Server

    npm start

    This will start the Metro Bundler. You can press w to run in the web browser, or use the Expo Go app on your physical device.

๐Ÿ“ The Challenge

You will be working on a simple "Feed" application that currently suffers from several UX and performance issues.

Your goal is to complete 4 Key Optimization Tasks. Detailed instructions for each task can be found in the docs/ folder.

Order Task Focus Description
1 Layout Stability UX Prevent layout shifts using Skeletons.
2 Virtualized List Performance Performance Maintain 60 FPS using FlashList.
3 Asset Optimization Performance Progressive image loading with BlurHash.
4 Deterministic Data Fetching Stability Implement cursor-based infinite scrolling.

๐Ÿ“‚ Project Structure

  • src/api/: Contains a standard mock API simulating network delay.
  • src/components/: Contains the UI components (Feed.js, FeedItem.js).
  • docs/: Instructions for each task.

โš ๏ธ Guidelines

  • You are allowed to use documentation (React Native, Expo, libraries).
  • Focus on code quality and best practices.
  • Do not modify the mockApi.js logic (unless for debugging), treat it as a fixed backend service.
  • Have fun!

Contributors

xNok

Issues