71 lines
1.8 KiB
Markdown
71 lines
1.8 KiB
Markdown
# 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 |