Skip to content

Mobile (apps/mobile)

Native mobile app wrapper using Capacitor, sharing the SPA build from the website workspace.

Overview

The mobile workspace wraps the website's SPA build into a native mobile application using Capacitor. It provides native features like biometric authentication, push notifications, haptics, camera, and geolocation.

Tech Stack

LayerTechnologyVersion
Mobile FrameworkCapacitor^8.4.1
PlatformiOS & Android-
WebDir../website/dist-spa-

Capacitor Plugins

PluginDescription
@capacitor/androidAndroid platform support
@capacitor/appApp lifecycle management
@capacitor/cameraCamera access
@capacitor/coreCapacitor core runtime
@capacitor/geolocationLocation services
@capacitor/hapticsHaptic feedback
@capacitor/local-notificationsLocal notifications
@capacitor/preferencesKey-value storage
@capacitor/push-notificationsPush notifications
@capacitor/shareNative share sheet
@capgo/capacitor-native-biometricBiometric authentication

Key Scripts

bash
# Sync SPA build with native project
moon run apps-mobile:cap-sync

# Open native IDEs
moon run apps-mobile:cap-open-ios       # Open Xcode
moon run apps-mobile:cap-open-android   # Open Android Studio

# Run on device/emulator
moon run apps-mobile:cap-run-ios
moon run apps-mobile:cap-run-android

# Build SPA first, then sync
moon run apps-mobile:build               # Builds website SPA

Architecture

apps/mobile/
├── capacitor.config.ts    # Capacitor configuration
├── ios/                   # iOS native project (generated)
├── android/               # Android native project (generated)
└── package.json

The mobile app uses the SPA build from apps/website/dist-spa as its web content. The SPA is built with moon run apps-website:build-spa and then synced with cap sync.

Released under the MIT License.