## Major Features - Apple Watch companion app (6 phases complete) - WatchConnectivity iPhone ↔ Watch - HealthKit integration (HR, calories) - SwiftUI premium UI - 9 complication types - Always-On Display support - Paywall screen with RevenueCat integration - Privacy Policy screen - App rebranding: tabatago → TabataFit - Bundle ID: com.millianlmx.tabatafit ## Changes - New: ios/TabataFit Watch App/ (complete Watch app) - New: app/paywall.tsx (subscription UI) - New: app/privacy.tsx (privacy policy) - New: src/features/watch/ (Watch sync hooks) - New: admin-web/ (admin dashboard) - Updated: app.json, package.json (branding) - Updated: profile.tsx (paywall + privacy links) - Updated: i18n translations (EN/FR/DE/ES) - New: app icon 1024x1024 ## Watch App Files - TabataFitWatchApp.swift (entry point) - ContentView.swift (premium UI) - HealthKitManager.swift (HR + calories) - WatchSessionManager.swift (communication) - Complications/ (WidgetKit) - UserDefaults+Shared.swift (data sharing)
55 lines
1.4 KiB
JSON
55 lines
1.4 KiB
JSON
{
|
|
"expo": {
|
|
"name": "TabataFit",
|
|
"slug": "tabatafit",
|
|
"version": "1.0.0",
|
|
"orientation": "portrait",
|
|
"icon": "./assets/images/icon.png",
|
|
"scheme": "tabatafit",
|
|
"userInterfaceStyle": "automatic",
|
|
"newArchEnabled": true,
|
|
"ios": {
|
|
"supportsTablet": true,
|
|
"bundleIdentifier": "com.millianlmx.tabatafit",
|
|
"buildNumber": "1"
|
|
},
|
|
"android": {
|
|
"adaptiveIcon": {
|
|
"backgroundColor": "#E6F4FE",
|
|
"foregroundImage": "./assets/images/android-icon-foreground.png",
|
|
"backgroundImage": "./assets/images/android-icon-background.png",
|
|
"monochromeImage": "./assets/images/android-icon-monochrome.png"
|
|
},
|
|
"edgeToEdgeEnabled": true,
|
|
"predictiveBackGestureEnabled": false,
|
|
"package": "com.millianlmx.tabatafit"
|
|
},
|
|
"web": {
|
|
"output": "static",
|
|
"favicon": "./assets/images/favicon.png"
|
|
},
|
|
"plugins": [
|
|
"expo-router",
|
|
[
|
|
"expo-splash-screen",
|
|
{
|
|
"image": "./assets/images/splash-icon.png",
|
|
"imageWidth": 200,
|
|
"resizeMode": "contain",
|
|
"backgroundColor": "#ffffff",
|
|
"dark": {
|
|
"backgroundColor": "#000000"
|
|
}
|
|
}
|
|
],
|
|
"expo-video",
|
|
"expo-localization",
|
|
"./plugins/withStoreKitConfig"
|
|
],
|
|
"experiments": {
|
|
"typedRoutes": true,
|
|
"reactCompiler": true
|
|
}
|
|
}
|
|
}
|