Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
7 changes: 7 additions & 0 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,13 @@ Ground truth for saved drills: use a `google_apis` (non-Play) emulator image so
- Every uploaded artifact needs a fresh, higher `versionCode` — a failed upload does *not* consume its code.
- Play rejects artifacts that declare the BILLING permission without a packaged Billing Library ≥ 6.0.1 (react-native-purchases satisfies this).

### OTA updates (EAS Update)

- All content is JS (drills in `data/vaultDrills.ts`, mascots/themes in components), so monthly drops ship over the air without a store release: `npx eas-cli update --branch production --message "..."` (needs `npx eas-cli login`; project `@haritabh1992/badminton-court-simulator`).
- `expo.runtimeVersion` in app.json is a manually pinned string (bare workflow — version policies are unsupported by `eas update`). **Bump it in any release that changes native code** (Expo SDK upgrade, new native module/dep); leave it alone for JS-only releases so one publish reaches every store build sharing that runtime.
- Clients download the update in the background on launch and apply it on the **next** launch (`EXPO_UPDATES_CHECK_ON_LAUNCH=ALWAYS`, `LAUNCH_WAIT_MS=0`).
- The update channel is baked into builds via `updates.requestHeaders` in app.json (channel `production` → EAS branch `production`).

### Production-day checklist (deliberately deferred until first prod rollout)

- Play listing **App name → `Featherwork: Badminton Drills`**, plus descriptions and `store-assets/` screenshots/feature graphic/promo video (kept out of the listing until production on purpose).
Expand Down
7 changes: 5 additions & 2 deletions android/app/src/main/AndroidManifest.xml
Original file line number Diff line number Diff line change
@@ -1,11 +1,11 @@
<manifest xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools">
<uses-permission android:name="com.android.vending.BILLING"/>
<uses-permission android:name="android.permission.INTERNET"/>
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.RECORD_AUDIO"/>
<uses-permission android:name="android.permission.SYSTEM_ALERT_WINDOW"/>
<uses-permission android:name="android.permission.VIBRATE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="com.android.vending.BILLING"/>
<queries>
<intent>
<action android:name="android.intent.action.VIEW"/>
Expand All @@ -14,9 +14,12 @@
</intent>
</queries>
<application android:name=".MainApplication" android:label="@string/app_name" android:icon="@mipmap/ic_launcher" android:roundIcon="@mipmap/ic_launcher_round" android:allowBackup="true" android:theme="@style/AppTheme" android:supportsRtl="true">
<meta-data android:name="expo.modules.updates.ENABLED" android:value="false"/>
<meta-data android:name="expo.modules.updates.ENABLED" android:value="true"/>
<meta-data android:name="expo.modules.updates.EXPO_RUNTIME_VERSION" android:value="@string/expo_runtime_version"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_CHECK_ON_LAUNCH" android:value="ALWAYS"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATES_LAUNCH_WAIT_MS" android:value="0"/>
<meta-data android:name="expo.modules.updates.EXPO_UPDATE_URL" android:value="https://u.expo.dev/3107f01f-e992-46de-8474-423ef400912f"/>
<meta-data android:name="expo.modules.updates.UPDATES_CONFIGURATION_REQUEST_HEADERS_KEY" android:value="{&quot;expo-channel-name&quot;:&quot;production&quot;}"/>
<activity android:name=".MainActivity" android:configChanges="keyboard|keyboardHidden|orientation|screenSize|screenLayout|uiMode" android:launchMode="singleTask" android:windowSoftInputMode="adjustPan" android:theme="@style/Theme.App.SplashScreen" android:exported="true" android:screenOrientation="portrait">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
Expand Down
1 change: 1 addition & 0 deletions android/app/src/main/res/values/strings.xml
Original file line number Diff line number Diff line change
Expand Up @@ -3,4 +3,5 @@
<string name="expo_splash_screen_resize_mode" translatable="false">contain</string>
<string name="expo_splash_screen_status_bar_translucent" translatable="false">false</string>
<string name="expo_system_ui_user_interface_style" translatable="false">light</string>
<string name="expo_runtime_version">1.0.0</string>
</resources>
2 changes: 1 addition & 1 deletion android/build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@ buildscript {
minSdkVersion = Integer.parseInt(findProperty('android.minSdkVersion') ?: '24')
compileSdkVersion = Integer.parseInt(findProperty('android.compileSdkVersion') ?: '35')
targetSdkVersion = Integer.parseInt(findProperty('android.targetSdkVersion') ?: '35')
kotlinVersion = findProperty('android.kotlinVersion') ?: '1.9.25'
kotlinVersion = findProperty('android.kotlinVersion') ?: '2.0.21'

ndkVersion = "28.0.13004108"
}
Expand Down
15 changes: 14 additions & 1 deletion app.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@
"expo": {
"name": "Featherwork",
"slug": "badminton-court-simulator",
"owner": "haritabh1992",
"version": "2.8.1",
"scheme": "badminton-court-simulator",
"orientation": "portrait",
Expand All @@ -15,6 +16,13 @@
"assetBundlePatterns": [
"**/*"
],
"runtimeVersion": "1.0.0",
"updates": {
"url": "https://u.expo.dev/3107f01f-e992-46de-8474-423ef400912f",
"requestHeaders": {
"expo-channel-name": "production"
}
},
"android": {
"softwareKeyboardLayoutMode": "pan",
"adaptiveIcon": {
Expand Down Expand Up @@ -46,6 +54,11 @@
},
"web": {
"favicon": "./assets/logo.png"
},
"extra": {
"eas": {
"projectId": "3107f01f-e992-46de-8474-423ef400912f"
}
}
}
}
}
75 changes: 75 additions & 0 deletions package-lock.json

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@
"expo-status-bar": "~2.2.3",
"expo-store-review": "~8.1.5",
"expo-system-ui": "~5.0.11",
"expo-updates": "~0.28.18",
"react": "19.0.0",
"react-dom": "19.0.0",
"react-native": "^0.79.6",
Expand Down
Loading