Skip to content
Open
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
9 changes: 9 additions & 0 deletions .github/assets/expo-go-main.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
3 changes: 3 additions & 0 deletions .github/workflows/code-quality.yml
Original file line number Diff line number Diff line change
Expand Up @@ -59,5 +59,8 @@ jobs:
- name: Install deps
run: pnpm install

- name: Generate API SDK
run: pnpm gen:api

- name: Run Typescript checker
run: pnpm run lint:ts
Original file line number Diff line number Diff line change
Expand Up @@ -31,5 +31,8 @@ jobs:
- name: 📦 Install dependencies
run: pnpm install

- name: Generate API SDK
run: pnpm gen:api

- name: 🚀 Build app
run: eas build --non-interactive
run: eas build --profile development --platform all --non-interactive
3 changes: 3 additions & 0 deletions .github/workflows/eas-preview.yml
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,9 @@ jobs:
- name: 📦 Install dependencies
run: pnpm install

- name: Generate API SDK
run: pnpm gen:api

- name: 🚀 Create preview
uses: expo/expo-github-action/preview@v8
with:
Expand Down
36 changes: 36 additions & 0 deletions .github/workflows/eas-production-build.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,36 @@
name: 🔨 EAS build

env:
EXPO_PUBLIC_API_URL: ${{ vars.API_URL }}
EXPO_PUBLIC_AUTH_URL: ${{ vars.AUTH_URL }}
EXPO_PUBLIC_OPENAPI_URL: ${{ vars.OPENAPI_URL }}

on: workflow_dispatch

jobs:
build:
runs-on: ubuntu-latest
steps:
- name: 🏗 Setup repo
uses: actions/checkout@v5

- name: 🏗 Setup Node
uses: actions/setup-node@v5
with:
node-version: 'lts/*'
cache: 'pnpm'

- name: 🏗 Setup EAS
uses: expo/expo-github-action@v8
with:
eas-version: latest
token: ${{ secrets.EXPO_TOKEN }}

- name: 📦 Install dependencies
run: pnpm install

- name: Generate API SDK
run: pnpm gen:api

- name: 🚀 Build app
run: eas build --profile production --platform all --non-interactive
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,7 @@ env:
EXPO_PUBLIC_AUTH_URL: ${{ vars.AUTH_URL }}
EXPO_PUBLIC_OPENAPI_URL: ${{ vars.OPENAPI_URL }}

on:
push:
branches: [main]
on: workflow_dispatch

jobs:
update:
Expand All @@ -31,5 +29,8 @@ jobs:
- name: 📦 Install dependencies
run: pnpm install

- name: Generate API SDK
run: pnpm gen:api

- name: 🚀 Create update
run: eas update --auto --non-interactive
run: eas update --auto --branch main --non-interactive
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,14 @@ It represents our team's up-to-date stack that we use when creating native apps

[⚙️ Node.js](https://nodejs.org), [🟦 TypeScript](https://www.typescriptlang.org/), [⚛️ React](https://react.dev/), [📱 React Native](https://reactnative.dev/), [🚀 Expo](https://docs.expo.dev/), [🔐 Better Auth](https://www.better-auth.com/), [🌿 Ficus UI](https://ficus-ui.com/), [🌴 Tanstack Form](https://tanstack.com/form/), [🌴 Tanstack Query](https://tanstack.com/query/), [👋 Hey API](https://heyapi.dev/)


# Test with Expo Go

<p align="center">
<img src=".github/assets/expo-go-main.svg" alt="Expo Go Main" style="max-width: 256px; max-height: 256px;" />
</p>


# Requirements

* [Node.js](https://nodejs.org) >= 22
Expand Down
10 changes: 6 additions & 4 deletions app.config.ts
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
import { ExpoConfig } from 'expo/config';

const BUILD_NUMBER: `${number}` = '1';
const EXPO_PROJECT_ID = 'af6ae74c-f04d-497a-9733-b2b7539f77c5';

const appPrefix =
Expand All @@ -12,7 +11,9 @@ export default {
scheme: 'start-ui-native',
owner: 'bearstudio',
version: '1.0.0',
runtimeVersion: '1.0.0',
runtimeVersion: {
policy: 'appVersion',
},
platforms: ['android', 'ios'],
orientation: 'default',
icon: './src/assets/images/icon.png',
Expand All @@ -25,13 +26,14 @@ export default {
},
ios: {
bundleIdentifier: 'com.bearstudio.startuinative',
buildNumber: BUILD_NUMBER,
supportsTablet: true,
infoPlist: {
ITSAppUsesNonExemptEncryption: false,
},
// appStoreUrl: 'https://apps.apple.com/fr/app/bearstudio/startuinative',
},
android: {
package: 'com.bearstudio.startuinative',
versionCode: +BUILD_NUMBER,
adaptiveIcon: {
backgroundColor: '#FFFFFF',
foregroundImage: './src/assets/images/android-icon-foreground.png',
Expand Down
19 changes: 10 additions & 9 deletions eas.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,21 @@
},
"build": {
"development": {
"channel": "development",
"developmentClient": true,
"distribution": "internal",
"channel": "development"
},
"preview": {
"distribution": "internal",
"channel": "preview"
"distribution": "internal"
},
"production": {
"autoIncrement": true,
"channel": "production"
"channel": "production",
"autoIncrement": true
}
},
"submit": {
"production": {}
"production": {
"ios": {},
"android": {
"releaseStatus": "draft"
}
}
}
}
18 changes: 10 additions & 8 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,6 @@
"version": "1.0.0",
"type": "module",
"scripts": {
"prepare": "pnpm gen:api && lefthook install",
"prebuild": "expo prebuild",
"start": "expo start",
"dev": "expo start --go",
"dev:android": "expo run:android",
Expand All @@ -19,7 +17,10 @@
"gen:api": "dotenv -- npx @hey-api/openapi-ts -f ./src/lib/hey-api/config.ts",
"gen:icons": "svgr --config-file src/components/icons/svgr.config.cjs src/components/icons/svg-sources && prettier -w src/components/icons/generated",
"android": "expo run:android",
"ios": "expo run:ios"
"ios": "expo run:ios",
"expo:check": "expo install --check",
"expo:prebuild": "expo prebuild",
"eas:build": "eas workflow:run eas-build.yml"
},
"dependencies": {
"@bearstudio/ui-state": "1.0.2",
Expand All @@ -37,30 +38,31 @@
"@tanstack/react-query": "5.90.2",
"better-auth": "1.3.27",
"dayjs": "1.11.18",
"expo": "54.0.15",
"expo": "54.0.21",
"expo-application": "7.0.7",
"expo-constants": "18.0.9",
"expo-constants": "18.0.10",
"expo-dev-client": "6.0.16",
"expo-device": "8.0.9",
"expo-font": "14.0.9",
"expo-haptics": "15.0.7",
"expo-image": "3.0.10",
"expo-keep-awake": "15.0.7",
"expo-linking": "8.0.8",
"expo-localization": "17.0.7",
"expo-router": "6.0.13",
"expo-router": "6.0.14",
"expo-secure-store": "15.0.7",
"expo-splash-screen": "31.0.10",
"expo-status-bar": "3.0.8",
"expo-symbols": "1.0.7",
"expo-system-ui": "6.0.7",
"expo-system-ui": "6.0.8",
"expo-updates": "29.0.12",
"expo-web-browser": "15.0.8",
"i18next": "25.5.3",
"lucide-react-native": "0.545.0",
"react": "19.1.0",
"react-dom": "19.1.0",
"react-i18next": "16.0.0",
"react-native": "0.81.4",
"react-native": "0.81.5",
"react-native-ficus-ui": "2.3.0",
"react-native-gesture-handler": "2.28.0",
"react-native-pager-view": "6.9.1",
Expand Down
Loading
Loading