- Android Studio installed
- JDK 17+ installed
- Android SDK installed (via Android Studio)
# From project root
npm install @capacitor/core @capacitor/cli
# Initialize Capacitor (only needed first time)
npx cap init "Flow-State" "com.flowstate.app" --web-dir packages/web/distnpm install @capacitor/android
npm install @capacitor/status-bar
npm install @capacitor/haptics
npm install @capacitor/network
npm install @capacitor/app
npm install @capacitor/splash-screennpx cap add android# Build the web app
cd packages/web && npm run build && cd ../..
# Copy web build into Android project
npx cap sync androidnpx cap open androidThen in Android Studio:
- Click Run ▶ to build and deploy to your device/emulator
- To sign for release: Build → Generate Signed Bundle/APK
After npx cap add android, edit android/app/src/main/AndroidManifest.xml:
<!-- Add inside <activity> tag for keyboard resize support -->
android:windowSoftInputMode="adjustResize"Edit android/app/src/main/res/values/strings.xml:
<string name="app_name">Flow-State</string>cd packages/web && npm run build && cd ../..
npx cap sync android
# Then rebuild in Android Studio or run via CLI:
npx cap run android| Feature | Status | Location |
|---|---|---|
| Back button handler | ✅ Ready | src/services/capacitor.ts |
| Status bar theming | ✅ Ready | src/services/capacitor.ts |
| Haptic feedback utility | ✅ Ready | hapticFeedback() export |
| Splash screen config | ✅ Ready | capacitor.config.ts |
| Network offline banner | ✅ Ready | NetworkStatus.tsx |
| App config | ✅ Ready | capacitor.config.ts |
| Android platform files | ⏳ Run npx cap add android |
— |
| Plugins installed | ⏳ Run Step 2 above | — |