Files
studysprint/notes/new-build-guide.md

1.8 KiB

DevelopmentBuildGuide

This project uses an Expo development build for features that are not fully supported in Expo Go, such as our notification setup.


WhyWeUseThis

We do not use Expo Go for this project when testing notifications or other native features.

Reason:

  • Expo Go has limitations for some native modules
  • expo-notifications on Android requires a development build for reliable testing
  • a development build works like a custom Expo Go app made specifically for this project

#ImportantRule

You do not need to rebuild the APK for every code change.

Rebuild is not needed for:

  • changing React components
  • changing screen layouts
  • changing styles
  • changing Supabase queries
  • changing JS/TS functions
  • changing form logic
  • changing routing logic
  • changing notification scheduling logic in JavaScript only

Rebuild is needed for:

  • adding a new native dependency
  • removing a native dependency
  • changing app.json
  • changing Expo plugins
  • changing Android/iOS permissions
  • changing native notification config
  • anything that affects the native app shell

OneTimeSetup

Install EAS CLI globally if needed: npm install -g eas-cli

Log in to Expo: eas login

Install the Expo development client in the project: npx expo install expo-dev-client

BuildTheDevelopmentAPK

Run this command from the project root: eas build --platform android --profile development

This sends the build to Expo's cloud build service.

When the build is finished:

open the build link click Install install the APK on your Android phone or emulator Do not place the APK inside the project folder. The APK is something you install on the device, not a source file.

DailyWorkflow

After the development build APK is installed:

Start the project: npx expo start