├── SwiftfulFirebaseBootcamp.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── swiftpm │ │ └── Package.resolved ├── xcshareddata │ └── xcschemes │ │ └── SwiftfulFirebaseBootcamp.xcscheme └── xcuserdata │ └── nicksarno.xcuserdatad │ └── xcschemes │ └── xcschememanagement.plist └── SwiftfulFirebaseBootcamp ├── Analytics └── AnalyticsView.swift ├── Assets.xcassets ├── AccentColor.colorset │ └── Contents.json ├── AppIcon.appiconset │ └── Contents.json └── Contents.json ├── Authentication ├── AuthenticationManager.swift ├── SignInAppleHelper.swift └── SignInGoogleHelper.swift ├── Components └── ViewModifiers │ └── OnFirstAppearViewModifier.swift ├── ContentView.swift ├── Core ├── Authentication │ ├── AuthenticationView.swift │ ├── AuthenticationViewModel.swift │ └── Subviews │ │ ├── SignInEmailView.swift │ │ └── SignInEmailViewModel.swift ├── Favorites │ ├── FavoriteView.swift │ └── FavoriteViewModel.swift ├── Products │ ├── ProductsView.swift │ ├── ProductsViewModel.swift │ └── Subviews │ │ ├── ProductCellView.swift │ │ └── ProductCellViewBuilder.swift ├── Profile │ ├── ProfileView.swift │ └── ProfileViewModel.swift ├── RootView.swift ├── Settings │ ├── SettingsView.swift │ └── SettingsViewModel.swift └── Tabbar │ └── TabbarView.swift ├── Crashlytics ├── CrashManager.swift └── CrashView.swift ├── Extensions └── Query+EXT.swift ├── Firestore ├── ProductsManager.swift └── UserManager.swift ├── GoogleService-Info.plist ├── Info.plist ├── Performance └── PerformanceView.swift ├── Preview Content └── Preview Assets.xcassets │ └── Contents.json ├── SecurityRules └── SecurityRules.swift ├── Storage └── StorageManager.swift ├── SwiftfulFirebaseBootcamp.entitlements ├── SwiftfulFirebaseBootcampApp.swift └── Utilities ├── ProductsDatabase.swift └── Utilities.swift /SwiftfulFirebaseBootcamp.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp.xcodeproj/xcshareddata/xcschemes/SwiftfulFirebaseBootcamp.xcscheme: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp.xcodeproj/xcshareddata/xcschemes/SwiftfulFirebaseBootcamp.xcscheme -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp.xcodeproj/xcuserdata/nicksarno.xcuserdatad/xcschemes/xcschememanagement.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp.xcodeproj/xcuserdata/nicksarno.xcuserdatad/xcschemes/xcschememanagement.plist -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Analytics/AnalyticsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Analytics/AnalyticsView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Assets.xcassets/AccentColor.colorset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Assets.xcassets/AccentColor.colorset/Contents.json -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Authentication/AuthenticationManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Authentication/AuthenticationManager.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Authentication/SignInAppleHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Authentication/SignInAppleHelper.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Authentication/SignInGoogleHelper.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Authentication/SignInGoogleHelper.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Components/ViewModifiers/OnFirstAppearViewModifier.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Components/ViewModifiers/OnFirstAppearViewModifier.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/ContentView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/ContentView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Authentication/AuthenticationView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Authentication/AuthenticationView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Authentication/AuthenticationViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Authentication/AuthenticationViewModel.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Authentication/Subviews/SignInEmailView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Authentication/Subviews/SignInEmailView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Authentication/Subviews/SignInEmailViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Authentication/Subviews/SignInEmailViewModel.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Favorites/FavoriteView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Favorites/FavoriteView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Favorites/FavoriteViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Favorites/FavoriteViewModel.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Products/ProductsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Products/ProductsView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Products/ProductsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Products/ProductsViewModel.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Products/Subviews/ProductCellView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Products/Subviews/ProductCellView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Products/Subviews/ProductCellViewBuilder.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Products/Subviews/ProductCellViewBuilder.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Profile/ProfileView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Profile/ProfileView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Profile/ProfileViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Profile/ProfileViewModel.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/RootView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/RootView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Settings/SettingsView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Settings/SettingsView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Settings/SettingsViewModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Settings/SettingsViewModel.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Core/Tabbar/TabbarView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Core/Tabbar/TabbarView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Crashlytics/CrashManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Crashlytics/CrashManager.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Crashlytics/CrashView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Crashlytics/CrashView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Extensions/Query+EXT.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Extensions/Query+EXT.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Firestore/ProductsManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Firestore/ProductsManager.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Firestore/UserManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Firestore/UserManager.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/GoogleService-Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/GoogleService-Info.plist -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Info.plist -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Performance/PerformanceView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Performance/PerformanceView.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Preview Content/Preview Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Preview Content/Preview Assets.xcassets/Contents.json -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/SecurityRules/SecurityRules.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/SecurityRules/SecurityRules.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Storage/StorageManager.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Storage/StorageManager.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/SwiftfulFirebaseBootcamp.entitlements: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/SwiftfulFirebaseBootcamp.entitlements -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/SwiftfulFirebaseBootcampApp.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/SwiftfulFirebaseBootcampApp.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Utilities/ProductsDatabase.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Utilities/ProductsDatabase.swift -------------------------------------------------------------------------------- /SwiftfulFirebaseBootcamp/Utilities/Utilities.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/SwiftfulThinking/Firebase-SwiftUI-Bootcamp/HEAD/SwiftfulFirebaseBootcamp/Utilities/Utilities.swift --------------------------------------------------------------------------------