From 3f8b468517211d0aad9d0405b8eb5f70eaf93dcb Mon Sep 17 00:00:00 2001 From: Stephen Celis Date: Mon, 20 Apr 2020 09:51:58 -0400 Subject: [PATCH] 99 --- 0098-ergonomic-state-management-pt1/README.md | 4 +- .../ComposableArchitecture.h | 19 + .../ComposableArchitecture.swift | 225 ++ .../ComposableArchitecture/Effect.swift | 42 + .../ComposableArchitecture/Info.plist | 22 + .../ComposableArchitectureTestSupport.h | 19 + .../ComposableArchitectureTestSupport.swift | 79 + .../Info.plist | 22 + .../ComposableArchitectureTests.swift | 5 + .../ComposableArchitectureTests/Info.plist | 22 + .../PrimeTime/Counter/Counter.h | 19 + .../PrimeTime/Counter/Counter.swift | 120 + .../PrimeTime/Counter/CounterView_iOS.swift | 121 + .../PrimeTime/Counter/CounterView_macOS.swift | 113 + .../PrimeTime/Counter/Info.plist | 22 + .../PrimeTime/Counter/WolframAlpha.swift | 94 + ...omposableArchitectureSnapshotTesting.swift | 21 + .../PrimeTime/CounterTests/CounterTests.swift | 131 + .../PrimeTime/CounterTests/Info.plist | 22 + .../CounterTests/testSnapshots.1.png | Bin 0 -> 90606 bytes .../CounterTests/testSnapshots.2.png | Bin 0 -> 88112 bytes .../CounterTests/testSnapshots.3.png | Bin 0 -> 90870 bytes .../CounterTests/testSnapshots.4.png | Bin 0 -> 88389 bytes .../CounterTests/testSnapshots.5.png | Bin 0 -> 278016 bytes .../CounterTests/testSnapshots.6.png | Bin 0 -> 90870 bytes .../CounterTests/testSnapshots.7.png | Bin 0 -> 89855 bytes .../CounterTests/testSnapshots.8.png | Bin 0 -> 90231 bytes .../CounterTests/testSnapshots.9.png | Bin 0 -> 90870 bytes .../PrimeTime/FavoritePrimes/FavoritePrimes.h | 19 + .../FavoritePrimes/FavoritePrimes.swift | 117 + .../PrimeTime/FavoritePrimes/FileClient.swift | 39 + .../PrimeTime/FavoritePrimes/Info.plist | 22 + .../FavoritePrimesTests.swift | 67 + .../PrimeTime/FavoritePrimesTests/Info.plist | 22 + .../PrimeTime/Package.swift | 9 + .../PrimeTime/PrimeAlert/Info.plist | 22 + .../PrimeTime/PrimeAlert/PrimeAlert.h | 19 + .../PrimeTime/PrimeAlert/PrimeAlert.swift | 20 + .../PrimeTime/PrimeModal/Info.plist | 22 + .../PrimeTime/PrimeModal/PrimeModal.h | 19 + .../PrimeTime/PrimeModal/PrimeModal.swift | 80 + .../PrimeTime/PrimeModalTests/Info.plist | 22 + .../PrimeModalTests/PrimeModalTests.swift | 24 + .../Combine.xcplaygroundpage/Contents.swift | 82 + .../Counter.xcplaygroundpage/Contents.swift | 19 + .../Contents.swift | 27 + .../Contents.swift | 14 + .../Scratch.xcplaygroundpage/Contents.swift | 27 + .../contents.xcplayground | 10 + .../PrimeTime.xcodeproj/project.pbxproj | 2265 +++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../xcschemes/ComposableArchitecture.xcscheme | 67 + .../xcshareddata/xcschemes/Counter.xcscheme | 87 + .../xcschemes/FavoritePrimes.xcscheme | 77 + .../xcschemes/PrimeAlert.xcscheme | 67 + .../xcschemes/PrimeModal.xcscheme | 77 + .../xcshareddata/xcschemes/PrimeTime.xcscheme | 138 + .../PrimeTime/PrimeTime/AppDelegate.swift | 19 + .../AppIcon.appiconset/Contents.json | 98 + .../PrimeTime/Assets.xcassets/Contents.json | 6 + .../Base.lproj/LaunchScreen.storyboard | 25 + .../PrimeTime/PrimeTime/ContentView.swift | 214 ++ .../PrimeTime/PrimeTime/Info.plist | 60 + .../Preview Assets.xcassets/Contents.json | 6 + .../PrimeTime/PrimeTime/SceneDelegate.swift | 39 + .../PrimeTime/PrimeTime/Util.swift | 14 + .../PrimeTime/PrimeTimeTests/Info.plist | 22 + .../PrimeTimeTests/PrimeTimeTests.swift | 37 + .../PrimeTime/PrimeTimeUITests/Info.plist | 22 + .../PrimeTimeUITests/PrimeTimeUITests.swift | 31 + .../PrimeTime/Shared/Base.xcconfig | 17 + .../PrimeTime/Shared/Framework.xcconfig | 16 + .../PrimeTime/Shared/Test.xcconfig | 10 + 0099-ergonomic-state-management-pt2/README.md | 5 + README.md | 2 + 76 files changed, 5258 insertions(+), 2 deletions(-) create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.h create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Effect.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.h create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/ComposableArchitectureTests.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.h create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_iOS.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_macOS.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Counter/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Counter/WolframAlpha.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/ComposableArchitectureSnapshotTesting.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/CounterTests.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.1.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.2.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.3.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.4.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.5.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.6.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.7.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.8.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.9.png create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FavoritePrimes.h create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FavoritePrimes.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FileClient.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/FavoritePrimesTests.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Package.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.h create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.h create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/PrimeModalTests.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Combine.xcplaygroundpage/Contents.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Counter.xcplaygroundpage/Contents.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Favorite Primes.xcplaygroundpage/Contents.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Prime Modal.xcplaygroundpage/Contents.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Scratch.xcplaygroundpage/Contents.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/contents.xcplayground create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.pbxproj create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/ComposableArchitecture.xcscheme create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/Counter.xcscheme create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/FavoritePrimes.xcscheme create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeAlert.xcscheme create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeModal.xcscheme create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeTime.xcscheme create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/AppDelegate.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/Contents.json create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Base.lproj/LaunchScreen.storyboard create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/ContentView.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/SceneDelegate.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Util.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/PrimeTimeTests.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/Info.plist create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/PrimeTimeUITests.swift create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Shared/Base.xcconfig create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Shared/Framework.xcconfig create mode 100644 0099-ergonomic-state-management-pt2/PrimeTime/Shared/Test.xcconfig create mode 100644 0099-ergonomic-state-management-pt2/README.md diff --git a/0098-ergonomic-state-management-pt1/README.md b/0098-ergonomic-state-management-pt1/README.md index df680332..fad2e198 100644 --- a/0098-ergonomic-state-management-pt1/README.md +++ b/0098-ergonomic-state-management-pt1/README.md @@ -1,5 +1,5 @@ ## [Point-Free](https://www.pointfree.co) -> #### This directory contains code from Point-Free Episode: [Adaptive State Management: The Point](https://www.pointfree.co/episodes/ep98-ergonomic-state-management-part-1) +> #### This directory contains code from Point-Free Episode: [Ergonomic State Management: Part 1](https://www.pointfree.co/episodes/ep98-ergonomic-state-management-part-1) > -> Over many episodes we've now built out an architecture that not only solves the problems we set out to solve, but we've made it performant and adaptable. But before sharing it with everyone, let's polish it with a focus on ergonomics. +> The Composable Architecture is robust and solves all of the problems we set out to solve (and more), but we haven't given enough attention to ergonomics. We will enhance one of its core units to be a little friendlier to use and extend, which will bring us one step closing to being ready for production. diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.h b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.h new file mode 100644 index 00000000..38201c51 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.h @@ -0,0 +1,19 @@ +// +// ComposableArchitecture.h +// ComposableArchitecture +// +// Created by Stephen Celis on 9/8/19. +// Copyright © 2019 Point-Free. All rights reserved. +// + +#import + +//! Project version number for ComposableArchitecture. +FOUNDATION_EXPORT double ComposableArchitectureVersionNumber; + +//! Project version string for ComposableArchitecture. +FOUNDATION_EXPORT const unsigned char ComposableArchitectureVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.swift b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.swift new file mode 100644 index 00000000..eac0d483 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/ComposableArchitecture.swift @@ -0,0 +1,225 @@ +import CasePaths +import Combine +import SwiftUI + +//(inout RandomNumberGenerator) -> A +struct Gen { + let run: (inout RandomNumberGenerator) -> A +} + +//(inout Substring) -> A? +struct Parser { + let run: (inout Substring) -> A? +} + +//(@escaping (A) -> Void) -> Void +//struct Effect { +// let run: (@escaping (A) -> Void) -> Void +//} + +//public typealias Reducer = (inout Value, Action, Environment) -> [Effect] +public struct Reducer { + let reducer: (inout Value, Action, Environment) -> [Effect] + + public init(_ reducer: @escaping (inout Value, Action, Environment) -> [Effect]) { + self.reducer = reducer + } +} + +extension Reducer { + public func callAsFunction(_ value: inout Value, _ action: Action, _ environment: Environment) -> [Effect] { + self.reducer(&value, action, environment) + } +} + +extension Reducer { + public static func combine(_ reducers: Reducer...) -> Reducer { + .init { value, action, environment in + let effects = reducers.flatMap { $0(&value, action, environment) } + return effects + } + } +} + +//public func combine( +// _ reducers: Reducer... +//) -> Reducer { +// .init { value, action, environment in +// let effects = reducers.flatMap { $0(&value, action, environment) } +// return effects +// } +//} + +extension Reducer { + public func pullback( + value: WritableKeyPath, + action: CasePath, + environment: @escaping (GlobalEnvironment) -> Environment + ) -> Reducer { + .init { globalValue, globalAction, globalEnvironment in + guard let localAction = action.extract(from: globalAction) else { return [] } + let localEffects = self(&globalValue[keyPath: value], localAction, environment(globalEnvironment)) + + return localEffects.map { localEffect in + localEffect.map(action.embed) + .eraseToEffect() + } + } + } +} + +//public func pullback( +// _ reducer: Reducer, +// value: WritableKeyPath, +// action: CasePath, +// environment: @escaping (GlobalEnvironment) -> LocalEnvironment +//) -> Reducer { +// return .init { globalValue, globalAction, globalEnvironment in +// guard let localAction = action.extract(from: globalAction) else { return [] } +// let localEffects = reducer(&globalValue[keyPath: value], localAction, environment(globalEnvironment)) +// +// return localEffects.map { localEffect in +// localEffect.map(action.embed) +// .eraseToEffect() +// } +// } +//} + +extension Reducer { + public func logging( + printer: @escaping (Environment) -> (String) -> Void = { _ in { print($0) } } + ) -> Reducer { + .init { value, action, environment in + let effects = self(&value, action, environment) + let newValue = value + let print = printer(environment) + return [.fireAndForget { + print("Action: \(action)") + print("Value:") + var dumpedNewValue = "" + dump(newValue, to: &dumpedNewValue) + print(dumpedNewValue) + print("---") + }] + effects + } + } +} + +//public func logging( +// _ reducer: Reducer +//) -> Reducer { +// return .init { value, action, environment in +// let effects = reducer(&value, action, environment) +// let newValue = value +// return [.fireAndForget { +// print("Action: \(action)") +// print("Value:") +// dump(newValue) +// print("---") +// }] + effects +// } +//} + +public final class Store { + private let reducer: Reducer + private let environment: Any + @Published private var value: Value + private var viewCancellable: Cancellable? + private var effectCancellables: Set = [] + + public init( + initialValue: Value, + reducer: Reducer, + environment: Environment + ) { + self.reducer = .init { value, action, environment in + reducer(&value, action, environment as! Environment) + } + self.value = initialValue + self.environment = environment + } + + private func send(_ action: Action) { + let effects = self.reducer(&self.value, action, self.environment) + effects.forEach { effect in + var effectCancellable: AnyCancellable? + var didComplete = false + effectCancellable = effect.sink( + receiveCompletion: { [weak self, weak effectCancellable] _ in + didComplete = true + guard let effectCancellable = effectCancellable else { return } + self?.effectCancellables.remove(effectCancellable) + }, + receiveValue: { [weak self] in self?.send($0) } + ) + if !didComplete, let effectCancellable = effectCancellable { + self.effectCancellables.insert(effectCancellable) + } + } + } + + public func scope( + value toLocalValue: @escaping (Value) -> LocalValue, + action toGlobalAction: @escaping (LocalAction) -> Action + ) -> Store { + let localStore = Store( + initialValue: toLocalValue(self.value), + reducer: .init { localValue, localAction, _ in + self.send(toGlobalAction(localAction)) + localValue = toLocalValue(self.value) + return [] + }, + environment: self.environment + ) + localStore.viewCancellable = self.$value + .map(toLocalValue) + .sink { [weak localStore] newValue in + localStore?.value = newValue + } + return localStore + } +} + +@dynamicMemberLookup +public final class ViewStore: ObservableObject { + @Published public fileprivate(set) var value: Value + fileprivate var cancellable: Cancellable? + public let send: (Action) -> Void + + public subscript(dynamicMember keyPath: KeyPath) -> LocalValue { + self.value[keyPath: keyPath] + } + + public init( + initialValue value: Value, + send: @escaping (Action) -> Void + ) { + self.value = value + self.send = send + } +} + +extension Store where Value: Equatable { + public var view: ViewStore { + self.view(removeDuplicates: ==) + } +} + +extension Store { + public func view( + removeDuplicates predicate: @escaping (Value, Value) -> Bool + ) -> ViewStore { + let viewStore = ViewStore( + initialValue: self.value, + send: self.send + ) + + viewStore.cancellable = self.$value + .removeDuplicates(by: predicate) + .sink(receiveValue: { [weak viewStore] value in + viewStore?.value = value + }) + + return viewStore + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Effect.swift b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Effect.swift new file mode 100644 index 00000000..daac38ba --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Effect.swift @@ -0,0 +1,42 @@ +import Combine + +public struct Effect: Publisher { + public typealias Failure = Never + + let publisher: AnyPublisher + + public func receive( + subscriber: S + ) where S: Subscriber, Failure == S.Failure, Output == S.Input { + self.publisher.receive(subscriber: subscriber) + } +} + +extension Effect { + public static func fireAndForget(work: @escaping () -> Void) -> Effect { + return Deferred { () -> Empty in + work() + return Empty(completeImmediately: true) + }.eraseToEffect() + } + + public static func sync(work: @escaping () -> Output) -> Effect { + return Deferred { + Just(work()) + }.eraseToEffect() + } +} + +extension Publisher where Failure == Never { + public func eraseToEffect() -> Effect { + return Effect(publisher: self.eraseToAnyPublisher()) + } +} + +extension Publisher where Output == Never, Failure == Never { + public func fireAndForget() -> Effect { + return self.map(absurd).eraseToEffect() + } +} + +private func absurd(_ never: Never) -> A {} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Info.plist new file mode 100644 index 00000000..9bcb2444 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitecture/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.h b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.h new file mode 100644 index 00000000..476d0b04 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.h @@ -0,0 +1,19 @@ +// +// ComposableArchitectureTestSupport.h +// ComposableArchitectureTestSupport +// +// Created by Stephen Celis on 2/6/20. +// Copyright © 2020 Point-Free. All rights reserved. +// + +#import + +//! Project version number for ComposableArchitectureTestSupport. +FOUNDATION_EXPORT double ComposableArchitectureTestSupportVersionNumber; + +//! Project version string for ComposableArchitectureTestSupport. +FOUNDATION_EXPORT const unsigned char ComposableArchitectureTestSupportVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.swift b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.swift new file mode 100644 index 00000000..175f2863 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/ComposableArchitectureTestSupport.swift @@ -0,0 +1,79 @@ +import ComposableArchitecture +import XCTest + +public enum StepType { + case send + case receive +} + +public struct Step { + let type: StepType + let action: Action + let update: (inout Value) -> Void + let file: StaticString + let line: UInt + + public init( + _ type: StepType, + _ action: Action, + file: StaticString = #file, + line: UInt = #line, + _ update: @escaping (inout Value) -> Void = { _ in } + ) { + self.type = type + self.action = action + self.update = update + self.file = file + self.line = line + } +} + +public func assert( + initialValue: Value, + reducer: Reducer, + environment: Environment, + steps: Step..., + file: StaticString = #file, + line: UInt = #line +) { + var state = initialValue + var effects: [Effect] = [] + + steps.forEach { step in + var expected = state + + switch step.type { + case .send: + if !effects.isEmpty { + XCTFail("Action sent before handling \(effects.count) pending effect(s)", file: step.file, line: step.line) + } + effects.append(contentsOf: reducer(&state, step.action, environment)) + + case .receive: + guard !effects.isEmpty else { + XCTFail("No pending effects to receive from", file: step.file, line: step.line) + break + } + let effect = effects.removeFirst() + var action: Action! + let receivedCompletion = XCTestExpectation(description: "receivedCompletion") + let e = effect.sink( + receiveCompletion: { _ in + receivedCompletion.fulfill() + }, + receiveValue: { action = $0 } + ) + if XCTWaiter.wait(for: [receivedCompletion], timeout: 0.01) != .completed { + XCTFail("Timed out waiting for the effect to complete", file: step.file, line: step.line) + } + XCTAssertEqual(action, step.action, file: step.file, line: step.line) + effects.append(contentsOf: reducer(&state, action, environment)) + } + + step.update(&expected) + XCTAssertEqual(state, expected, file: step.file, line: step.line) + } + if !effects.isEmpty { + XCTFail("Assertion failed to handle \(effects.count) pending effect(s)", file: file, line: line) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/Info.plist new file mode 100644 index 00000000..9bcb2444 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTestSupport/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/ComposableArchitectureTests.swift b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/ComposableArchitectureTests.swift new file mode 100644 index 00000000..c2aa34cb --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/ComposableArchitectureTests.swift @@ -0,0 +1,5 @@ +import XCTest +@testable import ComposableArchitecture + +class ComposableArchitectureTests: XCTestCase { +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/Info.plist new file mode 100644 index 00000000..64d65ca4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/ComposableArchitectureTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.h b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.h new file mode 100644 index 00000000..ba74c646 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.h @@ -0,0 +1,19 @@ +// +// Counter.h +// Counter +// +// Created by Stephen Celis on 9/8/19. +// Copyright © 2019 Point-Free. All rights reserved. +// + +#import + +//! Project version number for Counter. +FOUNDATION_EXPORT double CounterVersionNumber; + +//! Project version string for Counter. +FOUNDATION_EXPORT const unsigned char CounterVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.swift b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.swift new file mode 100644 index 00000000..5e097550 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Counter.swift @@ -0,0 +1,120 @@ +import CasePaths +import Combine +import ComposableArchitecture +import PrimeAlert +import PrimeModal +import SwiftUI + +public typealias CounterState = ( + alertNthPrime: PrimeAlert?, + count: Int, + isNthPrimeRequestInFlight: Bool, + isPrimeDetailShown: Bool +) + +public enum CounterAction: Equatable { + case decrTapped + case incrTapped + case requestNthPrime + case nthPrimeResponse(n: Int, prime: Int?) + case alertDismissButtonTapped + case isPrimeButtonTapped + case primeDetailDismissed +} + +public typealias CounterEnvironment = (Int) -> Effect + +//public func counterReducer( +// state: inout CounterState, +// action: CounterAction, +// environment: CounterEnvironment +//) -> [Effect] { +public let counterReducer = Reducer { state, action, environment in + switch action { + case .decrTapped: + state.count -= 1 + return [] + + case .incrTapped: + state.count += 1 + return [] + + case .requestNthPrime: + state.isNthPrimeRequestInFlight = true + let n = state.count + return [ + environment(state.count) + .map { CounterAction.nthPrimeResponse(n: n, prime: $0) } + .receive(on: DispatchQueue.main) + .eraseToEffect() + ] + + case let .nthPrimeResponse(n, prime): + state.alertNthPrime = prime.map { PrimeAlert(n: n, prime: $0) } + state.isNthPrimeRequestInFlight = false + return [] + + case .alertDismissButtonTapped: + state.alertNthPrime = nil + return [] + + case .isPrimeButtonTapped: + state.isPrimeDetailShown = true + return [] + + case .primeDetailDismissed: + state.isPrimeDetailShown = false + return [] + } +} +.logging() + +public let counterFeatureReducer = Reducer.combine( + counterReducer.pullback( + value: \CounterFeatureState.counter, + action: /CounterFeatureAction.counter, + environment: { $0 } + ), + primeModalReducer.pullback( + value: \.primeModal, + action: /CounterFeatureAction.primeModal, + environment: { _ in () } + ) +) + +public struct CounterFeatureState: Equatable { + public var alertNthPrime: PrimeAlert? + public var count: Int + public var favoritePrimes: [Int] + public var isNthPrimeRequestInFlight: Bool + public var isPrimeDetailShown: Bool + + public init( + alertNthPrime: PrimeAlert? = nil, + count: Int = 0, + favoritePrimes: [Int] = [], + isNthPrimeRequestInFlight: Bool = false, + isPrimeDetailShown: Bool = false + ) { + self.alertNthPrime = alertNthPrime + self.count = count + self.favoritePrimes = favoritePrimes + self.isNthPrimeRequestInFlight = isNthPrimeRequestInFlight + self.isPrimeDetailShown = isPrimeDetailShown + } + + var counter: CounterState { + get { (self.alertNthPrime, self.count, self.isNthPrimeRequestInFlight, self.isPrimeDetailShown) } + set { (self.alertNthPrime, self.count, self.isNthPrimeRequestInFlight, self.isPrimeDetailShown) = newValue } + } + + var primeModal: PrimeModalState { + get { (self.count, self.favoritePrimes) } + set { (self.count, self.favoritePrimes) = newValue } + } +} + +public enum CounterFeatureAction: Equatable { + case counter(CounterAction) + case primeModal(PrimeModalAction) +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_iOS.swift b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_iOS.swift new file mode 100644 index 00000000..2c447d7e --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_iOS.swift @@ -0,0 +1,121 @@ +#if os(iOS) +import Combine +import ComposableArchitecture +import PrimeAlert +import PrimeModal +import SwiftUI + +public struct CounterView: View { + struct State: Equatable { + let alertNthPrime: PrimeAlert? + let count: Int + let isNthPrimeButtonDisabled: Bool + let isPrimeModalShown: Bool + let isIncrementButtonDisabled: Bool + let isDecrementButtonDisabled: Bool + let nthPrimeButtonTitle: String + } + public enum Action { + case decrTapped + case incrTapped + case nthPrimeButtonTapped + case alertDismissButtonTapped + case isPrimeButtonTapped + case primeModalDismissed + case doubleTap + } + + let store: Store + @ObservedObject var viewStore: ViewStore + + public init(store: Store) { + print("CounterView.init") + self.store = store + self.viewStore = self.store + .scope( + value: State.init, + action: CounterFeatureAction.init + ) + .view + } + + public var body: some View { + print("CounterView.body") + return VStack { + HStack { + Button("-") { self.viewStore.send(.decrTapped) } + .disabled(self.viewStore.isDecrementButtonDisabled) + Text("\(self.viewStore.count)") + Button("+") { self.viewStore.send(.incrTapped) } + .disabled(self.viewStore.isIncrementButtonDisabled) + } + Button("Is this prime?") { self.viewStore.send(.isPrimeButtonTapped) } + Button(self.viewStore.nthPrimeButtonTitle) { + self.viewStore.send(.nthPrimeButtonTapped) + } + .disabled(self.viewStore.isNthPrimeButtonDisabled) + } + .font(.title) + .navigationBarTitle("Counter demo") + .sheet( + isPresented: .constant(self.viewStore.isPrimeModalShown), + onDismiss: { self.viewStore.send(.primeModalDismissed) } + ) { + IsPrimeModalView( + store: self.store.scope( + value: { ($0.count, $0.favoritePrimes) }, + action: { .primeModal($0) } + ) + ) + } + .alert( + item: .constant(self.viewStore.alertNthPrime) + ) { alert in + Alert( + title: Text(alert.title), + dismissButton: .default(Text("Ok")) { + self.viewStore.send(.alertDismissButtonTapped) + } + ) + } + .frame(minWidth: 0, maxWidth: .infinity, minHeight: 0, maxHeight: .infinity) + .background(Color.white) + .onTapGesture(count: 2) { + self.viewStore.send(.doubleTap) + } + } +} + +extension CounterView.State { + init(counterFeatureState: CounterFeatureState) { + self.alertNthPrime = counterFeatureState.alertNthPrime + self.count = counterFeatureState.count + self.isNthPrimeButtonDisabled = counterFeatureState.isNthPrimeRequestInFlight + self.isPrimeModalShown = counterFeatureState.isPrimeDetailShown + self.isIncrementButtonDisabled = counterFeatureState.isNthPrimeRequestInFlight + self.isDecrementButtonDisabled = counterFeatureState.isNthPrimeRequestInFlight + self.nthPrimeButtonTitle = "What is the \(ordinal(counterFeatureState.count)) prime?" + } +} + +extension CounterFeatureAction { + init(action: CounterView.Action) { + switch action { + case .decrTapped: + self = .counter(.decrTapped) + case .incrTapped: + self = .counter(.incrTapped) + case .nthPrimeButtonTapped: + self = .counter(.requestNthPrime) + case .alertDismissButtonTapped: + self = .counter(.alertDismissButtonTapped) + case .isPrimeButtonTapped: + self = .counter(.isPrimeButtonTapped) + case .primeModalDismissed: + self = .counter(.primeDetailDismissed) + case .doubleTap: + self = .counter(.requestNthPrime) + } + } +} +#endif diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_macOS.swift b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_macOS.swift new file mode 100644 index 00000000..8bc3eeb5 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/CounterView_macOS.swift @@ -0,0 +1,113 @@ +#if os(macOS) +import Combine +import ComposableArchitecture +import PrimeAlert +import PrimeModal +import SwiftUI + +public struct CounterView: View { + struct State: Equatable { + let alertNthPrime: PrimeAlert? + let count: Int + let isNthPrimeButtonDisabled: Bool + let isPrimePopoverShown: Bool + let isIncrementButtonDisabled: Bool + let isDecrementButtonDisabled: Bool + let nthPrimeButtonTitle: String + } + public enum Action { + case decrTapped + case incrTapped + case nthPrimeButtonTapped + case alertDismissButtonTapped + case isPrimeButtonTapped + case primePopoverDismissed + } + + let store: Store + @ObservedObject var viewStore: ViewStore + + public init(store: Store) { + print("CounterView.init") + self.store = store + self.viewStore = self.store + .scope( + value: State.init, + action: CounterFeatureAction.init + ) + .view + } + + public var body: some View { + print("CounterView.body") + return VStack { + HStack { + Button("-") { self.viewStore.send(.decrTapped) } + .disabled(self.viewStore.isDecrementButtonDisabled) + Text("\(self.viewStore.count)") + Button("+") { self.viewStore.send(.incrTapped) } + .disabled(self.viewStore.isIncrementButtonDisabled) + } + Button("Is this prime?") { self.viewStore.send(.isPrimeButtonTapped) } + Button(self.viewStore.nthPrimeButtonTitle) { + self.viewStore.send(.nthPrimeButtonTapped) + } + .disabled(self.viewStore.isNthPrimeButtonDisabled) + } + .popover( + isPresented: Binding( + get: { self.viewStore.isPrimePopoverShown }, + set: { _ in self.viewStore.send(.primePopoverDismissed) } + ) + ) { + IsPrimeModalView( + store: self.store.scope( + value: { ($0.count, $0.favoritePrimes) }, + action: { .primeModal($0) } + ) + ) + } + .alert( + item: .constant(self.viewStore.alertNthPrime) + ) { alert in + Alert( + title: Text(alert.title), + dismissButton: .default(Text("Ok")) { + self.viewStore.send(.alertDismissButtonTapped) + } + ) + } + } +} + +extension CounterView.State { + init(counterFeatureState: CounterFeatureState) { + self.alertNthPrime = counterFeatureState.alertNthPrime + self.count = counterFeatureState.count + self.isNthPrimeButtonDisabled = counterFeatureState.isNthPrimeRequestInFlight + self.isPrimePopoverShown = counterFeatureState.isPrimeDetailShown + self.isIncrementButtonDisabled = counterFeatureState.isNthPrimeRequestInFlight + self.isDecrementButtonDisabled = counterFeatureState.isNthPrimeRequestInFlight + self.nthPrimeButtonTitle = "What is the \(ordinal(counterFeatureState.count)) prime?" + } +} + +extension CounterFeatureAction { + init(action: CounterView.Action) { + switch action { + case .decrTapped: + self = .counter(.decrTapped) + case .incrTapped: + self = .counter(.incrTapped) + case .nthPrimeButtonTapped: + self = .counter(.requestNthPrime) + case .alertDismissButtonTapped: + self = .counter(.alertDismissButtonTapped) + case .isPrimeButtonTapped: + self = .counter(.isPrimeButtonTapped) + case .primePopoverDismissed: + self = .counter(.primeDetailDismissed) + } + } +} +#endif diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Info.plist new file mode 100644 index 00000000..9bcb2444 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Counter/WolframAlpha.swift b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/WolframAlpha.swift new file mode 100644 index 00000000..ecc1dc04 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Counter/WolframAlpha.swift @@ -0,0 +1,94 @@ +import Combine +import ComposableArchitecture +import Foundation + +private let wolframAlphaApiKey = "6H69Q3-828TKQJ4EP" + +struct WolframAlphaResult: Decodable { + let queryresult: QueryResult + + struct QueryResult: Decodable { + let pods: [Pod] + + struct Pod: Decodable { + let primary: Bool? + let subpods: [SubPod] + + struct SubPod: Decodable { + let plaintext: String + } + } + } +} + +public func nthPrime(_ n: Int) -> Effect { + return wolframAlpha(query: "prime \(n)").map { result in + result + .flatMap { + $0.queryresult + .pods + .first(where: { $0.primary == .some(true) })? + .subpods + .first? + .plaintext + } + .flatMap(Int.init) + } + .eraseToEffect() +} + +public func offlineNthPrime(_ n: Int) -> Effect { + Future { callback in + var nthPrime = 1 + var count = 0 + while count < n { + nthPrime += 1 + if isPrime(nthPrime) { + count += 1 + } + } + callback(.success(nthPrime)) + } + .eraseToEffect() +} + +func isPrime(_ p: Int) -> Bool { + if p <= 1 { return false } + if p <= 3 { return true } + for i in 2...Int(sqrtf(Float(p))) { + if p % i == 0 { return false } + } + return true +} + + +func wolframAlpha(query: String) -> Effect { + var components = URLComponents(string: "https://api.wolframalpha.com/v2/query")! + components.queryItems = [ + URLQueryItem(name: "input", value: query), + URLQueryItem(name: "format", value: "plaintext"), + URLQueryItem(name: "output", value: "JSON"), + URLQueryItem(name: "appid", value: wolframAlphaApiKey), + ] + + return URLSession.shared + .dataTaskPublisher(for: components.url(relativeTo: nil)!) + .map { data, _ in data } + .decode(type: WolframAlphaResult?.self, decoder: JSONDecoder()) + .replaceError(with: nil) + .eraseToEffect() +} + +//return [Effect { callback in +// nthPrime(count) { prime in +// DispatchQueue.main.async { +// callback(.nthPrimeResponse(prime)) +// } +// } +//}] + +extension Publisher { + public var hush: Publishers.ReplaceError>> { + return self.map(Optional.some).replaceError(with: nil) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/ComposableArchitectureSnapshotTesting.swift b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/ComposableArchitectureSnapshotTesting.swift new file mode 100644 index 00000000..2fbd1b5c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/ComposableArchitectureSnapshotTesting.swift @@ -0,0 +1,21 @@ +import SnapshotTesting +import XCTest + +extension Snapshotting where Value: UIViewController, Format == UIImage { + static var windowedImage: Snapshotting { + return Snapshotting.image.asyncPullback { vc in + Async { callback in + UIView.setAnimationsEnabled(false) + let window = UIApplication.shared.windows.first! + window.rootViewController = vc + DispatchQueue.main.async { + let image = UIGraphicsImageRenderer(bounds: window.bounds).image { ctx in + window.drawHierarchy(in: window.bounds, afterScreenUpdates: true) + } + callback(image) + UIView.setAnimationsEnabled(true) + } + } + } + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/CounterTests.swift b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/CounterTests.swift new file mode 100644 index 00000000..254bc375 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/CounterTests.swift @@ -0,0 +1,131 @@ +import ComposableArchitecture +import ComposableArchitectureTestSupport +@testable import Counter +import PrimeAlert +import SnapshotTesting +import SwiftUI +import XCTest + +class CounterTests: XCTestCase { + func testSnapshots() { + let store = Store( + initialValue: CounterFeatureState(), + reducer: counterFeatureReducer, + environment: { _ in .sync { 17 } } + ) + let view = CounterView(store: store) + + let vc = UIHostingController(rootView: view) + vc.view.frame = UIScreen.main.bounds + + assertSnapshot(matching: vc, as: .windowedImage) + + view.viewStore.send(.incrTapped) + assertSnapshot(matching: vc, as: .windowedImage) + + view.viewStore.send(.incrTapped) + assertSnapshot(matching: vc, as: .windowedImage) + + view.viewStore.send(.nthPrimeButtonTapped) + assertSnapshot(matching: vc, as: .windowedImage) + + var expectation = self.expectation(description: "wait") + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + expectation.fulfill() + } + self.wait(for: [expectation], timeout: 0.5) + assertSnapshot(matching: vc, as: .windowedImage) + + view.viewStore.send(.alertDismissButtonTapped) + expectation = self.expectation(description: "wait") + DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) { + expectation.fulfill() + } + self.wait(for: [expectation], timeout: 0.5) + assertSnapshot(matching: vc, as: .windowedImage) + + view.viewStore.send(.isPrimeButtonTapped) + assertSnapshot(matching: vc, as: .windowedImage) + + store.view.send(.primeModal(.saveFavoritePrimeTapped)) + assertSnapshot(matching: vc, as: .windowedImage) + + view.viewStore.send(.primeModalDismissed) + assertSnapshot(matching: vc, as: .windowedImage) + } + + func testIncrDecrButtonTapped() { + assert( + initialValue: CounterFeatureState(count: 2), + reducer: counterFeatureReducer, + environment: { _ in .sync { 17 } }, + steps: + Step(.send, .counter(.incrTapped)) { $0.count = 3 }, + Step(.send, .counter(.incrTapped)) { $0.count = 4 }, + Step(.send, .counter(.decrTapped)) { $0.count = 3 } + ) + } + + func testNthPrimeButtonHappyFlow() { + assert( + initialValue: CounterFeatureState( + alertNthPrime: nil, + count: 7, + isNthPrimeRequestInFlight: false + ), + reducer: counterFeatureReducer, + environment: { _ in .sync { 17 } }, + steps: + Step(.send, .counter(CounterAction.requestNthPrime)) { + $0.isNthPrimeRequestInFlight = true + }, + Step(.receive, .counter(.nthPrimeResponse(n: 7, prime: 17))) { + $0.alertNthPrime = PrimeAlert(n: $0.count, prime: 17) + $0.isNthPrimeRequestInFlight = false + }, + Step(.send, .counter(.alertDismissButtonTapped)) { + $0.alertNthPrime = nil + } + ) + } + + func testNthPrimeButtonUnhappyFlow() { + assert( + initialValue: CounterFeatureState( + alertNthPrime: nil, + count: 7, + isNthPrimeRequestInFlight: false + ), + reducer: counterFeatureReducer, + environment: { _ in .sync { nil } }, + steps: + Step(.send, .counter(.requestNthPrime)) { + $0.isNthPrimeRequestInFlight = true + }, + Step(.receive, .counter(.nthPrimeResponse(n: 7, prime: nil))) { + $0.isNthPrimeRequestInFlight = false + } + ) + } + + func testPrimeModal() { + assert( + initialValue: CounterFeatureState( + count: 1, + favoritePrimes: [3, 5] + ), + reducer: counterFeatureReducer, + environment: { _ in .sync { 17 } }, + steps: + Step(.send, .counter(.incrTapped)) { + $0.count = 2 + }, + Step(.send, .primeModal(.saveFavoritePrimeTapped)) { + $0.favoritePrimes = [3, 5, 2] + }, + Step(.send, .primeModal(.removeFavoritePrimeTapped)) { + $0.favoritePrimes = [3, 5] + } + ) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/Info.plist new file mode 100644 index 00000000..64d65ca4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.1.png b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.1.png new file mode 100644 index 0000000000000000000000000000000000000000..bd0e1ba0022b745e80732686383f8f216ba23a81 GIT binary patch literal 90606 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%0A@XCc;aepIQViCpS@5PF0fGmN zUqr}*>qy+MAgV8|E)=sI%3E$HkN64c3NvY^KVx3iFM0XSy~Hc>`Af2V`@83Slujff z%*OKBnt892K3KTV(-#XDgbD$b7s0;HGI|r`>9%9m>W2&IT{b&T1Z3oe#JOjqg7;3$ zJC4?m#)6=HcZH3*WVoR{Vtr5Y?6EX5uK5ya3M{z43%*#1Lc|8#p`Nb0YUM?5x6030 zfYC<=&v1+ZHweGJYT`8TrZ(awREf|j5Qeg=j|!}wZEW6!wmP0@iT|9kJfR>~q6!N$ z0+MneUf*~h=ADsULB9XEVGD}x`6gSD(K=aXDXIR zF_Q@10s3xHq&J?&9?mp;2NEul&0Rzer58j7#?aLSXv*ffOvcH;_{cMOI%NfQ)0`dy1`&-uEdscdiu!|mo@5{vB&-TUj3n|dA3S7#PDVP2vB_xDEz z+nN8q7_@aEC+VzY@FtzH2PU~e5In;4><1pHMz7Ew3P)t#nQiCk&av!kT7uJOC5Mnn zpdZnFLo5ss4SuAVoUZzxyk#idbV>Q3@wH329zEuE`5UrYJ9c(nPUrImZ-fV3kf~8^ z&o#1E7&E<*X4JgSn4F!QJGa{)@(9#j>=U-5L`=C-A^+OpZ0WW!y;Ha#>G~kXV@x}( zF+shl|F=2QMQMP>P3+{R+HF|xz<$kR`^}I^seC`g64(q@C1#(r9`(bd`>gxHe*>;Q z{?T$5h9V6sg$JSQrDt%J1!`{mcA7`W znJqUU^+kY6{s;+d=Gmh-3YUDsz!x!0f|dj#hDLw?Q5?VNpsma46FDHa)`|SK%Fgu>bpXsoynJOn=}( z+}W(a^kCI~)%Mru4?9C+pX>9FyLu~ZQ}DgfISu!WMDBGB=v$b`1 z?^pr=T?E~kE4p3g{G6QM)Bo1K>OXrdpZxB8Q@$PV2k>`aQ<%$r&WPRUw#gZF(0MHJ@bcoa%XI z6cDR*?sUMjg#0kPO=Q2JlI}OV6E}FFF^1#GER!z;_!Kah_V`F(wZav?n;#@NXK&A+ zvseCGww1irk@>7S8DZAz*HgBX)?psm9FQhkCa~@kFL~Tr&Dfh;KXDt}S<)-0=p$P# zr(MC$_8U4deGoRMAxcJ#+IZ{Yyk>jll+wH#8cvFPAt9fxkkdK4Mc1>2-QyXTB79Pc z{Z*V9)%6SRaQszpl{q(IlflU$4FcauSYHm>Ai6UY_kuRUSRgD)h!aPF`M`wKrhxnn zZnlo_LBxnclNWe{+t8cqU65NpIP8#H (4n247+3<-_%O{}isiZ&LFc~C3qvfQl9 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 z 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
    UA;j~|$dCd^3#m$)7W-o0d& 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�gI+VCVj8InZIX*nCMu)QIVMj~ zB0Tjt%<*z0^1WL#M*!1?7MpG z&QaJzK9yHU4Xy0`*6u*>|@ql-^%Zk_(8 z;C)=cd9^8X)mygRdP`&O2J2q}I)Bl(ZuP&fJ1Mp!`1ads)i}huHQEL0peW=TTqSHp z?Rc@l&@={`^fr!MSrNI*uvBwc(0DFn7U=qTh-hNEqD!EqysZ%S8H#*jGdTmLx4bp{ znCQc&myYpnzugC_-h{2EbbzQvOXy$*dT!q6f@7$SW4HEDf6#Q8xE=Vj_{5z(pWkXm zEbiFX+DItg;j0_Y1@r4XbI66ZCJQ0@{^!-ZoNP#TZqt=^>V_U6#Ag92 z#<4}$tGYN0gc>bBo~>)^;yD5_s<0(v)`4!dq32pNQbTCmb@5 >dfPZ|{MGUCYq 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 MwPO?i%LAwW3%1nY%m4rY literal 0 HcmV?d00001 diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.6.png b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.6.png new file mode 100644 index 0000000000000000000000000000000000000000..d54ac962d6e4e392609ad32d897106927f9eeac5 GIT binary patch literal 90870 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 literal 0 HcmV?d00001 diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.8.png b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.8.png new file mode 100644 index 0000000000000000000000000000000000000000..df4853c5caf06dedc8cecd41a5d5fa4e7ee90c55 GIT binary patch literal 90231 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

    eyti|~^$%4N!mknRp*SQZ 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 P#T*MW$l=0+r~mvvLd|9B literal 0 HcmV?d00001 diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.9.png b/0099-ergonomic-state-management-pt2/PrimeTime/CounterTests/__Snapshots__/CounterTests/testSnapshots.9.png new file mode 100644 index 0000000000000000000000000000000000000000..d54ac962d6e4e392609ad32d897106927f9eeac5 GIT binary patch literal 90870 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 + +//! Project version number for FavoritePrimes. +FOUNDATION_EXPORT double FavoritePrimesVersionNumber; + +//! Project version string for FavoritePrimes. +FOUNDATION_EXPORT const unsigned char FavoritePrimesVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FavoritePrimes.swift b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FavoritePrimes.swift new file mode 100644 index 00000000..0291d007 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FavoritePrimes.swift @@ -0,0 +1,117 @@ +import Combine +import ComposableArchitecture +import PrimeAlert +import SwiftUI + +public typealias FavoritePrimesState = ( + alertNthPrime: PrimeAlert?, + favoritePrimes: [Int] +) + +public enum FavoritePrimesAction: Equatable { + case deleteFavoritePrimes(IndexSet) + case loadButtonTapped + case loadedFavoritePrimes([Int]) + case primeButtonTapped(Int) + case saveButtonTapped + case nthPrimeResponse(n: Int, prime: Int?) + case alertDismissButtonTapped +} + +public typealias FavoritePrimesEnvironment = ( + fileClient: FileClient, + nthPrime: (Int) -> Effect +) + +//public func favoritePrimesReducer( +// state: inout FavoritePrimesState, +// action: FavoritePrimesAction, +// environment: FavoritePrimesEnvironment +//) -> [Effect] { +public let favoritePrimesReducer = Reducer { state, action, environment in + switch action { + case let .deleteFavoritePrimes(indexSet): + for index in indexSet { + state.favoritePrimes.remove(at: index) + } + return [] + + case let .loadedFavoritePrimes(favoritePrimes): + state.favoritePrimes = favoritePrimes + return [] + + case .saveButtonTapped: + return [ + environment.fileClient + .save("favorite-primes.json", try! JSONEncoder().encode(state.favoritePrimes)) + .fireAndForget() + ] + + case .loadButtonTapped: + return [ + environment.fileClient.load("favorite-primes.json") + .compactMap { $0 } + .decode(type: [Int].self, decoder: JSONDecoder()) + .catch { error in Empty(completeImmediately: true) } + .map(FavoritePrimesAction.loadedFavoritePrimes) + .eraseToEffect() + ] + + case let .primeButtonTapped(n): + return [ + environment.nthPrime(n) + .map { FavoritePrimesAction.nthPrimeResponse(n: n, prime: $0) } + .receive(on: DispatchQueue.main) + .eraseToEffect() + ] + + case .nthPrimeResponse(let n, let prime): + state.alertNthPrime = prime.map { PrimeAlert(n: n, prime: $0) } + return [] + + case .alertDismissButtonTapped: + state.alertNthPrime = nil + return [] + } +} + +public struct FavoritePrimesView: View { + let store: Store + @ObservedObject var viewStore: ViewStore + + public init(store: Store) { + print("FavoritePrimesView.init") + self.store = store + self.viewStore = self.store.view(removeDuplicates: ==) + } + + public var body: some View { + print("FavoritePrimesView.body") + return List { + ForEach(self.viewStore.favoritePrimes, id: \.self) { prime in + Button("\(prime)") { + self.viewStore.send(.primeButtonTapped(prime)) + } + } + .onDelete { indexSet in + self.viewStore.send(.deleteFavoritePrimes(indexSet)) + } + } + .navigationBarTitle("Favorite primes") + .navigationBarItems( + trailing: HStack { + Button("Save") { + self.viewStore.send(.saveButtonTapped) + } + Button("Load") { + self.viewStore.send(.loadButtonTapped) + } + } + ) + .alert(item: .constant(self.viewStore.alertNthPrime)) { primeAlert in + Alert(title: Text(primeAlert.title), dismissButton: Alert.Button.default(Text("Ok"), action: { + self.viewStore.send(.alertDismissButtonTapped) + })) + } + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FileClient.swift b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FileClient.swift new file mode 100644 index 00000000..390db61f --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/FileClient.swift @@ -0,0 +1,39 @@ +import ComposableArchitecture +import Foundation + +public struct FileClient { + var load: (String) -> Effect + var save: (String, Data) -> Effect +} + +extension FileClient { + public static let live = FileClient( + load: { fileName -> Effect in + .sync { + let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] + let documentsUrl = URL(fileURLWithPath: documentsPath) + let favoritePrimesUrl = documentsUrl.appendingPathComponent(fileName) + return try? Data(contentsOf: favoritePrimesUrl) + } + }, + save: { fileName, data in + return .fireAndForget { + let documentsPath = NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] + let documentsUrl = URL(fileURLWithPath: documentsPath) + let favoritePrimesUrl = documentsUrl.appendingPathComponent(fileName) + try! data.write(to: favoritePrimesUrl) + } + } + ) +} + +#if DEBUG +extension FileClient { + static let mock = FileClient( + load: { _ in Effect.sync { + try! JSONEncoder().encode([2, 31]) + } }, + save: { _, _ in .fireAndForget {} } + ) +} +#endif diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/Info.plist new file mode 100644 index 00000000..9bcb2444 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimes/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/FavoritePrimesTests.swift b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/FavoritePrimesTests.swift new file mode 100644 index 00000000..4d2a829c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/FavoritePrimesTests.swift @@ -0,0 +1,67 @@ +import XCTest +@testable import FavoritePrimes + +class FavoritePrimesTests: XCTestCase { + func testDeleteFavoritePrimes() { + let environment = FavoritePrimesEnvironment(fileClient: .mock, nthPrime: { _ in .sync { 17 } }) + var state = FavoritePrimesState(alertNthPrime: nil, favoritePrimes: [2, 3, 5, 7]) + let effects = favoritePrimesReducer(state: &state, action: .deleteFavoritePrimes([2]), environment: environment) + + XCTAssertNil(state.alertNthPrime) + XCTAssertEqual(state.favoritePrimes, [2, 3, 7]) + XCTAssert(effects.isEmpty) + } + + func testSaveButtonTapped() { + var didSave = false + var fileClient = FileClient.mock + fileClient.save = { _, data in + .fireAndForget { + didSave = true + } + } + + let environment = FavoritePrimesEnvironment(fileClient: fileClient, nthPrime: { _ in .sync { 17 } }) + var state = FavoritePrimesState(alertNthPrime: nil, favoritePrimes: [2, 3, 5, 7]) + let effects = favoritePrimesReducer(state: &state, action: .saveButtonTapped, environment: environment) + + XCTAssertNil(state.alertNthPrime) + XCTAssertEqual(state.favoritePrimes, [2, 3, 5, 7]) + XCTAssertEqual(effects.count, 1) + + _ = effects[0].sink { _ in XCTFail() } + + XCTAssert(didSave) + } + + func testLoadFavoritePrimesFlow() { + var fileClient = FileClient.mock + fileClient.load = { _ in .sync { try! JSONEncoder().encode([2, 31]) } } + + let environment = FavoritePrimesEnvironment(fileClient: fileClient, nthPrime: { _ in .sync { 17 } }) + var state = FavoritePrimesState(alertNthPrime: nil, favoritePrimes: [2, 3, 5, 7]) + var effects = favoritePrimesReducer(state: &state, action: .loadButtonTapped, environment: environment) + + XCTAssertNil(state.alertNthPrime) + XCTAssertEqual(state.favoritePrimes, [2, 3, 5, 7]) + XCTAssertEqual(effects.count, 1) + + var nextAction: FavoritePrimesAction! + let receivedCompletion = self.expectation(description: "receivedCompletion") + _ = effects[0].sink( + receiveCompletion: { _ in + receivedCompletion.fulfill() + }, + receiveValue: { action in + XCTAssertEqual(action, .loadedFavoritePrimes([2, 31])) + nextAction = action + }) + self.wait(for: [receivedCompletion], timeout: 0) + + effects = favoritePrimesReducer(state: &state, action: nextAction, environment: environment) + + XCTAssertNil(state.alertNthPrime) + XCTAssertEqual(state.favoritePrimes, [2, 31]) + XCTAssert(effects.isEmpty) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/Info.plist new file mode 100644 index 00000000..64d65ca4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/FavoritePrimesTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Package.swift b/0099-ergonomic-state-management-pt2/PrimeTime/Package.swift new file mode 100644 index 00000000..89f8b7a3 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Package.swift @@ -0,0 +1,9 @@ +// swift-tools-version:4.2 +import PackageDescription + +let package = Package( + name: "ComposableArchitecture", + dependencies: [ + .package(url: "https://github.com/pointfreeco/swift-enum-properties.git", from: "0.1.0") + ] +) diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/Info.plist new file mode 100644 index 00000000..9bcb2444 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.h b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.h new file mode 100644 index 00000000..7aa04b24 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.h @@ -0,0 +1,19 @@ +// +// PrimeAlert.h +// PrimeAlert +// +// Created by Brandon Williams on 2/12/20. +// Copyright © 2020 Point-Free. All rights reserved. +// + +#import + +//! Project version number for PrimeAlert. +FOUNDATION_EXPORT double PrimeAlertVersionNumber; + +//! Project version string for PrimeAlert. +FOUNDATION_EXPORT const unsigned char PrimeAlertVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.swift new file mode 100644 index 00000000..1cf0142c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeAlert/PrimeAlert.swift @@ -0,0 +1,20 @@ +public struct PrimeAlert: Equatable, Identifiable { + public let n: Int + public let prime: Int + public var id: Int { self.prime } + + public init(n: Int, prime: Int) { + self.n = n + self.prime = prime + } + + public var title: String { + return "The \(ordinal(self.n)) prime is \(self.prime)" + } +} + +public func ordinal(_ n: Int) -> String { + let formatter = NumberFormatter() + formatter.numberStyle = .ordinal + return formatter.string(for: n) ?? "" +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/Info.plist new file mode 100644 index 00000000..9bcb2444 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + $(CURRENT_PROJECT_VERSION) + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.h b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.h new file mode 100644 index 00000000..5bdc9d8f --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.h @@ -0,0 +1,19 @@ +// +// PrimeModal.h +// PrimeModal +// +// Created by Stephen Celis on 9/8/19. +// Copyright © 2019 Point-Free. All rights reserved. +// + +#import + +//! Project version number for PrimeModal. +FOUNDATION_EXPORT double PrimeModalVersionNumber; + +//! Project version string for PrimeModal. +FOUNDATION_EXPORT const unsigned char PrimeModalVersionString[]; + +// In this header, you should import all the public headers of your framework using statements like #import + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.swift new file mode 100644 index 00000000..23acbb88 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModal/PrimeModal.swift @@ -0,0 +1,80 @@ +import ComposableArchitecture +import SwiftUI + +public typealias PrimeModalState = (count: Int, favoritePrimes: [Int]) + +public enum PrimeModalAction: Equatable { + case saveFavoritePrimeTapped + case removeFavoritePrimeTapped +} + +//public func primeModalReducer( +// state: inout PrimeModalState, +// action: PrimeModalAction, +// environment: Void +//) -> [Effect] { +public let primeModalReducer = Reducer { state, action, _ in + switch action { + case .removeFavoritePrimeTapped: + state.favoritePrimes.removeAll(where: { $0 == state.count }) + return [] + + case .saveFavoritePrimeTapped: + state.favoritePrimes.append(state.count) + return [] + } +} + +public struct IsPrimeModalView: View { + struct State: Equatable { + let count: Int + let isFavorite: Bool + } + + let store: Store + @ObservedObject var viewStore: ViewStore + + public init(store: Store) { + print("IsPrimeModalView.init") + self.store = store + self.viewStore = self.store + .scope(value: State.init(primeModalState:), action: { $0 }) + .view + } + + public var body: some View { + print("IsPrimeModalView.body") + return VStack { + if isPrime(self.viewStore.count) { + Text("\(self.viewStore.count) is prime 🎉") + if self.viewStore.isFavorite { + Button("Remove from favorite primes") { + self.viewStore.send(.removeFavoritePrimeTapped) + } + } else { + Button("Save to favorite primes") { + self.viewStore.send(.saveFavoritePrimeTapped) + } + } + } else { + Text("\(self.viewStore.count) is not prime :(") + } + } + } +} + +func isPrime(_ p: Int) -> Bool { + if p <= 1 { return false } + if p <= 3 { return true } + for i in 2...Int(sqrtf(Float(p))) { + if p % i == 0 { return false } + } + return true +} + +extension IsPrimeModalView.State { + init(primeModalState state: PrimeModalState) { + self.count = state.count + self.isFavorite = state.favoritePrimes.contains(state.count) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/Info.plist new file mode 100644 index 00000000..64d65ca4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/PrimeModalTests.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/PrimeModalTests.swift new file mode 100644 index 00000000..b5b5f27c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeModalTests/PrimeModalTests.swift @@ -0,0 +1,24 @@ +import XCTest +@testable import PrimeModal + +class PrimeModalTests: XCTestCase { + func testSaveFavoritesPrimesTapped() { + var state = (count: 2, favoritePrimes: [3, 5]) + let effects = primeModalReducer(state: &state, action: .saveFavoritePrimeTapped, environment: ()) + + let (count, favoritePrimes) = state + XCTAssertEqual(count, 2) + XCTAssertEqual(favoritePrimes, [3, 5, 2]) + XCTAssert(effects.isEmpty) + } + + func testRemoveFavoritesPrimesTapped() { + var state = (count: 3, favoritePrimes: [3, 5]) + let effects = primeModalReducer(state: &state, action: .removeFavoritePrimeTapped, environment: ()) + + let (count, favoritePrimes) = state + XCTAssertEqual(count, 3) + XCTAssertEqual(favoritePrimes, [5]) + XCTAssert(effects.isEmpty) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Combine.xcplaygroundpage/Contents.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Combine.xcplaygroundpage/Contents.swift new file mode 100644 index 00000000..6bcd8a29 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Combine.xcplaygroundpage/Contents.swift @@ -0,0 +1,82 @@ + +public struct Effect { + public let run: (@escaping (A) -> Void) -> Void + + public func map(_ f: @escaping (A) -> B) -> Effect { + return Effect { callback in self.run { a in callback(f(a)) } } + } +} + +import Dispatch + +let anIntInTwoSeconds = Effect { callback in + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { + callback(42) + callback(1729) + } +} + +anIntInTwoSeconds.run { int in print(int) } + +//anIntInTwoSeconds.map { $0 * $0 }.run { int in print(int) } + +import Combine + +//Publisher.init + +//AnyPublisher.init(<#T##publisher: Publisher##Publisher#>) + + +var count = 0 +let iterator = AnyIterator.init { + count += 1 + return count +} +Array(iterator.prefix(10)) + +let aFutureInt = Deferred { + Future { callback in + DispatchQueue.main.asyncAfter(deadline: .now() + 2) { + print("Hello from the future") + callback(.success(42)) + callback(.success(1729)) + } + } +} + +//aFutureInt.subscribe(AnySubscriber.init( +// receiveSubscription: { subscription in +// print("subscription") +// subscription.cancel() +// subscription.request(.unlimited) +//}, +// receiveValue: { value -> Subscribers.Demand in +// print("value", value) +// return .unlimited +//}, +// receiveCompletion: { completion in +// print("completion", completion) +//} +//)) + +let cancellable = aFutureInt.sink { int in + print(int) +} +//cancellable.cancel() + +//Subject.init + +let passthrough = PassthroughSubject.init() +let currentValue = CurrentValueSubject.init(2) + +let c1 = passthrough.sink { x in + print("passthrough", x) +} +let c2 = currentValue.sink { x in + print("currentValue", x) +} + +passthrough.send(42) +currentValue.send(1729) +passthrough.send(42) +currentValue.send(1729) diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Counter.xcplaygroundpage/Contents.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Counter.xcplaygroundpage/Contents.swift new file mode 100644 index 00000000..ee5ef199 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Counter.xcplaygroundpage/Contents.swift @@ -0,0 +1,19 @@ +import ComposableArchitecture +@testable import Counter +import PlaygroundSupport +import SwiftUI + +PlaygroundPage.current.setLiveView( + CounterView( + store: Store( + initialValue: CounterFeatureState( + alertNthPrime: nil, + count: 0, + favoritePrimes: [], + isNthPrimeRequestInFlight: false + ), + reducer: logging(counterFeatureReducer), + environment: Counter.nthPrime + ) + ) +) diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Favorite Primes.xcplaygroundpage/Contents.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Favorite Primes.xcplaygroundpage/Contents.swift new file mode 100644 index 00000000..8d1d4d95 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Favorite Primes.xcplaygroundpage/Contents.swift @@ -0,0 +1,27 @@ +import ComposableArchitecture +@testable import FavoritePrimes +import PlaygroundSupport +import SwiftUI + +var environment = FavoritePrimesEnvironment( + fileClient: .mock, + nthPrime: { _ in .sync { 17 } } +) +environment.fileClient.load = { _ in + Effect.sync { try! JSONEncoder().encode(Array(1...10)) } +} + +PlaygroundPage.current.liveView = UIHostingController( + rootView: NavigationView { + FavoritePrimesView( + store: Store( + initialValue: ( + alertNthPrime: nil, + favoritePrimes: [2, 3, 5, 7, 11] + ), + reducer: favoritePrimesReducer, + environment: environment + ) + ) + } +) diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Prime Modal.xcplaygroundpage/Contents.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Prime Modal.xcplaygroundpage/Contents.swift new file mode 100644 index 00000000..11a29b9e --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Prime Modal.xcplaygroundpage/Contents.swift @@ -0,0 +1,14 @@ +import ComposableArchitecture +import PlaygroundSupport +import PrimeModal +import SwiftUI + +PlaygroundPage.current.liveView = UIHostingController( + rootView: IsPrimeModalView( + store: Store( + initialValue: (2, [2, 3, 5]), + reducer: primeModalReducer, + environment: () + ) + ) +) diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Scratch.xcplaygroundpage/Contents.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Scratch.xcplaygroundpage/Contents.swift new file mode 100644 index 00000000..8dce7ba8 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/Pages/Scratch.xcplaygroundpage/Contents.swift @@ -0,0 +1,27 @@ +// +//struct User { +//// var admin: Bool +// var id: Int +// var name: String +// var bio: String +//} +// +//struct Admin { +// var user: User +//} +// +//let adminUser = User(admin: true, id: 1, name: "Blob", bio: "Blobbed around the world") +//let nonAdminUser = User(admin: false, id: 2, name: "Blob Jr.", bio: "Blobbed around the world") +// +//func doStuff(admin: Admin) { +// guard user.admin else { return } +// print("Do admin stuff for \(user.name)") +//} +// +//doStuff(user: adminUser) +//doStuff(user: nonAdminUser) + + + +12 + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/contents.xcplayground b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/contents.xcplayground new file mode 100644 index 00000000..de1478c1 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.playground/contents.xcplayground @@ -0,0 +1,10 @@ + + + + + + + + + + \ No newline at end of file diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.pbxproj b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.pbxproj new file mode 100644 index 00000000..5f9a4259 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.pbxproj @@ -0,0 +1,2265 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 52; + objects = { + +/* Begin PBXBuildFile section */ + 2A5AFE432423FCC600640A58 /* CounterView_iOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A5AFE422423FCC600640A58 /* CounterView_iOS.swift */; }; + 2A5AFE452423FD2E00640A58 /* CounterView_macOS.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2A5AFE442423FD2E00640A58 /* CounterView_macOS.swift */; }; + CA304E7A23F48C1400E79D83 /* PrimeAlert.h in Headers */ = {isa = PBXBuildFile; fileRef = CA304E7823F48C1400E79D83 /* PrimeAlert.h */; settings = {ATTRIBUTES = (Public, ); }; }; + CA304E7D23F48C1400E79D83 /* PrimeAlert.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA304E7623F48C1400E79D83 /* PrimeAlert.framework */; }; + CA304E7E23F48C1400E79D83 /* PrimeAlert.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = CA304E7623F48C1400E79D83 /* PrimeAlert.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + CA304E8323F48C2400E79D83 /* PrimeAlert.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA304E8223F48C2400E79D83 /* PrimeAlert.swift */; }; + CA304E8623F48C3900E79D83 /* PrimeAlert.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA304E7623F48C1400E79D83 /* PrimeAlert.framework */; }; + CA304E8923F48C4400E79D83 /* PrimeAlert.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CA304E7623F48C1400E79D83 /* PrimeAlert.framework */; }; + CA79FC28239C158C0096D881 /* SnapshotTesting in Frameworks */ = {isa = PBXBuildFile; productRef = CA79FC27239C158C0096D881 /* SnapshotTesting */; }; + CA79FC30239C23310096D881 /* PrimeTimeUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA79FC2F239C23310096D881 /* PrimeTimeUITests.swift */; }; + CAD67E2023329887000C7787 /* WolframAlpha.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC29217322FB231F006090DF /* WolframAlpha.swift */; }; + CADB167323DCC4A30052C18C /* CasePaths in Frameworks */ = {isa = PBXBuildFile; productRef = CADB167223DCC4A30052C18C /* CasePaths */; }; + DC36ED17234CD8040027F7A1 /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; }; + DC69E6402404865D00FCF3C2 /* Base.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = DC69E63D2404865D00FCF3C2 /* Base.xcconfig */; }; + DC69E6412404865D00FCF3C2 /* Framework.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; }; + DC69E6422404865D00FCF3C2 /* Test.xcconfig in Resources */ = {isa = PBXBuildFile; fileRef = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; }; + DC90717022FA102900B38B42 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC90716F22FA102900B38B42 /* AppDelegate.swift */; }; + DC90717222FA102900B38B42 /* SceneDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC90717122FA102900B38B42 /* SceneDelegate.swift */; }; + DC90717422FA102900B38B42 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC90717322FA102900B38B42 /* ContentView.swift */; }; + DC90717622FA102A00B38B42 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DC90717522FA102A00B38B42 /* Assets.xcassets */; }; + DC90717922FA102A00B38B42 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = DC90717822FA102A00B38B42 /* Preview Assets.xcassets */; }; + DC90717C22FA102A00B38B42 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = DC90717A22FA102A00B38B42 /* LaunchScreen.storyboard */; }; + DC90718722FA102B00B38B42 /* PrimeTimeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC90718622FA102B00B38B42 /* PrimeTimeTests.swift */; }; + DC90719222FA151D00B38B42 /* Util.swift in Sources */ = {isa = PBXBuildFile; fileRef = DC90719122FA151D00B38B42 /* Util.swift */; }; + DCC168BD24044DED006A68B3 /* FileClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCC168BC24044DED006A68B3 /* FileClient.swift */; }; + DCF0C5A42326032B008B45A0 /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; }; + DCF0C5AB2326032B008B45A0 /* ComposableArchitectureTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C5AA2326032B008B45A0 /* ComposableArchitectureTests.swift */; }; + DCF0C5AD2326032B008B45A0 /* ComposableArchitecture.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF0C59D2326032B008B45A0 /* ComposableArchitecture.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCF0C5B22326032B008B45A0 /* ComposableArchitecture.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + DCF0C5C723260348008B45A0 /* Counter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C5BE23260348008B45A0 /* Counter.framework */; }; + DCF0C5CE23260348008B45A0 /* CounterTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C5CD23260348008B45A0 /* CounterTests.swift */; }; + DCF0C5D023260348008B45A0 /* Counter.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF0C5C023260348008B45A0 /* Counter.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCF0C5D323260348008B45A0 /* Counter.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C5BE23260348008B45A0 /* Counter.framework */; }; + DCF0C5D423260348008B45A0 /* Counter.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C5BE23260348008B45A0 /* Counter.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + DCF0C5E92326035C008B45A0 /* PrimeModal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C5E02326035C008B45A0 /* PrimeModal.framework */; }; + DCF0C5F02326035C008B45A0 /* PrimeModalTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C5EF2326035C008B45A0 /* PrimeModalTests.swift */; }; + DCF0C5F22326035C008B45A0 /* PrimeModal.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF0C5E22326035C008B45A0 /* PrimeModal.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCF0C5F62326035C008B45A0 /* PrimeModal.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C5E02326035C008B45A0 /* PrimeModal.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + DCF0C60B2326036F008B45A0 /* FavoritePrimes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C6022326036F008B45A0 /* FavoritePrimes.framework */; }; + DCF0C6122326036F008B45A0 /* FavoritePrimesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C6112326036F008B45A0 /* FavoritePrimesTests.swift */; }; + DCF0C6142326036F008B45A0 /* FavoritePrimes.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF0C6042326036F008B45A0 /* FavoritePrimes.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCF0C6172326036F008B45A0 /* FavoritePrimes.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C6022326036F008B45A0 /* FavoritePrimes.framework */; }; + DCF0C6182326036F008B45A0 /* FavoritePrimes.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C6022326036F008B45A0 /* FavoritePrimes.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; + DCF0C628232603B7008B45A0 /* ComposableArchitecture.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C627232603B7008B45A0 /* ComposableArchitecture.swift */; }; + DCF0C62A23260405008B45A0 /* FavoritePrimes.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C62923260405008B45A0 /* FavoritePrimes.swift */; }; + DCF0C62C2326040D008B45A0 /* PrimeModal.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C62B2326040D008B45A0 /* PrimeModal.swift */; }; + DCF0C62E23260414008B45A0 /* Counter.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF0C62D23260414008B45A0 /* Counter.swift */; }; + DCF6C51E23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.h in Headers */ = {isa = PBXBuildFile; fileRef = DCF6C51C23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.h */; settings = {ATTRIBUTES = (Public, ); }; }; + DCF6C52223ECD10100A54EE0 /* ComposableArchitectureTestSupport.swift in Sources */ = {isa = PBXBuildFile; fileRef = CA675A55238072DB00724A38 /* ComposableArchitectureTestSupport.swift */; }; + DCF6C52423ECD11200A54EE0 /* ComposableArchitectureSnapshotTesting.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF6C52323ECD11200A54EE0 /* ComposableArchitectureSnapshotTesting.swift */; }; + DCF6C52723ECD13600A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */; }; + DCF6C52A23ECD13D00A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */; }; + DCF6C52D23ECD14400A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */; }; + DCF6C53123ECD33000A54EE0 /* Effect.swift in Sources */ = {isa = PBXBuildFile; fileRef = DCF6C53023ECD33000A54EE0 /* Effect.swift */; }; + DCF6C54523ECD8E800A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */; }; + DCF88EFF234D4A20001BA79A /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; }; + DCF88F00234D4A28001BA79A /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; }; + DCF88F01234D4A28001BA79A /* PrimeModal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C5E02326035C008B45A0 /* PrimeModal.framework */; }; + DCF88F02234D4A3B001BA79A /* ComposableArchitecture.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + CA304E7B23F48C1400E79D83 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CA304E7523F48C1400E79D83; + remoteInfo = PrimeAlert; + }; + CA304E8423F48C3400E79D83 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CA304E7523F48C1400E79D83; + remoteInfo = PrimeAlert; + }; + CA304E8723F48C4000E79D83 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = CA304E7523F48C1400E79D83; + remoteInfo = PrimeAlert; + }; + CA79FC32239C23310096D881 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DC90716B22FA102900B38B42; + remoteInfo = PrimeTime; + }; + CAD67E1C2332982E000C7787 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C5DF2326035C008B45A0; + remoteInfo = PrimeModal; + }; + DC90718322FA102B00B38B42 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DC90716B22FA102900B38B42; + remoteInfo = PrimeTime; + }; + DCF0C5A52326032B008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C59A2326032B008B45A0; + remoteInfo = ComposableArchitecture; + }; + DCF0C5AE2326032B008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C59A2326032B008B45A0; + remoteInfo = ComposableArchitecture; + }; + DCF0C5C823260348008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C5BD23260348008B45A0; + remoteInfo = Counter; + }; + DCF0C5D123260348008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C5BD23260348008B45A0; + remoteInfo = Counter; + }; + DCF0C5EA2326035C008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C5DF2326035C008B45A0; + remoteInfo = PrimeModal; + }; + DCF0C60C2326036F008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C6012326036F008B45A0; + remoteInfo = FavoritePrimes; + }; + DCF0C6152326036F008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C6012326036F008B45A0; + remoteInfo = FavoritePrimes; + }; + DCF0C61F23260383008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C59A2326032B008B45A0; + remoteInfo = ComposableArchitecture; + }; + DCF0C62123260387008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C59A2326032B008B45A0; + remoteInfo = ComposableArchitecture; + }; + DCF0C6232326038A008B45A0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C59A2326032B008B45A0; + remoteInfo = ComposableArchitecture; + }; + DCF6C52523ECD13200A54EE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF6C51923ECD08A00A54EE0; + remoteInfo = ComposableArchitectureTestSupport; + }; + DCF6C52823ECD13B00A54EE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF6C51923ECD08A00A54EE0; + remoteInfo = ComposableArchitectureTestSupport; + }; + DCF6C52B23ECD14100A54EE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF6C51923ECD08A00A54EE0; + remoteInfo = ComposableArchitectureTestSupport; + }; + DCF6C52E23ECD16A00A54EE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF0C59A2326032B008B45A0; + remoteInfo = ComposableArchitecture; + }; + DCF6C54323ECD8DB00A54EE0 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = DC90716422FA102900B38B42 /* Project object */; + proxyType = 1; + remoteGlobalIDString = DCF6C51923ECD08A00A54EE0; + remoteInfo = ComposableArchitectureTestSupport; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXCopyFilesBuildPhase section */ + DCF0C5B12326032B008B45A0 /* Embed Frameworks */ = { + isa = PBXCopyFilesBuildPhase; + buildActionMask = 2147483647; + dstPath = ""; + dstSubfolderSpec = 10; + files = ( + DCF0C6182326036F008B45A0 /* FavoritePrimes.framework in Embed Frameworks */, + DCF0C5B22326032B008B45A0 /* ComposableArchitecture.framework in Embed Frameworks */, + CA304E7E23F48C1400E79D83 /* PrimeAlert.framework in Embed Frameworks */, + DCF0C5D423260348008B45A0 /* Counter.framework in Embed Frameworks */, + DCF0C5F62326035C008B45A0 /* PrimeModal.framework in Embed Frameworks */, + ); + name = "Embed Frameworks"; + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXCopyFilesBuildPhase section */ + +/* Begin PBXFileReference section */ + 2A5AFE422423FCC600640A58 /* CounterView_iOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CounterView_iOS.swift; sourceTree = ""; }; + 2A5AFE442423FD2E00640A58 /* CounterView_macOS.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CounterView_macOS.swift; sourceTree = ""; }; + CA304E7623F48C1400E79D83 /* PrimeAlert.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PrimeAlert.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + CA304E7823F48C1400E79D83 /* PrimeAlert.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrimeAlert.h; sourceTree = ""; }; + CA304E7923F48C1400E79D83 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + CA304E8223F48C2400E79D83 /* PrimeAlert.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimeAlert.swift; sourceTree = ""; }; + CA675A55238072DB00724A38 /* ComposableArchitectureTestSupport.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposableArchitectureTestSupport.swift; sourceTree = ""; }; + CA79FC2D239C23310096D881 /* PrimeTimeUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PrimeTimeUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + CA79FC2F239C23310096D881 /* PrimeTimeUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimeTimeUITests.swift; sourceTree = ""; }; + CA79FC31239C23310096D881 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DC29217322FB231F006090DF /* WolframAlpha.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = WolframAlpha.swift; sourceTree = ""; }; + DC39325F230241AF005A0B0A /* PrimeTime.playground */ = {isa = PBXFileReference; lastKnownFileType = file.playground; path = PrimeTime.playground; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.swift; }; + DC69E63D2404865D00FCF3C2 /* Base.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Base.xcconfig; sourceTree = ""; }; + DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Framework.xcconfig; sourceTree = ""; }; + DC69E63F2404865D00FCF3C2 /* Test.xcconfig */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.xcconfig; path = Test.xcconfig; sourceTree = ""; }; + DC90716C22FA102900B38B42 /* PrimeTime.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = PrimeTime.app; sourceTree = BUILT_PRODUCTS_DIR; }; + DC90716F22FA102900B38B42 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; + DC90717122FA102900B38B42 /* SceneDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SceneDelegate.swift; sourceTree = ""; }; + DC90717322FA102900B38B42 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + DC90717522FA102A00B38B42 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + DC90717822FA102A00B38B42 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + DC90717B22FA102A00B38B42 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; + DC90717D22FA102A00B38B42 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DC90718222FA102B00B38B42 /* PrimeTimeTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PrimeTimeTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DC90718622FA102B00B38B42 /* PrimeTimeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimeTimeTests.swift; sourceTree = ""; }; + DC90718822FA102B00B38B42 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DC90719122FA151D00B38B42 /* Util.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Util.swift; sourceTree = ""; }; + DCC168BC24044DED006A68B3 /* FileClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FileClient.swift; sourceTree = ""; }; + DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitecture.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C59D2326032B008B45A0 /* ComposableArchitecture.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComposableArchitecture.h; sourceTree = ""; }; + DCF0C59E2326032B008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C5A32326032B008B45A0 /* ComposableArchitectureTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ComposableArchitectureTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C5AA2326032B008B45A0 /* ComposableArchitectureTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposableArchitectureTests.swift; sourceTree = ""; }; + DCF0C5AC2326032B008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C5BE23260348008B45A0 /* Counter.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Counter.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C5C023260348008B45A0 /* Counter.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = Counter.h; sourceTree = ""; }; + DCF0C5C123260348008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C5C623260348008B45A0 /* CounterTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CounterTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C5CD23260348008B45A0 /* CounterTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CounterTests.swift; sourceTree = ""; }; + DCF0C5CF23260348008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C5E02326035C008B45A0 /* PrimeModal.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = PrimeModal.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C5E22326035C008B45A0 /* PrimeModal.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = PrimeModal.h; sourceTree = ""; }; + DCF0C5E32326035C008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C5E82326035C008B45A0 /* PrimeModalTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = PrimeModalTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C5EF2326035C008B45A0 /* PrimeModalTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimeModalTests.swift; sourceTree = ""; }; + DCF0C5F12326035C008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C6022326036F008B45A0 /* FavoritePrimes.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = FavoritePrimes.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C6042326036F008B45A0 /* FavoritePrimes.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = FavoritePrimes.h; sourceTree = ""; }; + DCF0C6052326036F008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C60A2326036F008B45A0 /* FavoritePrimesTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = FavoritePrimesTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF0C6112326036F008B45A0 /* FavoritePrimesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritePrimesTests.swift; sourceTree = ""; }; + DCF0C6132326036F008B45A0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF0C627232603B7008B45A0 /* ComposableArchitecture.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposableArchitecture.swift; sourceTree = ""; }; + DCF0C62923260405008B45A0 /* FavoritePrimes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = FavoritePrimes.swift; sourceTree = ""; }; + DCF0C62B2326040D008B45A0 /* PrimeModal.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PrimeModal.swift; sourceTree = ""; }; + DCF0C62D23260414008B45A0 /* Counter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Counter.swift; sourceTree = ""; }; + DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = ComposableArchitectureTestSupport.framework; sourceTree = BUILT_PRODUCTS_DIR; }; + DCF6C51C23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = ComposableArchitectureTestSupport.h; sourceTree = ""; }; + DCF6C51D23ECD08A00A54EE0 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + DCF6C52323ECD11200A54EE0 /* ComposableArchitectureSnapshotTesting.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ComposableArchitectureSnapshotTesting.swift; sourceTree = ""; }; + DCF6C53023ECD33000A54EE0 /* Effect.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Effect.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + CA304E7323F48C1400E79D83 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CA79FC2A239C23310096D881 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC90716922FA102900B38B42 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF88F02234D4A3B001BA79A /* ComposableArchitecture.framework in Frameworks */, + CA304E7D23F48C1400E79D83 /* PrimeAlert.framework in Frameworks */, + DCF0C5D323260348008B45A0 /* Counter.framework in Frameworks */, + DCF0C6172326036F008B45A0 /* FavoritePrimes.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC90717F22FA102B00B38B42 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C54523ECD8E800A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5982326032B008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CADB167323DCC4A30052C18C /* CasePaths in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5A02326032B008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C5A42326032B008B45A0 /* ComposableArchitecture.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5BB23260348008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CA304E8923F48C4400E79D83 /* PrimeAlert.framework in Frameworks */, + DCF88F01234D4A28001BA79A /* PrimeModal.framework in Frameworks */, + DCF88F00234D4A28001BA79A /* ComposableArchitecture.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5C323260348008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C52723ECD13600A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */, + DCF0C5C723260348008B45A0 /* Counter.framework in Frameworks */, + CA79FC28239C158C0096D881 /* SnapshotTesting in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5DD2326035C008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF88EFF234D4A20001BA79A /* ComposableArchitecture.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5E52326035C008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C52A23ECD13D00A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */, + DCF0C5E92326035C008B45A0 /* PrimeModal.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5FF2326036F008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + CA304E8623F48C3900E79D83 /* PrimeAlert.framework in Frameworks */, + DC36ED17234CD8040027F7A1 /* ComposableArchitecture.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C6072326036F008B45A0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C52D23ECD14400A54EE0 /* ComposableArchitectureTestSupport.framework in Frameworks */, + DCF0C60B2326036F008B45A0 /* FavoritePrimes.framework in Frameworks */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF6C51723ECD08A00A54EE0 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + CA304E7723F48C1400E79D83 /* PrimeAlert */ = { + isa = PBXGroup; + children = ( + CA304E7823F48C1400E79D83 /* PrimeAlert.h */, + CA304E7923F48C1400E79D83 /* Info.plist */, + CA304E8223F48C2400E79D83 /* PrimeAlert.swift */, + ); + path = PrimeAlert; + sourceTree = ""; + }; + CA79FC2E239C23310096D881 /* PrimeTimeUITests */ = { + isa = PBXGroup; + children = ( + CA79FC31239C23310096D881 /* Info.plist */, + CA79FC2F239C23310096D881 /* PrimeTimeUITests.swift */, + ); + path = PrimeTimeUITests; + sourceTree = ""; + }; + DC36ED16234CD8040027F7A1 /* Frameworks */ = { + isa = PBXGroup; + children = ( + ); + name = Frameworks; + sourceTree = ""; + }; + DC90716322FA102900B38B42 = { + isa = PBXGroup; + children = ( + DC39325F230241AF005A0B0A /* PrimeTime.playground */, + DC90716E22FA102900B38B42 /* PrimeTime */, + DC90718522FA102B00B38B42 /* PrimeTimeTests */, + CA79FC2E239C23310096D881 /* PrimeTimeUITests */, + DCF0C59C2326032B008B45A0 /* ComposableArchitecture */, + DCF0C5A92326032B008B45A0 /* ComposableArchitectureTests */, + DCF6C51B23ECD08A00A54EE0 /* ComposableArchitectureTestSupport */, + DCF0C5BF23260348008B45A0 /* Counter */, + DCF0C5CC23260348008B45A0 /* CounterTests */, + DCF0C5E12326035C008B45A0 /* PrimeModal */, + DCF0C5EE2326035C008B45A0 /* PrimeModalTests */, + DCF0C6032326036F008B45A0 /* FavoritePrimes */, + DCF0C6102326036F008B45A0 /* FavoritePrimesTests */, + CA304E7723F48C1400E79D83 /* PrimeAlert */, + DCC168BE240484EC006A68B3 /* Shared */, + DC90716D22FA102900B38B42 /* Products */, + DC36ED16234CD8040027F7A1 /* Frameworks */, + ); + sourceTree = ""; + }; + DC90716D22FA102900B38B42 /* Products */ = { + isa = PBXGroup; + children = ( + DC90716C22FA102900B38B42 /* PrimeTime.app */, + DC90718222FA102B00B38B42 /* PrimeTimeTests.xctest */, + DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */, + DCF0C5A32326032B008B45A0 /* ComposableArchitectureTests.xctest */, + DCF0C5BE23260348008B45A0 /* Counter.framework */, + DCF0C5C623260348008B45A0 /* CounterTests.xctest */, + DCF0C5E02326035C008B45A0 /* PrimeModal.framework */, + DCF0C5E82326035C008B45A0 /* PrimeModalTests.xctest */, + DCF0C6022326036F008B45A0 /* FavoritePrimes.framework */, + DCF0C60A2326036F008B45A0 /* FavoritePrimesTests.xctest */, + CA79FC2D239C23310096D881 /* PrimeTimeUITests.xctest */, + DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */, + CA304E7623F48C1400E79D83 /* PrimeAlert.framework */, + ); + name = Products; + sourceTree = ""; + }; + DC90716E22FA102900B38B42 /* PrimeTime */ = { + isa = PBXGroup; + children = ( + DC90716F22FA102900B38B42 /* AppDelegate.swift */, + DC90717122FA102900B38B42 /* SceneDelegate.swift */, + DC90717322FA102900B38B42 /* ContentView.swift */, + DC90719122FA151D00B38B42 /* Util.swift */, + DC90717522FA102A00B38B42 /* Assets.xcassets */, + DC90717A22FA102A00B38B42 /* LaunchScreen.storyboard */, + DC90717D22FA102A00B38B42 /* Info.plist */, + DC90717722FA102A00B38B42 /* Preview Content */, + ); + path = PrimeTime; + sourceTree = ""; + }; + DC90717722FA102A00B38B42 /* Preview Content */ = { + isa = PBXGroup; + children = ( + DC90717822FA102A00B38B42 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + DC90718522FA102B00B38B42 /* PrimeTimeTests */ = { + isa = PBXGroup; + children = ( + DC90718822FA102B00B38B42 /* Info.plist */, + DC90718622FA102B00B38B42 /* PrimeTimeTests.swift */, + ); + path = PrimeTimeTests; + sourceTree = ""; + }; + DCC168BE240484EC006A68B3 /* Shared */ = { + isa = PBXGroup; + children = ( + DC69E63D2404865D00FCF3C2 /* Base.xcconfig */, + DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */, + DC69E63F2404865D00FCF3C2 /* Test.xcconfig */, + ); + path = Shared; + sourceTree = ""; + }; + DCF0C59C2326032B008B45A0 /* ComposableArchitecture */ = { + isa = PBXGroup; + children = ( + DCF0C59D2326032B008B45A0 /* ComposableArchitecture.h */, + DCF0C59E2326032B008B45A0 /* Info.plist */, + DCF0C627232603B7008B45A0 /* ComposableArchitecture.swift */, + DCF6C53023ECD33000A54EE0 /* Effect.swift */, + ); + path = ComposableArchitecture; + sourceTree = ""; + }; + DCF0C5A92326032B008B45A0 /* ComposableArchitectureTests */ = { + isa = PBXGroup; + children = ( + DCF0C5AC2326032B008B45A0 /* Info.plist */, + DCF0C5AA2326032B008B45A0 /* ComposableArchitectureTests.swift */, + ); + path = ComposableArchitectureTests; + sourceTree = ""; + }; + DCF0C5BF23260348008B45A0 /* Counter */ = { + isa = PBXGroup; + children = ( + DCF0C5C023260348008B45A0 /* Counter.h */, + DCF0C5C123260348008B45A0 /* Info.plist */, + DCF0C62D23260414008B45A0 /* Counter.swift */, + 2A5AFE422423FCC600640A58 /* CounterView_iOS.swift */, + 2A5AFE442423FD2E00640A58 /* CounterView_macOS.swift */, + DC29217322FB231F006090DF /* WolframAlpha.swift */, + ); + path = Counter; + sourceTree = ""; + }; + DCF0C5CC23260348008B45A0 /* CounterTests */ = { + isa = PBXGroup; + children = ( + DCF0C5CD23260348008B45A0 /* CounterTests.swift */, + DCF0C5CF23260348008B45A0 /* Info.plist */, + DCF6C52323ECD11200A54EE0 /* ComposableArchitectureSnapshotTesting.swift */, + ); + path = CounterTests; + sourceTree = ""; + }; + DCF0C5E12326035C008B45A0 /* PrimeModal */ = { + isa = PBXGroup; + children = ( + DCF0C5E22326035C008B45A0 /* PrimeModal.h */, + DCF0C5E32326035C008B45A0 /* Info.plist */, + DCF0C62B2326040D008B45A0 /* PrimeModal.swift */, + ); + path = PrimeModal; + sourceTree = ""; + }; + DCF0C5EE2326035C008B45A0 /* PrimeModalTests */ = { + isa = PBXGroup; + children = ( + DCF0C5F12326035C008B45A0 /* Info.plist */, + DCF0C5EF2326035C008B45A0 /* PrimeModalTests.swift */, + ); + path = PrimeModalTests; + sourceTree = ""; + }; + DCF0C6032326036F008B45A0 /* FavoritePrimes */ = { + isa = PBXGroup; + children = ( + DCF0C6042326036F008B45A0 /* FavoritePrimes.h */, + DCF0C6052326036F008B45A0 /* Info.plist */, + DCF0C62923260405008B45A0 /* FavoritePrimes.swift */, + DCC168BC24044DED006A68B3 /* FileClient.swift */, + ); + path = FavoritePrimes; + sourceTree = ""; + }; + DCF0C6102326036F008B45A0 /* FavoritePrimesTests */ = { + isa = PBXGroup; + children = ( + DCF0C6132326036F008B45A0 /* Info.plist */, + DCF0C6112326036F008B45A0 /* FavoritePrimesTests.swift */, + ); + path = FavoritePrimesTests; + sourceTree = ""; + }; + DCF6C51B23ECD08A00A54EE0 /* ComposableArchitectureTestSupport */ = { + isa = PBXGroup; + children = ( + DCF6C51C23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.h */, + DCF6C51D23ECD08A00A54EE0 /* Info.plist */, + CA675A55238072DB00724A38 /* ComposableArchitectureTestSupport.swift */, + ); + path = ComposableArchitectureTestSupport; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXHeadersBuildPhase section */ + CA304E7123F48C1400E79D83 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + CA304E7A23F48C1400E79D83 /* PrimeAlert.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5962326032B008B45A0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C5AD2326032B008B45A0 /* ComposableArchitecture.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5B923260348008B45A0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C5D023260348008B45A0 /* Counter.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5DB2326035C008B45A0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C5F22326035C008B45A0 /* PrimeModal.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5FD2326036F008B45A0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C6142326036F008B45A0 /* FavoritePrimes.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF6C51523ECD08A00A54EE0 /* Headers */ = { + isa = PBXHeadersBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C51E23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.h in Headers */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXHeadersBuildPhase section */ + +/* Begin PBXNativeTarget section */ + CA304E7523F48C1400E79D83 /* PrimeAlert */ = { + isa = PBXNativeTarget; + buildConfigurationList = CA304E8123F48C1400E79D83 /* Build configuration list for PBXNativeTarget "PrimeAlert" */; + buildPhases = ( + CA304E7123F48C1400E79D83 /* Headers */, + CA304E7223F48C1400E79D83 /* Sources */, + CA304E7323F48C1400E79D83 /* Frameworks */, + CA304E7423F48C1400E79D83 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = PrimeAlert; + productName = PrimeAlert; + productReference = CA304E7623F48C1400E79D83 /* PrimeAlert.framework */; + productType = "com.apple.product-type.framework"; + }; + CA79FC2C239C23310096D881 /* PrimeTimeUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = CA79FC34239C23310096D881 /* Build configuration list for PBXNativeTarget "PrimeTimeUITests" */; + buildPhases = ( + CA79FC29239C23310096D881 /* Sources */, + CA79FC2A239C23310096D881 /* Frameworks */, + CA79FC2B239C23310096D881 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + CA79FC33239C23310096D881 /* PBXTargetDependency */, + ); + name = PrimeTimeUITests; + productName = PrimeTimeUITests; + productReference = CA79FC2D239C23310096D881 /* PrimeTimeUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; + DC90716B22FA102900B38B42 /* PrimeTime */ = { + isa = PBXNativeTarget; + buildConfigurationList = DC90718B22FA102B00B38B42 /* Build configuration list for PBXNativeTarget "PrimeTime" */; + buildPhases = ( + DC90716822FA102900B38B42 /* Sources */, + DC90716922FA102900B38B42 /* Frameworks */, + DC90716A22FA102900B38B42 /* Resources */, + DCF0C5B12326032B008B45A0 /* Embed Frameworks */, + ); + buildRules = ( + ); + dependencies = ( + DCF0C5AF2326032B008B45A0 /* PBXTargetDependency */, + DCF0C5D223260348008B45A0 /* PBXTargetDependency */, + DCF0C6162326036F008B45A0 /* PBXTargetDependency */, + CA304E7C23F48C1400E79D83 /* PBXTargetDependency */, + ); + name = PrimeTime; + productName = PrimeTime; + productReference = DC90716C22FA102900B38B42 /* PrimeTime.app */; + productType = "com.apple.product-type.application"; + }; + DC90718122FA102B00B38B42 /* PrimeTimeTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = DC90718E22FA102B00B38B42 /* Build configuration list for PBXNativeTarget "PrimeTimeTests" */; + buildPhases = ( + DC90717E22FA102B00B38B42 /* Sources */, + DC90717F22FA102B00B38B42 /* Frameworks */, + DC90718022FA102B00B38B42 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF6C54423ECD8DB00A54EE0 /* PBXTargetDependency */, + DC90718422FA102B00B38B42 /* PBXTargetDependency */, + ); + name = PrimeTimeTests; + productName = PrimeTimeTests; + productReference = DC90718222FA102B00B38B42 /* PrimeTimeTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + DCF0C59A2326032B008B45A0 /* ComposableArchitecture */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C5B72326032B008B45A0 /* Build configuration list for PBXNativeTarget "ComposableArchitecture" */; + buildPhases = ( + DCF0C5962326032B008B45A0 /* Headers */, + DCF0C5972326032B008B45A0 /* Sources */, + DCF0C5982326032B008B45A0 /* Frameworks */, + DCF0C5992326032B008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = ComposableArchitecture; + packageProductDependencies = ( + CADB167223DCC4A30052C18C /* CasePaths */, + ); + productName = ComposableArchitecture; + productReference = DCF0C59B2326032B008B45A0 /* ComposableArchitecture.framework */; + productType = "com.apple.product-type.framework"; + }; + DCF0C5A22326032B008B45A0 /* ComposableArchitectureTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C5B82326032B008B45A0 /* Build configuration list for PBXNativeTarget "ComposableArchitectureTests" */; + buildPhases = ( + DCF0C59F2326032B008B45A0 /* Sources */, + DCF0C5A02326032B008B45A0 /* Frameworks */, + DCF0C5A12326032B008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF0C5A62326032B008B45A0 /* PBXTargetDependency */, + ); + name = ComposableArchitectureTests; + productName = ComposableArchitectureTests; + productReference = DCF0C5A32326032B008B45A0 /* ComposableArchitectureTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + DCF0C5BD23260348008B45A0 /* Counter */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C5D523260348008B45A0 /* Build configuration list for PBXNativeTarget "Counter" */; + buildPhases = ( + DCF0C5B923260348008B45A0 /* Headers */, + DCF0C5BA23260348008B45A0 /* Sources */, + DCF0C5BB23260348008B45A0 /* Frameworks */, + DCF0C5BC23260348008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + CA304E8823F48C4000E79D83 /* PBXTargetDependency */, + CAD67E1D2332982E000C7787 /* PBXTargetDependency */, + DCF0C6242326038A008B45A0 /* PBXTargetDependency */, + ); + name = Counter; + productName = Counter; + productReference = DCF0C5BE23260348008B45A0 /* Counter.framework */; + productType = "com.apple.product-type.framework"; + }; + DCF0C5C523260348008B45A0 /* CounterTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C5D823260348008B45A0 /* Build configuration list for PBXNativeTarget "CounterTests" */; + buildPhases = ( + DCF0C5C223260348008B45A0 /* Sources */, + DCF0C5C323260348008B45A0 /* Frameworks */, + DCF0C5C423260348008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF6C52623ECD13200A54EE0 /* PBXTargetDependency */, + DCF0C5C923260348008B45A0 /* PBXTargetDependency */, + ); + name = CounterTests; + packageProductDependencies = ( + CA79FC27239C158C0096D881 /* SnapshotTesting */, + ); + productName = CounterTests; + productReference = DCF0C5C623260348008B45A0 /* CounterTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + DCF0C5DF2326035C008B45A0 /* PrimeModal */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C5F72326035C008B45A0 /* Build configuration list for PBXNativeTarget "PrimeModal" */; + buildPhases = ( + DCF0C5DB2326035C008B45A0 /* Headers */, + DCF0C5DC2326035C008B45A0 /* Sources */, + DCF0C5DD2326035C008B45A0 /* Frameworks */, + DCF0C5DE2326035C008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF0C62223260387008B45A0 /* PBXTargetDependency */, + ); + name = PrimeModal; + productName = PrimeModal; + productReference = DCF0C5E02326035C008B45A0 /* PrimeModal.framework */; + productType = "com.apple.product-type.framework"; + }; + DCF0C5E72326035C008B45A0 /* PrimeModalTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C5FA2326035C008B45A0 /* Build configuration list for PBXNativeTarget "PrimeModalTests" */; + buildPhases = ( + DCF0C5E42326035C008B45A0 /* Sources */, + DCF0C5E52326035C008B45A0 /* Frameworks */, + DCF0C5E62326035C008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF6C52923ECD13B00A54EE0 /* PBXTargetDependency */, + DCF0C5EB2326035C008B45A0 /* PBXTargetDependency */, + ); + name = PrimeModalTests; + productName = PrimeModalTests; + productReference = DCF0C5E82326035C008B45A0 /* PrimeModalTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + DCF0C6012326036F008B45A0 /* FavoritePrimes */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C6192326036F008B45A0 /* Build configuration list for PBXNativeTarget "FavoritePrimes" */; + buildPhases = ( + DCF0C5FD2326036F008B45A0 /* Headers */, + DCF0C5FE2326036F008B45A0 /* Sources */, + DCF0C5FF2326036F008B45A0 /* Frameworks */, + DCF0C6002326036F008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + CA304E8523F48C3400E79D83 /* PBXTargetDependency */, + DCF0C62023260383008B45A0 /* PBXTargetDependency */, + ); + name = FavoritePrimes; + productName = FavoritePrimes; + productReference = DCF0C6022326036F008B45A0 /* FavoritePrimes.framework */; + productType = "com.apple.product-type.framework"; + }; + DCF0C6092326036F008B45A0 /* FavoritePrimesTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF0C61C2326036F008B45A0 /* Build configuration list for PBXNativeTarget "FavoritePrimesTests" */; + buildPhases = ( + DCF0C6062326036F008B45A0 /* Sources */, + DCF0C6072326036F008B45A0 /* Frameworks */, + DCF0C6082326036F008B45A0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF6C52C23ECD14100A54EE0 /* PBXTargetDependency */, + DCF0C60D2326036F008B45A0 /* PBXTargetDependency */, + ); + name = FavoritePrimesTests; + productName = FavoritePrimesTests; + productReference = DCF0C60A2326036F008B45A0 /* FavoritePrimesTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + DCF6C51923ECD08A00A54EE0 /* ComposableArchitectureTestSupport */ = { + isa = PBXNativeTarget; + buildConfigurationList = DCF6C52123ECD08A00A54EE0 /* Build configuration list for PBXNativeTarget "ComposableArchitectureTestSupport" */; + buildPhases = ( + DCF6C51523ECD08A00A54EE0 /* Headers */, + DCF6C51623ECD08A00A54EE0 /* Sources */, + DCF6C51723ECD08A00A54EE0 /* Frameworks */, + DCF6C51823ECD08A00A54EE0 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + DCF6C52F23ECD16A00A54EE0 /* PBXTargetDependency */, + ); + name = ComposableArchitectureTestSupport; + productName = ComposableArchitectureTestSupport; + productReference = DCF6C51A23ECD08A00A54EE0 /* ComposableArchitectureTestSupport.framework */; + productType = "com.apple.product-type.framework"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + DC90716422FA102900B38B42 /* Project object */ = { + isa = PBXProject; + attributes = { + LastSwiftUpdateCheck = 1120; + LastUpgradeCheck = 1100; + ORGANIZATIONNAME = "Point-Free"; + TargetAttributes = { + CA304E7523F48C1400E79D83 = { + CreatedOnToolsVersion = 11.3.1; + LastSwiftMigration = 1130; + }; + CA79FC2C239C23310096D881 = { + CreatedOnToolsVersion = 11.2.1; + TestTargetID = DC90716B22FA102900B38B42; + }; + DC90716B22FA102900B38B42 = { + CreatedOnToolsVersion = 11.0; + }; + DC90718122FA102B00B38B42 = { + CreatedOnToolsVersion = 11.0; + TestTargetID = DC90716B22FA102900B38B42; + }; + DCF0C59A2326032B008B45A0 = { + CreatedOnToolsVersion = 11.0; + LastSwiftMigration = 1100; + }; + DCF0C5A22326032B008B45A0 = { + CreatedOnToolsVersion = 11.0; + TestTargetID = DC90716B22FA102900B38B42; + }; + DCF0C5BD23260348008B45A0 = { + CreatedOnToolsVersion = 11.0; + LastSwiftMigration = 1100; + }; + DCF0C5C523260348008B45A0 = { + CreatedOnToolsVersion = 11.0; + TestTargetID = DC90716B22FA102900B38B42; + }; + DCF0C5DF2326035C008B45A0 = { + CreatedOnToolsVersion = 11.0; + LastSwiftMigration = 1100; + }; + DCF0C5E72326035C008B45A0 = { + CreatedOnToolsVersion = 11.0; + }; + DCF0C6012326036F008B45A0 = { + CreatedOnToolsVersion = 11.0; + LastSwiftMigration = 1100; + }; + DCF0C6092326036F008B45A0 = { + CreatedOnToolsVersion = 11.0; + }; + DCF6C51923ECD08A00A54EE0 = { + CreatedOnToolsVersion = 11.3.1; + }; + }; + }; + buildConfigurationList = DC90716722FA102900B38B42 /* Build configuration list for PBXProject "PrimeTime" */; + compatibilityVersion = "Xcode 9.3"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = DC90716322FA102900B38B42; + packageReferences = ( + CA79FC26239C158C0096D881 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */, + CADB167123DCC4A30052C18C /* XCRemoteSwiftPackageReference "swift-case-paths" */, + ); + productRefGroup = DC90716D22FA102900B38B42 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + DC90716B22FA102900B38B42 /* PrimeTime */, + DC90718122FA102B00B38B42 /* PrimeTimeTests */, + CA79FC2C239C23310096D881 /* PrimeTimeUITests */, + DCF0C59A2326032B008B45A0 /* ComposableArchitecture */, + DCF0C5A22326032B008B45A0 /* ComposableArchitectureTests */, + DCF6C51923ECD08A00A54EE0 /* ComposableArchitectureTestSupport */, + DCF0C5BD23260348008B45A0 /* Counter */, + DCF0C5C523260348008B45A0 /* CounterTests */, + DCF0C5DF2326035C008B45A0 /* PrimeModal */, + DCF0C5E72326035C008B45A0 /* PrimeModalTests */, + DCF0C6012326036F008B45A0 /* FavoritePrimes */, + DCF0C6092326036F008B45A0 /* FavoritePrimesTests */, + CA304E7523F48C1400E79D83 /* PrimeAlert */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + CA304E7423F48C1400E79D83 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CA79FC2B239C23310096D881 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC90716A22FA102900B38B42 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DC69E6412404865D00FCF3C2 /* Framework.xcconfig in Resources */, + DC90717C22FA102A00B38B42 /* LaunchScreen.storyboard in Resources */, + DC69E6422404865D00FCF3C2 /* Test.xcconfig in Resources */, + DC90717922FA102A00B38B42 /* Preview Assets.xcassets in Resources */, + DC90717622FA102A00B38B42 /* Assets.xcassets in Resources */, + DC69E6402404865D00FCF3C2 /* Base.xcconfig in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC90718022FA102B00B38B42 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5992326032B008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5A12326032B008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5BC23260348008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5C423260348008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5DE2326035C008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5E62326035C008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C6002326036F008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C6082326036F008B45A0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF6C51823ECD08A00A54EE0 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + CA304E7223F48C1400E79D83 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CA304E8323F48C2400E79D83 /* PrimeAlert.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + CA79FC29239C23310096D881 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + CA79FC30239C23310096D881 /* PrimeTimeUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC90716822FA102900B38B42 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DC90717022FA102900B38B42 /* AppDelegate.swift in Sources */, + DC90717222FA102900B38B42 /* SceneDelegate.swift in Sources */, + DC90717422FA102900B38B42 /* ContentView.swift in Sources */, + DC90719222FA151D00B38B42 /* Util.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DC90717E22FA102B00B38B42 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DC90718722FA102B00B38B42 /* PrimeTimeTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5972326032B008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C53123ECD33000A54EE0 /* Effect.swift in Sources */, + DCF0C628232603B7008B45A0 /* ComposableArchitecture.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C59F2326032B008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C5AB2326032B008B45A0 /* ComposableArchitectureTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5BA23260348008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C62E23260414008B45A0 /* Counter.swift in Sources */, + CAD67E2023329887000C7787 /* WolframAlpha.swift in Sources */, + 2A5AFE432423FCC600640A58 /* CounterView_iOS.swift in Sources */, + 2A5AFE452423FD2E00640A58 /* CounterView_macOS.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5C223260348008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C52423ECD11200A54EE0 /* ComposableArchitectureSnapshotTesting.swift in Sources */, + DCF0C5CE23260348008B45A0 /* CounterTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5DC2326035C008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C62C2326040D008B45A0 /* PrimeModal.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5E42326035C008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C5F02326035C008B45A0 /* PrimeModalTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C5FE2326036F008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCC168BD24044DED006A68B3 /* FileClient.swift in Sources */, + DCF0C62A23260405008B45A0 /* FavoritePrimes.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF0C6062326036F008B45A0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF0C6122326036F008B45A0 /* FavoritePrimesTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + DCF6C51623ECD08A00A54EE0 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + DCF6C52223ECD10100A54EE0 /* ComposableArchitectureTestSupport.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + CA304E7C23F48C1400E79D83 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CA304E7523F48C1400E79D83 /* PrimeAlert */; + targetProxy = CA304E7B23F48C1400E79D83 /* PBXContainerItemProxy */; + }; + CA304E8523F48C3400E79D83 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CA304E7523F48C1400E79D83 /* PrimeAlert */; + targetProxy = CA304E8423F48C3400E79D83 /* PBXContainerItemProxy */; + }; + CA304E8823F48C4000E79D83 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = CA304E7523F48C1400E79D83 /* PrimeAlert */; + targetProxy = CA304E8723F48C4000E79D83 /* PBXContainerItemProxy */; + }; + CA79FC33239C23310096D881 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DC90716B22FA102900B38B42 /* PrimeTime */; + targetProxy = CA79FC32239C23310096D881 /* PBXContainerItemProxy */; + }; + CAD67E1D2332982E000C7787 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C5DF2326035C008B45A0 /* PrimeModal */; + targetProxy = CAD67E1C2332982E000C7787 /* PBXContainerItemProxy */; + }; + DC90718422FA102B00B38B42 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DC90716B22FA102900B38B42 /* PrimeTime */; + targetProxy = DC90718322FA102B00B38B42 /* PBXContainerItemProxy */; + }; + DCF0C5A62326032B008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C59A2326032B008B45A0 /* ComposableArchitecture */; + targetProxy = DCF0C5A52326032B008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C5AF2326032B008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C59A2326032B008B45A0 /* ComposableArchitecture */; + targetProxy = DCF0C5AE2326032B008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C5C923260348008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C5BD23260348008B45A0 /* Counter */; + targetProxy = DCF0C5C823260348008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C5D223260348008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C5BD23260348008B45A0 /* Counter */; + targetProxy = DCF0C5D123260348008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C5EB2326035C008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C5DF2326035C008B45A0 /* PrimeModal */; + targetProxy = DCF0C5EA2326035C008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C60D2326036F008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C6012326036F008B45A0 /* FavoritePrimes */; + targetProxy = DCF0C60C2326036F008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C6162326036F008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C6012326036F008B45A0 /* FavoritePrimes */; + targetProxy = DCF0C6152326036F008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C62023260383008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C59A2326032B008B45A0 /* ComposableArchitecture */; + targetProxy = DCF0C61F23260383008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C62223260387008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C59A2326032B008B45A0 /* ComposableArchitecture */; + targetProxy = DCF0C62123260387008B45A0 /* PBXContainerItemProxy */; + }; + DCF0C6242326038A008B45A0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C59A2326032B008B45A0 /* ComposableArchitecture */; + targetProxy = DCF0C6232326038A008B45A0 /* PBXContainerItemProxy */; + }; + DCF6C52623ECD13200A54EE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF6C51923ECD08A00A54EE0 /* ComposableArchitectureTestSupport */; + targetProxy = DCF6C52523ECD13200A54EE0 /* PBXContainerItemProxy */; + }; + DCF6C52923ECD13B00A54EE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF6C51923ECD08A00A54EE0 /* ComposableArchitectureTestSupport */; + targetProxy = DCF6C52823ECD13B00A54EE0 /* PBXContainerItemProxy */; + }; + DCF6C52C23ECD14100A54EE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF6C51923ECD08A00A54EE0 /* ComposableArchitectureTestSupport */; + targetProxy = DCF6C52B23ECD14100A54EE0 /* PBXContainerItemProxy */; + }; + DCF6C52F23ECD16A00A54EE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF0C59A2326032B008B45A0 /* ComposableArchitecture */; + targetProxy = DCF6C52E23ECD16A00A54EE0 /* PBXContainerItemProxy */; + }; + DCF6C54423ECD8DB00A54EE0 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = DCF6C51923ECD08A00A54EE0 /* ComposableArchitectureTestSupport */; + targetProxy = DCF6C54323ECD8DB00A54EE0 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin PBXVariantGroup section */ + DC90717A22FA102A00B38B42 /* LaunchScreen.storyboard */ = { + isa = PBXVariantGroup; + children = ( + DC90717B22FA102A00B38B42 /* Base */, + ); + name = LaunchScreen.storyboard; + sourceTree = ""; + }; +/* End PBXVariantGroup section */ + +/* Begin XCBuildConfiguration section */ + CA304E7F23F48C1400E79D83 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = PrimeAlert/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.PrimeAlert; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + CA304E8023F48C1400E79D83 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = PrimeAlert/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.PrimeAlert; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + CA79FC35239C23310096D881 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PrimeTimeUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.PrimeTimeUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = PrimeTime; + }; + name = Debug; + }; + CA79FC36239C23310096D881 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PrimeTimeUITests/Info.plist; + IPHONEOS_DEPLOYMENT_TARGET = 13.2; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = com.PrimeTimeUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = PrimeTime; + }; + name = Release; + }; + DC90718922FA102B00B38B42 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + DC90718A22FA102B00B38B42 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++14"; + CLANG_CXX_LIBRARY = "libc++"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 13.0; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + DC90718C22FA102B00B38B42 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "PrimeTime/Preview\\ Content"; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = PrimeTime/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeTime; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + DC90718D22FA102B00B38B42 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + CODE_SIGN_STYLE = Automatic; + DEVELOPMENT_ASSET_PATHS = "PrimeTime/Preview\\ Content"; + ENABLE_PREVIEWS = YES; + INFOPLIST_FILE = PrimeTime/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeTime; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + DC90718F22FA102B00B38B42 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PrimeTimeTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeTimeTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PrimeTime.app/PrimeTime"; + }; + name = Debug; + }; + DC90719022FA102B00B38B42 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PrimeTimeTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeTimeTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PrimeTime.app/PrimeTime"; + }; + name = Release; + }; + DCF0C5B32326032B008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = ComposableArchitecture/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.ComposableArchitecture; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DCF0C5B42326032B008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = ComposableArchitecture/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.ComposableArchitecture; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DCF0C5B52326032B008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = ComposableArchitectureTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.ComposableArchitectureTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PrimeTime.app/PrimeTime"; + }; + name = Debug; + }; + DCF0C5B62326032B008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = ComposableArchitectureTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.ComposableArchitectureTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PrimeTime.app/PrimeTime"; + }; + name = Release; + }; + DCF0C5D623260348008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Counter/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.Counter; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DCF0C5D723260348008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = Counter/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.Counter; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DCF0C5D923260348008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = CounterTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.CounterTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PrimeTime.app/PrimeTime"; + }; + name = Debug; + }; + DCF0C5DA23260348008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = CounterTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.CounterTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/PrimeTime.app/PrimeTime"; + }; + name = Release; + }; + DCF0C5F82326035C008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = PrimeModal/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeModal; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DCF0C5F92326035C008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = PrimeModal/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeModal; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DCF0C5FB2326035C008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PrimeModalTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeModalTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + DCF0C5FC2326035C008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = PrimeModalTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.PrimeModalTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + DCF0C61A2326036F008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = FavoritePrimes/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.FavoritePrimes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DCF0C61B2326036F008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63E2404865D00FCF3C2 /* Framework.xcconfig */; + buildSettings = { + CLANG_ENABLE_MODULES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + INFOPLIST_FILE = FavoritePrimes/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.FavoritePrimes; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; + DCF0C61D2326036F008B45A0 /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = FavoritePrimesTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.FavoritePrimesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + DCF0C61E2326036F008B45A0 /* Release */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = DC69E63F2404865D00FCF3C2 /* Test.xcconfig */; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + INFOPLIST_FILE = FavoritePrimesTests/Info.plist; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.FavoritePrimesTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + DCF6C51F23ECD08A00A54EE0 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(DEVELOPER_FRAMEWORKS_DIR)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + INFOPLIST_FILE = ComposableArchitectureTestSupport/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-weak_framework", + XCTest, + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.ComposableArchitectureTestSupport; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Debug; + }; + DCF6C52023ECD08A00A54EE0 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEFINES_MODULE = YES; + DYLIB_COMPATIBILITY_VERSION = 1; + DYLIB_CURRENT_VERSION = 1; + DYLIB_INSTALL_NAME_BASE = "@rpath"; + FRAMEWORK_SEARCH_PATHS = ( + "$(DEVELOPER_FRAMEWORKS_DIR)", + "$(PLATFORM_DIR)/Developer/Library/Frameworks", + ); + INFOPLIST_FILE = ComposableArchitectureTestSupport/Info.plist; + INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + "@loader_path/Frameworks", + ); + OTHER_LDFLAGS = ( + "-weak_framework", + XCTest, + ); + PRODUCT_BUNDLE_IDENTIFIER = co.pointfree.ComposableArchitectureTestSupport; + PRODUCT_NAME = "$(TARGET_NAME:c99extidentifier)"; + SKIP_INSTALL = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + VERSIONING_SYSTEM = "apple-generic"; + VERSION_INFO_PREFIX = ""; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + CA304E8123F48C1400E79D83 /* Build configuration list for PBXNativeTarget "PrimeAlert" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CA304E7F23F48C1400E79D83 /* Debug */, + CA304E8023F48C1400E79D83 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + CA79FC34239C23310096D881 /* Build configuration list for PBXNativeTarget "PrimeTimeUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + CA79FC35239C23310096D881 /* Debug */, + CA79FC36239C23310096D881 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DC90716722FA102900B38B42 /* Build configuration list for PBXProject "PrimeTime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DC90718922FA102B00B38B42 /* Debug */, + DC90718A22FA102B00B38B42 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DC90718B22FA102B00B38B42 /* Build configuration list for PBXNativeTarget "PrimeTime" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DC90718C22FA102B00B38B42 /* Debug */, + DC90718D22FA102B00B38B42 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DC90718E22FA102B00B38B42 /* Build configuration list for PBXNativeTarget "PrimeTimeTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DC90718F22FA102B00B38B42 /* Debug */, + DC90719022FA102B00B38B42 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C5B72326032B008B45A0 /* Build configuration list for PBXNativeTarget "ComposableArchitecture" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C5B32326032B008B45A0 /* Debug */, + DCF0C5B42326032B008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C5B82326032B008B45A0 /* Build configuration list for PBXNativeTarget "ComposableArchitectureTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C5B52326032B008B45A0 /* Debug */, + DCF0C5B62326032B008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C5D523260348008B45A0 /* Build configuration list for PBXNativeTarget "Counter" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C5D623260348008B45A0 /* Debug */, + DCF0C5D723260348008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C5D823260348008B45A0 /* Build configuration list for PBXNativeTarget "CounterTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C5D923260348008B45A0 /* Debug */, + DCF0C5DA23260348008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C5F72326035C008B45A0 /* Build configuration list for PBXNativeTarget "PrimeModal" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C5F82326035C008B45A0 /* Debug */, + DCF0C5F92326035C008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C5FA2326035C008B45A0 /* Build configuration list for PBXNativeTarget "PrimeModalTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C5FB2326035C008B45A0 /* Debug */, + DCF0C5FC2326035C008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C6192326036F008B45A0 /* Build configuration list for PBXNativeTarget "FavoritePrimes" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C61A2326036F008B45A0 /* Debug */, + DCF0C61B2326036F008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF0C61C2326036F008B45A0 /* Build configuration list for PBXNativeTarget "FavoritePrimesTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF0C61D2326036F008B45A0 /* Debug */, + DCF0C61E2326036F008B45A0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + DCF6C52123ECD08A00A54EE0 /* Build configuration list for PBXNativeTarget "ComposableArchitectureTestSupport" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + DCF6C51F23ECD08A00A54EE0 /* Debug */, + DCF6C52023ECD08A00A54EE0 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + +/* Begin XCRemoteSwiftPackageReference section */ + CA79FC26239C158C0096D881 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/pointfreeco/swift-snapshot-testing.git"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 1.6.0; + }; + }; + CADB167123DCC4A30052C18C /* XCRemoteSwiftPackageReference "swift-case-paths" */ = { + isa = XCRemoteSwiftPackageReference; + repositoryURL = "https://github.com/pointfreeco/swift-case-paths"; + requirement = { + kind = upToNextMajorVersion; + minimumVersion = 0.1.0; + }; + }; +/* End XCRemoteSwiftPackageReference section */ + +/* Begin XCSwiftPackageProductDependency section */ + CA79FC27239C158C0096D881 /* SnapshotTesting */ = { + isa = XCSwiftPackageProductDependency; + package = CA79FC26239C158C0096D881 /* XCRemoteSwiftPackageReference "swift-snapshot-testing" */; + productName = SnapshotTesting; + }; + CADB167223DCC4A30052C18C /* CasePaths */ = { + isa = XCSwiftPackageProductDependency; + package = CADB167123DCC4A30052C18C /* XCRemoteSwiftPackageReference "swift-case-paths" */; + productName = CasePaths; + }; +/* End XCSwiftPackageProductDependency section */ + }; + rootObject = DC90716422FA102900B38B42 /* Project object */; +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 00000000..919434a6 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 00000000..18d98100 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/ComposableArchitecture.xcscheme b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/ComposableArchitecture.xcscheme new file mode 100644 index 00000000..58aa1d24 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/ComposableArchitecture.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/Counter.xcscheme b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/Counter.xcscheme new file mode 100644 index 00000000..e0fc8fb9 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/Counter.xcscheme @@ -0,0 +1,87 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/FavoritePrimes.xcscheme b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/FavoritePrimes.xcscheme new file mode 100644 index 00000000..02e7ebd3 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/FavoritePrimes.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeAlert.xcscheme b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeAlert.xcscheme new file mode 100644 index 00000000..22e2deef --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeAlert.xcscheme @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeModal.xcscheme b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeModal.xcscheme new file mode 100644 index 00000000..73d691d1 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeModal.xcscheme @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeTime.xcscheme b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeTime.xcscheme new file mode 100644 index 00000000..d64f316c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime.xcodeproj/xcshareddata/xcschemes/PrimeTime.xcscheme @@ -0,0 +1,138 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/AppDelegate.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/AppDelegate.swift new file mode 100644 index 00000000..3ba17b06 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/AppDelegate.swift @@ -0,0 +1,19 @@ +import UIKit +@testable import Counter + +@UIApplicationMain +class AppDelegate: UIResponder, UIApplicationDelegate { + func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { + + return true + } + + // MARK: UISceneSession Lifecycle + + func application(_ application: UIApplication, configurationForConnecting connectingSceneSession: UISceneSession, options: UIScene.ConnectionOptions) -> UISceneConfiguration { + return UISceneConfiguration(name: "Default Configuration", sessionRole: connectingSceneSession.role) + } + + func application(_ application: UIApplication, didDiscardSceneSessions sceneSessions: Set) { + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/AppIcon.appiconset/Contents.json b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 00000000..d8db8d65 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,98 @@ +{ + "images" : [ + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "20x20", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "29x29", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "40x40", + "scale" : "3x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "2x" + }, + { + "idiom" : "iphone", + "size" : "60x60", + "scale" : "3x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "20x20", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "29x29", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "40x40", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "1x" + }, + { + "idiom" : "ipad", + "size" : "76x76", + "scale" : "2x" + }, + { + "idiom" : "ipad", + "size" : "83.5x83.5", + "scale" : "2x" + }, + { + "idiom" : "ios-marketing", + "size" : "1024x1024", + "scale" : "1x" + } + ], + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/Contents.json b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Base.lproj/LaunchScreen.storyboard b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Base.lproj/LaunchScreen.storyboard new file mode 100644 index 00000000..865e9329 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Base.lproj/LaunchScreen.storyboard @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/ContentView.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/ContentView.swift new file mode 100644 index 00000000..89bb3abc --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/ContentView.swift @@ -0,0 +1,214 @@ +import CasePaths +import Combine +import ComposableArchitecture +import Counter +import FavoritePrimes +import PrimeAlert +import SwiftUI + +struct AppState: Equatable { + var count = 0 + var favoritePrimes: [Int] = [] + var loggedInUser: User? = nil + var activityFeed: [Activity] = [] + var alertNthPrime: PrimeAlert? = nil + var isNthPrimeRequestInFlight: Bool = false + var isPrimeDetailShown: Bool = false + + struct Activity: Equatable { + let timestamp: Date + let type: ActivityType + + enum ActivityType: Equatable { + case addedFavoritePrime(Int) + case removedFavoritePrime(Int) + } + } + + struct User: Equatable { + let id: Int + let name: String + let bio: String + } +} + +enum AppAction: Equatable { + case counterView(CounterFeatureAction) + case offlineCounterView(CounterFeatureAction) + case favoritePrimes(FavoritePrimesAction) +} + +extension AppState { + var favoritePrimesState: FavoritePrimesState { + get { + (self.alertNthPrime, self.favoritePrimes) + } + set { + (self.alertNthPrime, self.favoritePrimes) = newValue + } + } + + var counterView: CounterFeatureState { + get { + CounterFeatureState( + alertNthPrime: self.alertNthPrime, + count: self.count, + favoritePrimes: self.favoritePrimes, + isNthPrimeRequestInFlight: self.isNthPrimeRequestInFlight, + isPrimeDetailShown: self.isPrimeDetailShown + ) + } + set { + self.alertNthPrime = newValue.alertNthPrime + self.count = newValue.count + self.favoritePrimes = newValue.favoritePrimes + self.isNthPrimeRequestInFlight = newValue.isNthPrimeRequestInFlight + self.isPrimeDetailShown = newValue.isPrimeDetailShown + } + } +} + +typealias AppEnvironment = ( + fileClient: FileClient, + nthPrime: (Int) -> Effect, + offlineNthPrime: (Int) -> Effect +) + +let appReducer: Reducer = .combine( + counterFeatureReducer.pullback( + value: \AppState.counterView, + action: /AppAction.counterView, + environment: { $0.nthPrime } + ), + counterFeatureReducer.pullback( + value: \AppState.counterView, + action: /AppAction.offlineCounterView, + environment: { $0.offlineNthPrime } + ), + favoritePrimesReducer.pullback( + value: \.favoritePrimesState, + action: /AppAction.favoritePrimes, + environment: { ($0.fileClient, $0.nthPrime) } + ) +) + +extension Reducer where Value == AppState, Action == AppAction, Environment == AppEnvironment { + func activityFeed() -> Reducer { + return .init { state, action, environment in + switch action { + case .counterView(.counter), + .offlineCounterView(.counter), + .favoritePrimes(.loadedFavoritePrimes), + .favoritePrimes(.loadButtonTapped), + .favoritePrimes(.saveButtonTapped), + .favoritePrimes(.primeButtonTapped(_)), + .favoritePrimes(.nthPrimeResponse), + .favoritePrimes(.alertDismissButtonTapped): + break + case .counterView(.primeModal(.removeFavoritePrimeTapped)), + .offlineCounterView(.primeModal(.removeFavoritePrimeTapped)): + state.activityFeed.append(.init(timestamp: Date(), type: .removedFavoritePrime(state.count))) + + case .counterView(.primeModal(.saveFavoritePrimeTapped)), + .offlineCounterView(.primeModal(.saveFavoritePrimeTapped)): + state.activityFeed.append(.init(timestamp: Date(), type: .addedFavoritePrime(state.count))) + + case let .favoritePrimes(.deleteFavoritePrimes(indexSet)): + for index in indexSet { + state.activityFeed.append(.init(timestamp: Date(), type: .removedFavoritePrime(state.favoritePrimes[index]))) + } + } + + return self(&state, action, environment) + } + } +} + +//func activityFeed( +// _ reducer: Reducer +//) -> Reducer { +// +// return .init { state, action, environment in +// switch action { +// case .counterView(.counter), +// .offlineCounterView(.counter), +// .favoritePrimes(.loadedFavoritePrimes), +// .favoritePrimes(.loadButtonTapped), +// .favoritePrimes(.saveButtonTapped), +// .favoritePrimes(.primeButtonTapped(_)), +// .favoritePrimes(.nthPrimeResponse), +// .favoritePrimes(.alertDismissButtonTapped): +// break +// case .counterView(.primeModal(.removeFavoritePrimeTapped)), +// .offlineCounterView(.primeModal(.removeFavoritePrimeTapped)): +// state.activityFeed.append(.init(timestamp: Date(), type: .removedFavoritePrime(state.count))) +// +// case .counterView(.primeModal(.saveFavoritePrimeTapped)), +// .offlineCounterView(.primeModal(.saveFavoritePrimeTapped)): +// state.activityFeed.append(.init(timestamp: Date(), type: .addedFavoritePrime(state.count))) +// +// case let .favoritePrimes(.deleteFavoritePrimes(indexSet)): +// for index in indexSet { +// state.activityFeed.append(.init(timestamp: Date(), type: .removedFavoritePrime(state.favoritePrimes[index]))) +// } +// } +// +// return reducer(&state, action, environment) +// } +//} + +let isInExperiment = false //Bool.random() + +struct ContentView: View { + let store: Store +// @ObservedObject var viewStore: ViewStore + + init(store: Store) { + print("ContentView.init") + self.store = store + } + + var body: some View { + print("ContentView.body") + return NavigationView { + List { + if !isInExperiment { + NavigationLink( + "Counter demo", + destination: CounterView( + store: self.store.scope( + value: { $0.counterView }, + action: { .counterView($0) } + ) + ) + ) + } else { + NavigationLink( + "Offline counter demo", + destination: CounterView( + store: self.store.scope( + value: { $0.counterView }, + action: { .offlineCounterView($0) } + ) + ) + ) + } + NavigationLink( + "Favorite primes", + destination: FavoritePrimesView( + store: self.store.scope( + value: { $0.favoritePrimesState }, + action: { .favoritePrimes($0) } + ) + ) + ) + + ForEach(Array(1...500_000), id: \.self) { value in + Text("\(value)") + } + + } + .navigationBarTitle("State management") + } + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Info.plist new file mode 100644 index 00000000..9742bf0f --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Info.plist @@ -0,0 +1,60 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + UISceneConfigurations + + UIWindowSceneSessionRoleApplication + + + UISceneConfigurationName + Default Configuration + UISceneDelegateClassName + $(PRODUCT_MODULE_NAME).SceneDelegate + + + + + UILaunchStoryboardName + LaunchScreen + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Preview Content/Preview Assets.xcassets/Contents.json b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 00000000..da4a164c --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "version" : 1, + "author" : "xcode" + } +} \ No newline at end of file diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/SceneDelegate.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/SceneDelegate.swift new file mode 100644 index 00000000..7dc5db3e --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/SceneDelegate.swift @@ -0,0 +1,39 @@ +import ComposableArchitecture +import Counter +import SwiftUI +import UIKit + +class SceneDelegate: UIResponder, UIWindowSceneDelegate { + var window: UIWindow? + + func scene(_ scene: UIScene, willConnectTo session: UISceneSession, options connectionOptions: UIScene.ConnectionOptions) { + if let windowScene = scene as? UIWindowScene { + let window = UIWindow(windowScene: windowScene) + window.rootViewController = UIHostingController( + rootView: ContentView( + store: Store( + initialValue: AppState(), + reducer: appReducer + .activityFeed(), +// .logging(), +// reducer: with( +// appReducer, +// compose( +// logging, +// activityFeed +// ) +// ), +// reducer: logging(activityFeed(barEnhancer(fooEnhancer(appReducer)))), + environment: AppEnvironment( + fileClient: .live, + nthPrime: Counter.nthPrime, + offlineNthPrime: Counter.offlineNthPrime + ) + ) + ) + ) + self.window = window + window.makeKeyAndVisible() + } + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Util.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Util.swift new file mode 100644 index 00000000..b9509ff8 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTime/Util.swift @@ -0,0 +1,14 @@ +func compose( + _ f: @escaping (B) -> C, + _ g: @escaping (A) -> B + ) + -> (A) -> C { + + return { (a: A) -> C in + f(g(a)) + } +} + +func with(_ a: A, _ f: (A) throws -> B) rethrows -> B { + return try f(a) +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/Info.plist new file mode 100644 index 00000000..64d65ca4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/PrimeTimeTests.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/PrimeTimeTests.swift new file mode 100644 index 00000000..805f6198 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeTests/PrimeTimeTests.swift @@ -0,0 +1,37 @@ +import ComposableArchitecture +import ComposableArchitectureTestSupport +@testable import Counter +@testable import FavoritePrimes +import PrimeAlert +@testable import PrimeModal +@testable import PrimeTime +import XCTest + +class PrimeTimeTests: XCTestCase { + func testIntegration() { + var fileClient = FileClient.mock + fileClient.load = { _ in .sync { try! JSONEncoder().encode([2, 31, 7]) } } + + assert( + initialValue: AppState(count: 4), + reducer: appReducer, + environment: ( + fileClient: fileClient, + nthPrime: { _ in .sync { 17 } }, + offlineNthPrime: { _ in .sync { 17 } } + ), + steps: + Step(.send, .counterView(.counter(.requestNthPrime))) { + $0.isNthPrimeRequestInFlight = true + }, + Step(.receive, .counterView(.counter(.nthPrimeResponse(n: 4, prime: 17)))) { + $0.isNthPrimeRequestInFlight = false + $0.alertNthPrime = PrimeAlert(n: 4, prime: 17) + }, + Step(.send, .favoritePrimes(.loadButtonTapped)), + Step(.receive, .favoritePrimes(.loadedFavoritePrimes([2, 31, 7]))) { + $0.favoritePrimes = [2, 31, 7] + } + ) + } +} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/Info.plist b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/Info.plist new file mode 100644 index 00000000..64d65ca4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/Info.plist @@ -0,0 +1,22 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + + diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/PrimeTimeUITests.swift b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/PrimeTimeUITests.swift new file mode 100644 index 00000000..bac2c351 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/PrimeTimeUITests/PrimeTimeUITests.swift @@ -0,0 +1,31 @@ +//import XCTest +//@testable import Counter +// +//class PrimeTimeUITests: XCTestCase { +// override func setUp() { +// continueAfterFailure = false +// Current = .mock +// } +// +// func testExample() { +// let app = XCUIApplication() +// app.launchEnvironment["UI_TESTS"] = "1" +// app.launchEnvironment["UNHAPPY_PATHS"] = "1" +// app.launch() +// +// app.tables.buttons["Counter demo"].tap() +// +// let button = app.buttons["+"] +// button.tap() +// XCTAssert(app.staticTexts["1"].exists) +// button.tap() +// XCTAssert(app.staticTexts["2"].exists) +// app.buttons["What is the 2nd prime?"].tap() +// let alert = app.alerts["The 2nd prime is 3"] +// XCTAssert(alert.waitForExistence(timeout: 5)) +// alert.scrollViews.otherElements.buttons["Ok"].tap() +// app.buttons["Is this prime?"].tap() +// app.buttons["Save to favorite primes"].tap() +// app.children(matching: .window).element(boundBy: 0).children(matching: .other).element.children(matching: .other).element(boundBy: 0).swipeDown() +// } +//} diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Base.xcconfig b/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Base.xcconfig new file mode 100644 index 00000000..f151cbae --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Base.xcconfig @@ -0,0 +1,17 @@ +SUPPORTED_PLATFORMS = appletvos appletvsimulator iphonesimulator iphoneos macosx watchos watchsimulator +VALID_ARCHS[sdk=iphoneos*] = arm64 armv7 armv7s +VALID_ARCHS[sdk=iphonesimulator*] = i386 x86_64 +VALID_ARCHS[sdk=macosx*] = i386 x86_64 +VALID_ARCHS[sdk=watchos*] = armv7k arm64_32 +VALID_ARCHS[sdk=watchsimulator*] = i386 +VALID_ARCHS[sdk=appletvos*] = arm64 +VALID_ARCHS[sdk=appletvsimulator*] = x86_64 + +LD_RUNPATH_SEARCH_PATHS[sdk=appletvos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=appletvsimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = $(inherited) '@executable_path/../Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=watchos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=watchsimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' + \ No newline at end of file diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Framework.xcconfig b/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Framework.xcconfig new file mode 100644 index 00000000..488ae1ae --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Framework.xcconfig @@ -0,0 +1,16 @@ +#include "Base.xcconfig" + +CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer +COMBINE_HIDPI_IMAGES[sdk=macosx*] = YES +ENABLE_BITCODE[sdk=macosx*] = NO +ENABLE_BITCODE[sdk=watchsimulator*] = YES +ENABLE_BITCODE[sdk=watch*] = YES +ENABLE_BITCODE[sdk=iphonesimulator*] = YES +ENABLE_BITCODE[sdk=iphone*] = YES +ENABLE_BITCODE[sdk=appletvsimulator*] = YES +ENABLE_BITCODE[sdk=appletv*] = YES +FRAMEWORK_VERSION[sdk=macosx*] = A +TARGETED_DEVICE_FAMILY[sdk=appletv*] = 3 +TARGETED_DEVICE_FAMILY[sdk=iphone*] = 1,2 +TARGETED_DEVICE_FAMILY[sdk=watch*] = 4 + \ No newline at end of file diff --git a/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Test.xcconfig b/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Test.xcconfig new file mode 100644 index 00000000..be110ad7 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/PrimeTime/Shared/Test.xcconfig @@ -0,0 +1,10 @@ +#include "Base.xcconfig" + +FRAMEWORK_SEARCH_PATHS = $(inherited) '$(PLATFORM_DIR)/Developer/Library/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=macosx*] = $(inherited) '@executable_path/../Frameworks' '@loader_path/../Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=iphoneos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=iphonesimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=watchos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=watchsimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=appletvos*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' +LD_RUNPATH_SEARCH_PATHS[sdk=appletvsimulator*] = $(inherited) '@executable_path/Frameworks' '@loader_path/Frameworks' diff --git a/0099-ergonomic-state-management-pt2/README.md b/0099-ergonomic-state-management-pt2/README.md new file mode 100644 index 00000000..d3c6b0e4 --- /dev/null +++ b/0099-ergonomic-state-management-pt2/README.md @@ -0,0 +1,5 @@ +## [Point-Free](https://www.pointfree.co) + +> #### This directory contains code from Point-Free Episode: [Ergonomic State Management: Part 2](https://www.pointfree.co/episodes/ep99-ergonomic-state-management-part-2) +> +> We've made creating and enhancing reducers, but we still haven't given much attention to the ergonomics of the view layer of the Composable Architecture. This week we'll make the Store much nicer to use by taking advantage of a new Swift feature and by enhancing it with a SwiftUI helper. diff --git a/README.md b/README.md index f2343602..7d10c392 100644 --- a/README.md +++ b/README.md @@ -100,3 +100,5 @@ This repository is the home of code written on episodes of 1. [Adaptive State Management: State](0095-adaptive-state-management-pt2) 1. [Adaptive State Management: Actions](0096-adaptive-state-management-pt3) 1. [Adaptive State Management: The Point](0097-adaptive-state-management-pt4) +1. [Ergonomic State Management: Part 1](0098-ergonomic-state-management-pt1) +1. [Ergonomic State Management: Part 2](0099-ergonomic-state-management-pt2)