This package helps to setup an Expo application using HubSpire's template.
Make sure you have:
- set up a bitbucket repository for the project with write access.
- set up a Sentry account for the project.
- the development, staging and production base API URLs.
To create the Expo project using this template, run:
$ bunx create-expo-app <ProjectName> --template @hubspire/expo-app
NOTE: When running scripts, it's important to initiate them from the top-level directory of the project.
- Create a .env file in root and add these environment variables:
GIT_REMOTE_URL =
SENTRY_ORG =
SENTRY_PROJECT =
SENTRY_AUTH_TOKEN =
SENTRY_DSN =
DEV_API_URL =
STAGING_API_URL =
PROD_API_URL =
OPENAPI_KEY =
FIGMA_TOKEN =
FIGMA_FILE =
Now run:
$ bun run project-setup
- Make sure that you are running this script before making any changes to the project by yourself. This will :
- Create the default environment files with the required environment variables for you. It will also update the env field inside eas.json with the values you provide during setup.
- Remove/Update some values in the app.config.ts, eas.json, eas-build-on-success.sh and package.json files which are exclusive for the template project.
- Remove readme file used for the template project.
- Add secret folders and files to gitignore.
- Initialise new repository for the project.
- Publish an initial commit to the remote url you provided.
- Add your google-services.json (3 files for 3 environments) files inside assets/secrets folder.
- Add environment secrets GOOGLE_SERVICES_JSON with their corresponding values for eas build to have access to these variables.
- Make sure you have set up server credentials for android.
- Make sure you have enabled push notification and generated APNS key for your iOS build when prompted during eas build.
- Listeners to display notification, deep linking configurations for push notification and a button to send a test notification has been set up in the template.
- Refer this documentation for more.
Install eas cli.
$ bun install -g eas-cli
Login to Expo account if you haven't already.
$ eas login
Configure eas build.
$ bun run build:configure
Configure eas update.
$ bun run update:configure
Add environment variables in the Expo account.
Build and run development build using eas
$ bun run build:dev:eas
Unit Testing: Jest
$ bun run test:unit
E2E Testing: Maestro
$ bun run test:e2e:dev
Bitbucket: bitbucket-pipelines.yml
NOTE: Make sure you have set up the EXPO_TOKEN environment variable in your repository and MAESTRO_API_KEY as an environment secret.
Commits to _release/development branch will trigger EAS build using development:e2e profile.
Commits to release/staging branch will trigger EAS build using preview profile.
Commits to release/production branch will trigger EAS build using production profile.
A successful EAS build with the development:e2e profile will trigger E2E testing using Maestro. The flows are expected to be located inside the .maestro folder at the top-level directory of the project.
This project is actively being developed. Current work in progress includes:
- [ ] Automated component generation from Figma designs
- [x] Integration with Figma API
- [x] Component template generation
- [x] Style extraction and application
- [x] Generate test cases
- [x] Generate stories
- [ ] Prompt optimizations and corrections