remove Expo project and all related files

Remove the entire Expo/React Native application: routes (app/), source
code (src/), assets, iOS native build, config plugins, StoreKit config,
npm dependencies, TypeScript/ESLint/Vitest configs, and Expo-specific
documentation. The repository now contains only: admin-web, supabase,
youtube-worker, tabatago-swift, docs, scripts, and CI/tooling configs.
This commit is contained in:
Millian Lamiaux
2026-04-21 21:55:00 +02:00
parent 8c90b73d90
commit 89cca25e22
285 changed files with 11212 additions and 44392 deletions

View File

@@ -0,0 +1,7 @@
import Foundation
/// Helpers for detecting the current runtime environment.
enum AppEnvironment {
/// True when running inside the Xcode preview sandbox.
static let isPreview = ProcessInfo.processInfo.environment["XCODE_RUNNING_FOR_PREVIEWS"] == "1"
}

View File

@@ -0,0 +1,138 @@
import Foundation
/// Type-safe string keys for `Localizable.xcstrings`.
/// Usage: Text(L10n.action.start) or String(localized: L10n.player.phase.work)
enum L10n {
enum action {
static let back = LocalizedStringResource("action.back")
static let cancel = LocalizedStringResource("action.cancel")
static let `continue` = LocalizedStringResource("action.continue")
static let done = LocalizedStringResource("action.done")
static let save = LocalizedStringResource("action.save")
static let share = LocalizedStringResource("action.share")
static let start = LocalizedStringResource("action.start")
static let startWorkout = LocalizedStringResource("action.startWorkout")
static let startTraining = LocalizedStringResource("action.startTraining")
static let unlockPremium = LocalizedStringResource("action.unlockPremium")
static let restorePurchases = LocalizedStringResource("action.restorePurchases")
}
enum tab {
static let home = LocalizedStringResource("tab.home")
static let programs = LocalizedStringResource("tab.programs")
static let activity = LocalizedStringResource("tab.activity")
static let profile = LocalizedStringResource("tab.profile")
}
enum home {
static let featuredTitle = LocalizedStringResource("home.featuredTitle")
static let featuredSubtitle = LocalizedStringResource("home.featuredSubtitle")
static let browseTitle = LocalizedStringResource("home.browseTitle")
static let streak = LocalizedStringResource("home.streak")
static let thisWeek = LocalizedStringResource("home.thisWeek")
static let allTime = LocalizedStringResource("home.allTime")
}
enum zone {
static let upper = LocalizedStringResource("zone.upper")
static let lower = LocalizedStringResource("zone.lower")
static let full = LocalizedStringResource("zone.full")
static func label(for zone: String) -> LocalizedStringResource {
switch zone.lowercased() {
case "upper": return upper
case "lower": return lower
case "full": return full
default: return LocalizedStringResource(stringLiteral: zone.capitalized)
}
}
}
enum level {
static let beginner = LocalizedStringResource("level.beginner")
static let intermediate = LocalizedStringResource("level.intermediate")
static let advanced = LocalizedStringResource("level.advanced")
}
enum player {
enum phase {
static let getReady = LocalizedStringResource("player.phase.getReady")
static let warmUp = LocalizedStringResource("player.phase.warmUp")
static let work = LocalizedStringResource("player.phase.work")
static let rest = LocalizedStringResource("player.phase.rest")
static let `break` = LocalizedStringResource("player.phase.break")
static let coolDown = LocalizedStringResource("player.phase.coolDown")
static let done = LocalizedStringResource("player.phase.done")
static func label(for phase: TimerPhase) -> LocalizedStringResource {
switch phase {
case .prep: return getReady
case .warmup: return warmUp
case .work: return work
case .rest: return rest
case .interBlockRest: return `break`
case .cooldown: return coolDown
case .complete: return done
}
}
}
static let endWorkout = LocalizedStringResource("player.endWorkout")
static let endWorkoutMessage = LocalizedStringResource("player.endWorkoutMessage")
static let keepGoing = LocalizedStringResource("player.keepGoing")
}
enum complete {
static let title = LocalizedStringResource("complete.title")
static let saveToHealth = LocalizedStringResource("complete.saveToHealth")
static let savedToHealth = LocalizedStringResource("complete.savedToHealth")
static let backToHome = LocalizedStringResource("complete.backToHome")
static let duration = LocalizedStringResource("complete.duration")
static let calories = LocalizedStringResource("complete.calories")
static let rounds = LocalizedStringResource("complete.rounds")
static let avgHeartRate = LocalizedStringResource("complete.avgHeartRate")
static let shareWorkout = LocalizedStringResource("complete.shareWorkout")
}
enum activity {
static let currentStreak = LocalizedStringResource("activity.currentStreak")
static let bestStreak = LocalizedStringResource("activity.bestStreak")
static let history = LocalizedStringResource("activity.history")
static let workouts = LocalizedStringResource("activity.workouts")
static let minutes = LocalizedStringResource("activity.minutes")
static let noWorkouts = LocalizedStringResource("activity.noWorkouts")
static let noWorkoutsMessage = LocalizedStringResource("activity.noWorkoutsMessage")
}
enum onboarding {
static let whatIsYourName = LocalizedStringResource("onboarding.whatIsYourName")
static let fitnessLevel = LocalizedStringResource("onboarding.fitnessLevel")
static let mainGoal = LocalizedStringResource("onboarding.mainGoal")
static let howOften = LocalizedStringResource("onboarding.howOften")
static let allSet = LocalizedStringResource("onboarding.allSet")
}
enum goal {
static let weightLoss = LocalizedStringResource("goal.weightLoss")
static let cardio = LocalizedStringResource("goal.cardio")
static let strength = LocalizedStringResource("goal.strength")
static let wellness = LocalizedStringResource("goal.wellness")
}
enum settings {
static let title = LocalizedStringResource("settings.title")
static let audio = LocalizedStringResource("settings.audio")
static let soundEffects = LocalizedStringResource("settings.soundEffects")
static let voiceCoaching = LocalizedStringResource("settings.voiceCoaching")
static let music = LocalizedStringResource("settings.music")
static let haptics = LocalizedStringResource("settings.haptics")
static let hapticFeedback = LocalizedStringResource("settings.hapticFeedback")
static let reminders = LocalizedStringResource("settings.reminders")
static let dailyReminder = LocalizedStringResource("settings.dailyReminder")
static let resetProgress = LocalizedStringResource("settings.resetProgress")
}
enum paywall {
static let title = LocalizedStringResource("paywall.title")
static let subtitle = LocalizedStringResource("paywall.subtitle")
static let startPremium = LocalizedStringResource("paywall.startPremium")
static let premiumActive = LocalizedStringResource("paywall.premiumActive")
static let upgradePrompt = LocalizedStringResource("paywall.upgradePrompt")
static let cancelAnytime = LocalizedStringResource("paywall.cancelAnytime")
}
enum health {
static let appleHealth = LocalizedStringResource("health.appleHealth")
static let move = LocalizedStringResource("health.move")
static let exercise = LocalizedStringResource("health.exercise")
static let stand = LocalizedStringResource("health.stand")
static let restingHR = LocalizedStringResource("health.restingHR")
}
}