A React Native application built for RavenPack's technical assessment. This app demonstrates fetching and displaying posts from the JSONPlaceholder API, with features including:
- Tab-based navigation with modern Feather icons
- Light and dark theme support
- API service for fetching post data
- Clean UI with reusable components
- Node.js (v18 or newer)
- pnpm (v8 or newer)
- Xcode (for iOS development)
- Android Studio (for Android development)
- JDK 17 (for Android development)
- Ruby (for iOS development)
- CocoaPods (for iOS development)
-
Clone the repository:
git clone https://github.com/your-username/ravenpack-assessment.git cd ravenpack-assessment -
Navigate to the React Native app directory:
cd RNApp -
Install dependencies:
pnpm install
-
Install CocoaPods dependencies:
cd ios pod install cd ..
-
Start the Metro bundler:
npx react-native start
-
In a new terminal, build and run the iOS app:
npx react-native run-ios
This will open the app in the iOS simulator.
-
Make sure you have an Android emulator running or a device connected.
-
Start the Metro bundler (if not already running):
npx react-native start
-
In a new terminal, build and run the Android app:
npx react-native run-android
This will install and launch the app on your emulator or device.
├── android/ # Android native code
├── ios/ # iOS native code
├── src/
│ ├── components/ # Reusable UI components
│ ├── contexts/ # React Context providers
│ ├── hooks/ # Custom React hooks
│ ├── navigation/ # Navigation configuration
│ ├── screens/ # App screens
│ ├── services/ # API and other services
│ └── styles/ # Global styles and themes
├── __tests__/ # Test files
├── App.tsx # Main App component
└── index.js # Entry point
The project includes Jest tests for the API service. Run the tests with:
npx jest- If you encounter build errors, try cleaning the build:
cd ios xcodebuild clean cd .. npx react-native run-ios
-
If you have issues with the app not showing icons, make sure the font files are properly included in the assets:
mkdir -p android/app/src/main/assets/fonts cp node_modules/react-native-vector-icons/Fonts/Feather.ttf android/app/src/main/assets/fonts/
-
If you encounter Gradle build issues, try cleaning the build:
cd android ./gradlew clean cd .. npx react-native run-android
This project is part of RavenPack's technical assessment and is not licensed for public use.