1. Authentication Flow:

    Step Screen Purpose Navigation
    1 Onboarding Only shown once SignUp
    2 SignUpScreen Create account Home
    3 SignInScreen Login existing user Home
    4 HomeScreen After login Logout → SignIn

Before: After:


MYAPP/ MYAPP/ ├── src/ ├── src/ │ ├── assets/ │ ├── assets/ │ ├── routes/ │ ├── routes/ │ │ └── AuthStack.js │ │ └── AuthStack.js // modified │ └── screens/ │ └── screens/ │ ├── OnboardingScreen.js │ ├── HomeScreen.js <-- ✅ Newly Added │ ├── SignInScreen.js │ ├── OnboardingScreen.js │ └── SignUpScreen.js │ ├── SignInScreen.js // modified │ │ └── SignUpScreen.js // modified ├── App.jsx ├── App.jsx // modified

  1. 📦Install Required Packages**:**

         **npm i @react-native-async-storage/async-storage  → For storing tokens and session data.**
    
         (Asyncstorage is a storage system that allows to store data locally in user’s device)
    
         **npm i react-native-svg  → For using SVG assets.**
    
        ** npm i react-native-linear-gradient  → For applying gradient effects in UI.**
    
  2. Add the following line to your android/app/build.gradle file to include the font assets for react-native-vector-icons:

    **apply from: "../../node_modules/react-native-vector-icons/fonts.gradle"** 
    
 <Svg height="70" width="100%" viewBox={`0 0 ${width} 70`} style={styles.svgCurve}>
    <Path
      fill="#fff"
      d={`M0,0 C${width * 0.25},70 ${width * 0.75},0 ${width},60 L${width},70 L0,70 Z`}
    />
 </Svg>

const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/;

It’s a regular expression (regex) used to validate email addresses.