Expo (React Native + TypeScript) app, built for Android.
npm install
npx expo start
Then scan the QR code with the Expo Go app on your Android phone,
or press a to open an Android emulator.
App.tsx– tab navigation (Plan, Recipes, Shopping)src/store.tsx– app state + saving to the phone (AsyncStorage)src/types.ts– Recipe / MealPlan data shapessrc/theme.ts– colours, spacing, text stylessrc/screens/– one file per screensrc/components/– shared UI pieces
npm run check # typecheck + lint + tests (what CI runs)
npm run typecheck
npm run lint
npm test
ci.yml– on every PR and push tomain: typecheck, lint, tests, an Android bundle build, and an informationalexpo-doctorrun.eas-android-build.yml– builds an installable APK with EAS. Run it from the Actions tab, or add thebuild-apklabel to a PR.dependabot.yml– monthly dependency PRs. Expo/React Native packages are excluded because they must move together with the Expo SDK.
npm i -g eas-cli, theneas loginandeas initin this folder (this links the project).- Create an access token at expo.dev (Account settings, Access tokens).
- In GitHub: Settings, Secrets and variables, Actions, add a secret named
EXPO_TOKEN. - Create a label called
build-apkin the repo if you want label-triggered builds.
Settings, Branches, add a rule for main: require a pull request and require the
Typecheck, lint, test and Android bundle builds checks to pass.