How skunsky00/gymbro-ios works
Gym Bro is an iOS fitness-social app for finding workout partners and, optionally, dating matches. The user journey runs from phone authentication through profile and photo onboarding into discovery, likes, and mutual-match conversations or proposed gym sessions; profile preferences, premium access, and safety tools support that journey. The graph includes the central routing, feature views/view models, and service layer. Several feature implementations were not sampled, so their relationships are shown only where imports or excerpts support them; unverified links are omitted.
Main entry points: MainTabView.swift Main Tabs · OnboardingViewModel.swift Profile Setup · AuthViewModel.swift Authentication · LikesView.swift Incoming Likes
Components 31
App Shell
- App Router
Gym Bro/App/AppRouter.swift - Main Tabs
Gym Bro/Features/MainTab/MainTabView.swift
Account Setup
- Phone Entry
Gym Bro/Features/Authentication/View/PhoneEntryView.swift - Authentication
Gym Bro/Features/Authentication/ViewModel/AuthViewModel.swift - Onboarding Flow
Gym Bro/Features/Onboarding/View/OnbaordingFlowView.swift - Profile Setup
Gym Bro/Features/Onboarding/ViewModel/OnboardingViewModel.swift
Social Discovery
- Discover
Gym Bro/Features/Discover/View/DiscoverView.swift - Discovery Logic
Gym Bro/Features/Discover/ViewModel/DiscoverViewModel.swift - Incoming Likes
Gym Bro/Features/Likes/View/LikesView.swift - Likes Logic
Gym Bro/Features/Likes/ViewModel/LikesViewModel.swift
Engagement
- Matches and Chat
Gym Bro/Features/Matches/View/MatchesView.swift - Chat Logic
Gym Bro/Features/Matches/ViewModel/ChatViewModel.swift - Gym Sessions
Gym Bro/Features/Matches/View/ProposeSessionView.swift - Profile and Settings
Gym Bro/Features/Profile/View/ProfileView.swift - Premium Paywall
Gym Bro/Features/Paywall/View/PaywallView.swift - Reporting and Blocking
Gym Bro/Features/Saftey/View/ReportView.swift
Services and Models
- Phone Auth Service
Gym Bro/Services/AuthService.swift - Photo Moderation
Gym Bro/Services/StorageService.swift - User Profiles
Gym Bro/Services/UserService.swift - User Profile Model
Gym Bro/Models/AppUser.swift - Candidate Search
Gym Bro/Services/DiscoverService.swift - Discovery Preferences
Gym Bro/Models/DiscoveryPrefs.swift - Match and Messaging
Gym Bro/Services/MatchService.swift - Purchases
Gym Bro/Services/PurchaseService.swift - Premium Entitlements
Gym Bro/Services/EntitlementService.swift - Safety Service
Gym Bro/Services/SafteyService.swift
Other components
- Gym-goer
- Firebase Auth
- Firebase Storage and Functions
- Cloud Firestore
- RevenueCat
Connections 30
- Gym-goer → Phone Entry: enters phone
Gym Bro/Features/Authentication/View/PhoneEntryView.swift - Phone Entry → Authentication: submits code
Gym Bro/Features/Authentication/View/PhoneEntryView.swift - Authentication → Phone Auth Service: requests verification
Gym Bro/Features/Authentication/ViewModel/AuthViewModel.swift - Phone Auth Service → Firebase Auth: verifies identity
Gym Bro/Services/AuthService.swift - Authentication → Onboarding Flow: continues after sign-in
Gym Bro/Features/Onboarding/View/OnbaordingFlowView.swift - Onboarding Flow → Profile Setup: collects profile
Gym Bro/Features/Onboarding/View/OnbaordingFlowView.swift - Profile Setup → User Profiles: loads and saves
Gym Bro/Features/Onboarding/ViewModel/OnboardingViewModel.swift - Profile Setup → Photo Moderation: uploads profile photos
Gym Bro/Features/Onboarding/ViewModel/OnboardingViewModel.swift - Photo Moderation → Firebase Storage and Functions: uploads and moderates
Gym Bro/Services/StorageService.swift - User Profiles → Cloud Firestore: persists profiles
- Profile Setup → User Profile Model: builds profile data
Gym Bro/Features/Onboarding/ViewModel/OnboardingViewModel.swift - User Profile Model → Discovery Preferences: contains preferences
Gym Bro/Models/AppUser.swift - Main Tabs → App Router: routes tabs
Gym Bro/Features/MainTab/MainTabView.swift - Main Tabs → Discover: opens discovery
Gym Bro/Features/MainTab/MainTabView.swift - Main Tabs → Incoming Likes: opens likes
Gym Bro/Features/MainTab/MainTabView.swift - Main Tabs → Matches and Chat: opens matches
Gym Bro/Features/MainTab/MainTabView.swift - Main Tabs → Profile and Settings: opens profile
Gym Bro/Features/MainTab/MainTabView.swift - Discover → Discovery Logic: presents results
- Discovery Logic → Candidate Search: loads candidates
- Candidate Search → Cloud Firestore: queries profiles
Gym Bro/Services/DiscoverService.swift - Incoming Likes → Likes Logic: renders incoming likes
Gym Bro/Features/Likes/View/LikesView.swift - Likes Logic → Candidate Search: likes back
Gym Bro/Features/Likes/ViewModel/LikesViewModel.swift - Incoming Likes → Premium Paywall: offers upgrade
Gym Bro/Features/Likes/View/LikesView.swift - Matches and Chat → Chat Logic: opens conversations
- Chat Logic → Match and Messaging: loads and sends messages
- Gym Sessions → Match and Messaging: proposes sessions
- Premium Paywall → Purchases: starts purchase
Gym Bro/Features/Paywall/View/PaywallView.swift - Purchases → RevenueCat: purchases packages
Gym Bro/Services/PurchaseService.swift - Purchases → Premium Entitlements: refreshes status
Gym Bro/Services/PurchaseService.swift - Reporting and Blocking → Safety Service: submits reports