Skip to main content

Documentation Index

Fetch the complete documentation index at: https://mintlify.com/BhushanBadhe39/SkinFirts/llms.txt

Use this file to discover all available pages before exploring further.

Getting SkinFirts running locally is straightforward — you clone the repository, install JavaScript dependencies (and CocoaPods if you’re targeting iOS), start the Metro bundler, then launch the app on your emulator or physical device. The steps below walk you through the entire process from a clean machine to a live running app.

Prerequisites

Before you begin, make sure the following are installed and configured on your machine:
RequirementNotes
Node.js ≥ 22.11.0Required by the engines field in package.json. Use nvm or fnm to manage versions.
Java 17+Required for Android builds. Set JAVA_HOME in your environment.
Android StudioProvides the Android SDK, emulator, and adb. Follow the React Native Android setup guide.
XcodemacOS only. Required for iOS builds. Install from the Mac App Store.
CocoaPodsmacOS only. Manages iOS native dependencies. Install via sudo gem install cocoapods or Homebrew.

Setup Steps

1

Clone the repository

Clone SkinFirts from GitHub and navigate into the project directory:
git clone https://github.com/BhushanBadhe39/SkinFirts.git
cd SkinFirts
2

Install JavaScript dependencies

Install all Node.js packages defined in package.json:
npm install
3

iOS only — install CocoaPods dependencies

On macOS, you need to install the Ruby bundler and then CocoaPods before running on iOS. Run these commands from the project root:
# Install CocoaPods itself via Bundler (first time only)
bundle install

# Install iOS native dependencies
bundle exec pod install
You must re-run bundle exec pod install every time you add or update a native dependency (i.e., any package with iOS native code). Skipping this step after updating native deps will cause build failures or runtime crashes on iOS.
4

Start the Metro bundler

Metro is the JavaScript build tool for React Native. Start it in a dedicated terminal window and keep it running while you develop:
npm start
SkinFirts supports Fast Refresh out of the box. Save any .jsx or .js file and the app will instantly reflect your changes without a full reload — no need to restart Metro or rebuild the native app. Fast Refresh preserves component state across edits wherever possible.
5

Run on Android

With Metro running, open a second terminal and launch the Android build:
npm run android
This executes react-native run-android, which compiles the native code, installs the APK on a running emulator or connected device, and starts the app.
6

Run on iOS

With Metro running, open a second terminal and launch the iOS build:
npm run ios
This executes react-native run-ios, which compiles the Xcode project and opens the app in the iOS Simulator (or a connected device if specified).

Available Scripts

All scripts are defined in package.json and can be run with npm run <script> or yarn <script>:
"scripts": {
  "android": "react-native run-android",
  "ios":     "react-native run-ios",
  "start":   "react-native start",
  "lint":    "eslint .",
  "test":    "jest"
}
ScriptDescription
androidCompiles and launches the app on an Android emulator or device.
iosCompiles and launches the app on the iOS Simulator or a connected device.
startStarts the Metro bundler.
lintRuns ESLint across the project using the @react-native/eslint-config ruleset.
testRuns the Jest test suite using the @react-native/jest-preset.

Development Tips

Reloading the app

If you need to force a full reload (for example, to reset Redux state or clear the navigation stack):
  • Android emulator / device: Press R twice, or open the Dev Menu with Ctrl+M (Windows / Linux) or Cmd ⌘+M (macOS) and select Reload.
  • iOS Simulator: Press R in the Simulator window.

Opening the Dev Menu

The React Native Dev Menu exposes useful tools like the Element Inspector, Performance Monitor, and remote JS debugging:
  • Android: Ctrl+M (Windows / Linux) or Cmd ⌘+M (macOS)
  • iOS Simulator: Cmd ⌘+D

Build docs developers (and LLMs) love