- TypeScript 96.7%
- JavaScript 3.3%
|
|
||
|---|---|---|
| .claude/skills/gitnexus | ||
| .github/workflows | ||
| assets | ||
| scripts | ||
| src | ||
| .gitignore | ||
| .release-it.json | ||
| AGENTS.md | ||
| app.json | ||
| App.tsx | ||
| bun.lock | ||
| CLAUDE.md | ||
| eas.json | ||
| eslint-err.txt | ||
| eslint.config.js | ||
| GUIDELINE.md | ||
| index.ts | ||
| metro.config.js | ||
| package.json | ||
| README.md | ||
| svg.d.ts | ||
| tsconfig.json | ||
Nodo (Expo + Bun)
Task list app similar to Google Keep: named lists, check/uncheck items, suggestions from already checked items, sorting (alphabetical / last added). Local storage. Hexagonal architecture for reuse of the business core on the web later.
Stack
- Bun – dependency and script management
- Expo – React Native (Android, iOS, web)
- TypeScript
Commands
bun install
bun run start # Expo dev server
bun run android # Run on Android
bun run ios # Run on iOS (macOS)
bun run web # Run on web
Releases (release-it + GitHub)
Les releases sont gérées par release-it : bump de version (package.json + app.json), tag git, push et création de la release GitHub.
bun run release # interactif (choix du bump, message, etc.)
bun run release -- minor --ci # bump minor en mode CI (non interactif)
À chaque publication d’une release GitHub, une GitHub Action :
- Lance un build Android en local (expo prebuild + Gradle) → APK
- Attache l’artefact
nodo-android.apkà la release (pas de publication Play Store)
Aucun secret requis (build en CI, pas EAS).
Android Build
Option 1: EAS Build (recommended)
Build in the cloud via Expo Application Services. Requires an Expo account (free).
bunx eas-cli login
bunx eas-cli build:configure # creates eas.json if needed
bunx eas-cli build --platform android
- APK (debug or release): add
--profile previewor configure a profile ineas.jsonwith"buildType": "apk". - AAB (default): for Play Store publication.
Option 2: Local build
Generates the native Android project then builds with Gradle. Prerequisites: Android SDK, ANDROID_HOME environment variable.
bunx expo prebuild --platform android
cd android && ./gradlew assembleRelease
The APK is in android/app/build/outputs/apk/release/. For AAB (Play Store): ./gradlew bundleRelease → android/app/build/outputs/bundle/release/.
Structure (hexagonal)
src/domain– Entities (Checklist, ChecklistItem), no dependenciessrc/application– Ports (storage) and use cases (list, get, save, create, toggle, add/remove item)src/infrastructure– Storage adapter (AsyncStorage)src/presentation– Theme (overridable), context, screens and React Native components
Domain and application are plain TypeScript, reusable by a future web app.
Theme
Default Material/Android-style theme. To override: wrap the app with <ThemeProvider initialTheme={customTheme}> or use useTheme().setTheme(...).