├── .github └── workflows │ └── swift.yml ├── .gitignore ├── .swiftpm └── xcode │ └── package.xcworkspace │ └── contents.xcworkspacedata ├── CONTRIBUTING.md ├── CodingTestableAppsOnSteroids.pdf ├── DemoApp ├── .gitignore ├── LoginDemo.xcodeproj │ ├── project.pbxproj │ ├── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ │ └── IDEWorkspaceChecks.plist │ └── xcshareddata │ │ └── xcschemes │ │ └── LoginDemoRxRedux.xcscheme ├── LoginDemo.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist ├── LoginDemo │ ├── App │ │ ├── AppCoordinator.swift │ │ └── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── AppIcon.appiconset │ │ │ └── Contents.json │ │ ├── Contents.json │ │ ├── lock.imageset │ │ │ ├── Contents.json │ │ │ └── lock.png │ │ ├── mountain.imageset │ │ │ ├── Contents.json │ │ │ └── mountain_lake-wallpaper-1920x1200.jpg │ │ ├── showPassword.imageset │ │ │ ├── Contents.json │ │ │ └── wbqscigdlzjlftggfjaw.png │ │ └── unlock.imageset │ │ │ ├── Contents.json │ │ │ └── unlock.png │ ├── Base.lproj │ │ └── LaunchScreen.storyboard │ ├── DependencyRetriever.swift │ ├── Features │ │ ├── Login │ │ │ ├── LoginCoordinator.swift │ │ │ ├── LoginStore+reducer.swift │ │ │ ├── LoginStore.swift │ │ │ ├── LoginView.swift │ │ │ ├── LoginViewController.swift │ │ │ └── lenses.stencil │ │ ├── POI │ │ │ ├── DetailView │ │ │ │ ├── DetailCoordinator.swift │ │ │ │ ├── DetailStore+reducer.swift │ │ │ │ ├── DetailStore.swift │ │ │ │ ├── DetailView.swift │ │ │ │ └── DetailViewController.swift │ │ │ └── TableView │ │ │ │ ├── DemoTableStore+reducer.swift │ │ │ │ ├── DemoTableStore.swift │ │ │ │ ├── DemoTableView.swift │ │ │ │ ├── DemoTableViewCell.swift │ │ │ │ ├── DemoTableViewController.swift │ │ │ │ ├── DemoTableViewController.swift~Stashed changes │ │ │ │ └── ViewModel │ │ │ │ └── DemoCellModel.swift │ │ └── TableView │ │ │ ├── DemoTableStore.swift │ │ │ ├── DemoTableView.swift │ │ │ ├── DemoTableViewCell.swift │ │ │ ├── DemoTableViewController.swift │ │ │ └── ViewModel │ │ │ └── DemoCellModel.swift │ ├── Info.plist │ ├── Services │ │ ├── Authentication │ │ │ └── AuthenticationService.swift │ │ ├── GOT │ │ │ └── GOTService.swift │ │ ├── Login │ │ │ └── LoginAPI.swift │ │ └── POI │ │ │ ├── POI.swift │ │ │ └── POIService.swift │ ├── UIAlertController+Rx.swift │ ├── Use Cases │ │ ├── AppCoordinatorFactory.swift │ │ ├── DetailFactoryUseCase.swift │ │ ├── Login │ │ │ ├── LoginFactoryUseCase.swift │ │ │ └── LoginUseCase.swift │ │ ├── PoisUseCase.swift │ │ ├── RandomColorUseCase.swift │ │ └── UseCase.swift │ └── Utility │ │ ├── BaseCoordinator.swift │ │ ├── Navigation.swift │ │ ├── RandomColorHelper.swift │ │ └── UIImageView+imageFromServerURL.swift ├── LoginDemoTests │ ├── Info.plist │ ├── LoginDemoTests.swift │ └── ReferenceImages │ │ ├── LoginDemoRxReduxTests │ │ ├── LoginDemoRxReduxTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone12_1_414x896@2x.png │ │ ├── LoginDemoRxReduxTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone12_1_414x896@2x.png │ │ ├── LoginDemoRxReduxTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone12_1_414x896@2x.png │ │ ├── LoginDemoRxReduxTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone12_1_414x896@2x.png │ │ └── LoginDemoRxReduxTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone12_1_414x896@2x.png │ │ └── LoginDemoTests │ │ ├── LoginDemoTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone_14_3_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone_15_5_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone_14_3_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone_15_5_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone_14_3_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone_15_5_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone_14_3_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone_15_5_375x667@2x.png │ │ ├── LoginDemoTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone_14_3_375x667@2x.png │ │ └── LoginDemoTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone_15_5_375x667@2x.png ├── Podfile ├── Podfile.lock └── Pods │ ├── Local Podspecs │ ├── Sensor.podspec.json │ └── SensorTest.podspec.json │ ├── Manifest.lock │ ├── Nimble-Snapshots │ ├── LICENSE │ ├── Nimble_Snapshots │ │ ├── CurrentTestCaseTracker.swift │ │ ├── DynamicSize │ │ │ └── DynamicSizeSnapshot.swift │ │ ├── DynamicType │ │ │ ├── HaveValidDynamicTypeSnapshot.swift │ │ │ ├── NBSMockedApplication.swift │ │ │ └── PrettyDynamicTypeSyntax.swift │ │ ├── HaveValidSnapshot.swift │ │ ├── Nimble_Snapshots.h │ │ ├── PrettySyntax.swift │ │ ├── XCTestObservationCenter+CurrentTestCaseTracker.h │ │ └── XCTestObservationCenter+CurrentTestCaseTracker.m │ └── README.md │ ├── Nimble │ ├── Carthage │ │ └── Checkouts │ │ │ ├── CwlCatchException │ │ │ └── Sources │ │ │ │ ├── CwlCatchException │ │ │ │ └── CwlCatchException.swift │ │ │ │ └── CwlCatchExceptionSupport │ │ │ │ ├── CwlCatchException.m │ │ │ │ └── include │ │ │ │ └── CwlCatchException.h │ │ │ └── CwlPreconditionTesting │ │ │ └── Sources │ │ │ ├── CwlMachBadInstructionHandler │ │ │ ├── CwlMachBadInstructionHandler.m │ │ │ ├── include │ │ │ │ └── CwlMachBadInstructionHandler.h │ │ │ ├── mach_excServer.c │ │ │ └── mach_excServer.h │ │ │ └── CwlPreconditionTesting │ │ │ ├── CwlBadInstructionException.swift │ │ │ ├── CwlCatchBadInstruction.swift │ │ │ └── CwlDarwinDefinitions.swift │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── Nimble │ │ ├── Adapters │ │ │ ├── AdapterProtocols.swift │ │ │ ├── AssertionDispatcher.swift │ │ │ ├── AssertionRecorder.swift │ │ │ ├── NMBExpectation.swift │ │ │ ├── NimbleEnvironment.swift │ │ │ └── NimbleXCTestHandler.swift │ │ ├── DSL+Wait.swift │ │ ├── DSL.swift │ │ ├── Expectation.swift │ │ ├── ExpectationMessage.swift │ │ ├── Expression.swift │ │ ├── FailureMessage.swift │ │ ├── Matchers │ │ │ ├── AllPass.swift │ │ │ ├── Async.swift │ │ │ ├── BeAKindOf.swift │ │ │ ├── BeAnInstanceOf.swift │ │ │ ├── BeCloseTo.swift │ │ │ ├── BeEmpty.swift │ │ │ ├── BeGreaterThan.swift │ │ │ ├── BeGreaterThanOrEqualTo.swift │ │ │ ├── BeIdenticalTo.swift │ │ │ ├── BeLessThan.swift │ │ │ ├── BeLessThanOrEqual.swift │ │ │ ├── BeLogical.swift │ │ │ ├── BeNil.swift │ │ │ ├── BeResult.swift │ │ │ ├── BeVoid.swift │ │ │ ├── BeWithin.swift │ │ │ ├── BeginWith.swift │ │ │ ├── BeginWithPrefix.swift │ │ │ ├── Contain.swift │ │ │ ├── ContainElementSatisfying.swift │ │ │ ├── ElementsEqual.swift │ │ │ ├── EndWith.swift │ │ │ ├── Equal+Tuple.swift │ │ │ ├── Equal.swift │ │ │ ├── HaveCount.swift │ │ │ ├── Match.swift │ │ │ ├── MatchError.swift │ │ │ ├── MatcherProtocols.swift │ │ │ ├── PostNotification.swift │ │ │ ├── Predicate.swift │ │ │ ├── RaisesException.swift │ │ │ ├── SatisfyAllOf.swift │ │ │ ├── SatisfyAnyOf.swift │ │ │ ├── ThrowAssertion.swift │ │ │ ├── ThrowError.swift │ │ │ └── ToSucceed.swift │ │ ├── Nimble.h │ │ └── Utils │ │ │ ├── Await.swift │ │ │ ├── DispatchTimeInterval.swift │ │ │ ├── Errors.swift │ │ │ ├── SourceLocation.swift │ │ │ └── Stringers.swift │ │ └── NimbleObjectiveC │ │ ├── DSL.h │ │ ├── DSL.m │ │ ├── NMBExceptionCapture.h │ │ ├── NMBExceptionCapture.m │ │ ├── NMBStringify.h │ │ ├── NMBStringify.m │ │ └── XCTestObservationCenter+Register.m │ ├── Pods.xcodeproj │ └── project.pbxproj │ ├── RxCocoa │ ├── LICENSE.md │ ├── Platform │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxCocoa │ │ ├── Common │ │ ├── Binder.swift │ │ ├── ControlTarget.swift │ │ ├── DelegateProxy.swift │ │ ├── DelegateProxyType.swift │ │ ├── KeyPathBinder.swift │ │ ├── NSLayoutConstraint+Rx.swift │ │ ├── Observable+Bind.swift │ │ ├── RxCocoaObjCRuntimeError+Extensions.swift │ │ ├── RxTarget.swift │ │ ├── SectionedViewDataSourceType.swift │ │ └── TextInput.swift │ │ ├── Deprecated.swift │ │ ├── Foundation │ │ ├── KVORepresentable+CoreGraphics.swift │ │ ├── KVORepresentable+Swift.swift │ │ ├── KVORepresentable.swift │ │ ├── Logging.swift │ │ ├── NSObject+Rx+KVORepresentable.swift │ │ ├── NSObject+Rx+RawRepresentable.swift │ │ ├── NSObject+Rx.swift │ │ ├── NotificationCenter+Rx.swift │ │ └── URLSession+Rx.swift │ │ ├── Runtime │ │ ├── _RX.m │ │ ├── _RXDelegateProxy.m │ │ ├── _RXKVOObserver.m │ │ ├── _RXObjCRuntime.m │ │ └── include │ │ │ ├── RxCocoaRuntime.h │ │ │ ├── _RX.h │ │ │ ├── _RXDelegateProxy.h │ │ │ ├── _RXKVOObserver.h │ │ │ └── _RXObjCRuntime.h │ │ ├── RxCocoa.h │ │ ├── RxCocoa.swift │ │ ├── Traits │ │ ├── ControlEvent.swift │ │ ├── ControlProperty.swift │ │ ├── Driver │ │ │ ├── BehaviorRelay+Driver.swift │ │ │ ├── ControlEvent+Driver.swift │ │ │ ├── ControlProperty+Driver.swift │ │ │ ├── Driver+Subscription.swift │ │ │ ├── Driver.swift │ │ │ └── ObservableConvertibleType+Driver.swift │ │ ├── SharedSequence │ │ │ ├── ObservableConvertibleType+SharedSequence.swift │ │ │ ├── SchedulerType+SharedSequence.swift │ │ │ ├── SharedSequence+Operators+arity.swift │ │ │ ├── SharedSequence+Operators.swift │ │ │ └── SharedSequence.swift │ │ └── Signal │ │ │ ├── ControlEvent+Signal.swift │ │ │ ├── ObservableConvertibleType+Signal.swift │ │ │ ├── PublishRelay+Signal.swift │ │ │ ├── Signal+Subscription.swift │ │ │ └── Signal.swift │ │ ├── iOS │ │ ├── DataSources │ │ │ ├── RxCollectionViewReactiveArrayDataSource.swift │ │ │ ├── RxPickerViewAdapter.swift │ │ │ └── RxTableViewReactiveArrayDataSource.swift │ │ ├── Events │ │ │ └── ItemEvents.swift │ │ ├── NSTextStorage+Rx.swift │ │ ├── Protocols │ │ │ ├── RxCollectionViewDataSourceType.swift │ │ │ ├── RxPickerViewDataSourceType.swift │ │ │ └── RxTableViewDataSourceType.swift │ │ ├── Proxies │ │ │ ├── RxCollectionViewDataSourcePrefetchingProxy.swift │ │ │ ├── RxCollectionViewDataSourceProxy.swift │ │ │ ├── RxCollectionViewDelegateProxy.swift │ │ │ ├── RxNavigationControllerDelegateProxy.swift │ │ │ ├── RxPickerViewDataSourceProxy.swift │ │ │ ├── RxPickerViewDelegateProxy.swift │ │ │ ├── RxScrollViewDelegateProxy.swift │ │ │ ├── RxSearchBarDelegateProxy.swift │ │ │ ├── RxSearchControllerDelegateProxy.swift │ │ │ ├── RxTabBarControllerDelegateProxy.swift │ │ │ ├── RxTabBarDelegateProxy.swift │ │ │ ├── RxTableViewDataSourcePrefetchingProxy.swift │ │ │ ├── RxTableViewDataSourceProxy.swift │ │ │ ├── RxTableViewDelegateProxy.swift │ │ │ ├── RxTextStorageDelegateProxy.swift │ │ │ ├── RxTextViewDelegateProxy.swift │ │ │ └── RxWKNavigationDelegateProxy.swift │ │ ├── UIActivityIndicatorView+Rx.swift │ │ ├── UIAlertAction+Rx.swift │ │ ├── UIApplication+Rx.swift │ │ ├── UIBarButtonItem+Rx.swift │ │ ├── UIButton+Rx.swift │ │ ├── UICollectionView+Rx.swift │ │ ├── UIControl+Rx.swift │ │ ├── UIDatePicker+Rx.swift │ │ ├── UIGestureRecognizer+Rx.swift │ │ ├── UIImageView+Rx.swift │ │ ├── UILabel+Rx.swift │ │ ├── UINavigationController+Rx.swift │ │ ├── UINavigationItem+Rx.swift │ │ ├── UIPageControl+Rx.swift │ │ ├── UIPickerView+Rx.swift │ │ ├── UIProgressView+Rx.swift │ │ ├── UIRefreshControl+Rx.swift │ │ ├── UIScrollView+Rx.swift │ │ ├── UISearchBar+Rx.swift │ │ ├── UISearchController+Rx.swift │ │ ├── UISegmentedControl+Rx.swift │ │ ├── UISlider+Rx.swift │ │ ├── UIStepper+Rx.swift │ │ ├── UISwitch+Rx.swift │ │ ├── UITabBar+Rx.swift │ │ ├── UITabBarController+Rx.swift │ │ ├── UITabBarItem+Rx.swift │ │ ├── UITableView+Rx.swift │ │ ├── UITextField+Rx.swift │ │ ├── UITextView+Rx.swift │ │ ├── UIView+Rx.swift │ │ ├── UIViewController+Rx.swift │ │ └── WKWebView+Rx.swift │ │ └── macOS │ │ ├── NSButton+Rx.swift │ │ ├── NSControl+Rx.swift │ │ ├── NSImageView+Rx.swift │ │ ├── NSSlider+Rx.swift │ │ ├── NSTextField+Rx.swift │ │ ├── NSTextView+Rx.swift │ │ └── NSView+Rx.swift │ ├── RxFeedback │ ├── LICENSE │ ├── README.md │ └── Sources │ │ └── RxFeedback │ │ ├── AsyncSynchronized.swift │ │ ├── Deprecations.swift │ │ ├── Feedbacks.swift │ │ └── ObservableType+RxFeedback.swift │ ├── RxGesture │ ├── LICENSE │ ├── Pod │ │ └── Classes │ │ │ ├── GestureFactory.swift │ │ │ ├── GestureRecognizer+RxGesture.swift │ │ │ ├── RxGestureRecognizerDelegate.swift │ │ │ ├── SharedTypes.swift │ │ │ ├── View+RxGesture.swift │ │ │ └── iOS │ │ │ ├── ForceTouchGestureRecognizer.swift │ │ │ ├── TouchDownGestureRecognizer.swift │ │ │ ├── TransformGestureRecognizers.swift │ │ │ ├── UILongPressGestureRecognizer+RxGesture.swift │ │ │ ├── UIPanGestureRecognizer+RxGesture.swift │ │ │ ├── UIPinchGestureRecognizer+RxGesture.swift │ │ │ ├── UIRotationGestureRecognizer+RxGesture.swift │ │ │ ├── UIScreenEdgePanGestureRecognizer+RxGesture.swift │ │ │ ├── UISwipeGestureRecognizer+RxGesture.swift │ │ │ └── UITapGestureRecognizer+RxGesture.swift │ └── README.md │ ├── RxRelay │ ├── LICENSE.md │ ├── README.md │ └── RxRelay │ │ ├── BehaviorRelay.swift │ │ ├── Observable+Bind.swift │ │ ├── PublishRelay.swift │ │ └── Utils.swift │ ├── RxSwift │ ├── LICENSE.md │ ├── Platform │ │ ├── AtomicInt.swift │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxSwift │ │ ├── AnyObserver.swift │ │ ├── Cancelable.swift │ │ ├── Concurrency │ │ ├── AsyncLock.swift │ │ ├── Lock.swift │ │ ├── LockOwnerType.swift │ │ ├── SynchronizedDisposeType.swift │ │ ├── SynchronizedOnType.swift │ │ └── SynchronizedUnsubscribeType.swift │ │ ├── ConnectableObservableType.swift │ │ ├── Date+Dispatch.swift │ │ ├── Deprecated.swift │ │ ├── Disposable.swift │ │ ├── Disposables │ │ ├── AnonymousDisposable.swift │ │ ├── BinaryDisposable.swift │ │ ├── BooleanDisposable.swift │ │ ├── CompositeDisposable.swift │ │ ├── Disposables.swift │ │ ├── DisposeBag.swift │ │ ├── DisposeBase.swift │ │ ├── NopDisposable.swift │ │ ├── RefCountDisposable.swift │ │ ├── ScheduledDisposable.swift │ │ ├── SerialDisposable.swift │ │ ├── SingleAssignmentDisposable.swift │ │ └── SubscriptionDisposable.swift │ │ ├── Errors.swift │ │ ├── Event.swift │ │ ├── Extensions │ │ └── Bag+Rx.swift │ │ ├── GroupedObservable.swift │ │ ├── ImmediateSchedulerType.swift │ │ ├── Observable.swift │ │ ├── ObservableConvertibleType.swift │ │ ├── ObservableType+Extensions.swift │ │ ├── ObservableType.swift │ │ ├── Observables │ │ ├── AddRef.swift │ │ ├── Amb.swift │ │ ├── AsMaybe.swift │ │ ├── AsSingle.swift │ │ ├── Buffer.swift │ │ ├── Catch.swift │ │ ├── CombineLatest+Collection.swift │ │ ├── CombineLatest+arity.swift │ │ ├── CombineLatest.swift │ │ ├── CompactMap.swift │ │ ├── Concat.swift │ │ ├── Create.swift │ │ ├── Debounce.swift │ │ ├── Debug.swift │ │ ├── DefaultIfEmpty.swift │ │ ├── Deferred.swift │ │ ├── Delay.swift │ │ ├── DelaySubscription.swift │ │ ├── Dematerialize.swift │ │ ├── DistinctUntilChanged.swift │ │ ├── Do.swift │ │ ├── ElementAt.swift │ │ ├── Empty.swift │ │ ├── Enumerated.swift │ │ ├── Error.swift │ │ ├── Filter.swift │ │ ├── First.swift │ │ ├── Generate.swift │ │ ├── GroupBy.swift │ │ ├── Just.swift │ │ ├── Map.swift │ │ ├── Materialize.swift │ │ ├── Merge.swift │ │ ├── Multicast.swift │ │ ├── Never.swift │ │ ├── ObserveOn.swift │ │ ├── Optional.swift │ │ ├── Producer.swift │ │ ├── Range.swift │ │ ├── Reduce.swift │ │ ├── Repeat.swift │ │ ├── RetryWhen.swift │ │ ├── Sample.swift │ │ ├── Scan.swift │ │ ├── Sequence.swift │ │ ├── ShareReplayScope.swift │ │ ├── SingleAsync.swift │ │ ├── Sink.swift │ │ ├── Skip.swift │ │ ├── SkipUntil.swift │ │ ├── SkipWhile.swift │ │ ├── StartWith.swift │ │ ├── SubscribeOn.swift │ │ ├── Switch.swift │ │ ├── SwitchIfEmpty.swift │ │ ├── Take.swift │ │ ├── TakeLast.swift │ │ ├── TakeUntil.swift │ │ ├── TakeWhile.swift │ │ ├── Throttle.swift │ │ ├── Timeout.swift │ │ ├── Timer.swift │ │ ├── ToArray.swift │ │ ├── Using.swift │ │ ├── Window.swift │ │ ├── WithLatestFrom.swift │ │ ├── Zip+Collection.swift │ │ ├── Zip+arity.swift │ │ └── Zip.swift │ │ ├── ObserverType.swift │ │ ├── Observers │ │ ├── AnonymousObserver.swift │ │ ├── ObserverBase.swift │ │ └── TailRecursiveSink.swift │ │ ├── Reactive.swift │ │ ├── Rx.swift │ │ ├── RxMutableBox.swift │ │ ├── SchedulerType.swift │ │ ├── Schedulers │ │ ├── ConcurrentDispatchQueueScheduler.swift │ │ ├── ConcurrentMainScheduler.swift │ │ ├── CurrentThreadScheduler.swift │ │ ├── HistoricalScheduler.swift │ │ ├── HistoricalSchedulerTimeConverter.swift │ │ ├── Internal │ │ │ ├── DispatchQueueConfiguration.swift │ │ │ ├── InvocableScheduledItem.swift │ │ │ ├── InvocableType.swift │ │ │ ├── ScheduledItem.swift │ │ │ └── ScheduledItemType.swift │ │ ├── MainScheduler.swift │ │ ├── OperationQueueScheduler.swift │ │ ├── RecursiveScheduler.swift │ │ ├── SchedulerServices+Emulation.swift │ │ ├── SerialDispatchQueueScheduler.swift │ │ ├── VirtualTimeConverterType.swift │ │ └── VirtualTimeScheduler.swift │ │ ├── Subjects │ │ ├── AsyncSubject.swift │ │ ├── BehaviorSubject.swift │ │ ├── PublishSubject.swift │ │ ├── ReplaySubject.swift │ │ └── SubjectType.swift │ │ ├── SwiftSupport │ │ └── SwiftSupport.swift │ │ └── Traits │ │ ├── Completable+AndThen.swift │ │ ├── Completable.swift │ │ ├── Maybe.swift │ │ ├── ObservableType+PrimitiveSequence.swift │ │ ├── PrimitiveSequence+Zip+arity.swift │ │ ├── PrimitiveSequence.swift │ │ └── Single.swift │ ├── RxTest │ ├── LICENSE.md │ ├── Platform │ │ ├── AtomicInt.swift │ │ ├── DataStructures │ │ │ ├── Bag.swift │ │ │ ├── InfiniteSequence.swift │ │ │ ├── PriorityQueue.swift │ │ │ └── Queue.swift │ │ ├── DispatchQueue+Extensions.swift │ │ ├── Platform.Darwin.swift │ │ ├── Platform.Linux.swift │ │ └── RecursiveLock.swift │ ├── README.md │ └── RxTest │ │ ├── Any+Equatable.swift │ │ ├── ColdObservable.swift │ │ ├── Deprecated.swift │ │ ├── Event+Equatable.swift │ │ ├── HotObservable.swift │ │ ├── Recorded+Event.swift │ │ ├── Recorded.swift │ │ ├── RxTest.swift │ │ ├── Schedulers │ │ ├── TestScheduler.swift │ │ └── TestSchedulerVirtualTimeConverter.swift │ │ ├── Subscription.swift │ │ ├── TestableObservable.swift │ │ ├── TestableObserver.swift │ │ └── XCTest+Rx.swift │ ├── SnapKit │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── Constraint.swift │ │ ├── ConstraintAttributes.swift │ │ ├── ConstraintConfig.swift │ │ ├── ConstraintConstantTarget.swift │ │ ├── ConstraintDSL.swift │ │ ├── ConstraintDescription.swift │ │ ├── ConstraintDirectionalInsetTarget.swift │ │ ├── ConstraintDirectionalInsets.swift │ │ ├── ConstraintInsetTarget.swift │ │ ├── ConstraintInsets.swift │ │ ├── ConstraintItem.swift │ │ ├── ConstraintLayoutGuide+Extensions.swift │ │ ├── ConstraintLayoutGuide.swift │ │ ├── ConstraintLayoutGuideDSL.swift │ │ ├── ConstraintLayoutSupport.swift │ │ ├── ConstraintLayoutSupportDSL.swift │ │ ├── ConstraintMaker.swift │ │ ├── ConstraintMakerEditable.swift │ │ ├── ConstraintMakerExtendable.swift │ │ ├── ConstraintMakerFinalizable.swift │ │ ├── ConstraintMakerPrioritizable.swift │ │ ├── ConstraintMakerRelatable+Extensions.swift │ │ ├── ConstraintMakerRelatable.swift │ │ ├── ConstraintMultiplierTarget.swift │ │ ├── ConstraintOffsetTarget.swift │ │ ├── ConstraintPriority.swift │ │ ├── ConstraintPriorityTarget.swift │ │ ├── ConstraintRelatableTarget.swift │ │ ├── ConstraintRelation.swift │ │ ├── ConstraintView+Extensions.swift │ │ ├── ConstraintView.swift │ │ ├── ConstraintViewDSL.swift │ │ ├── Debugging.swift │ │ ├── LayoutConstraint.swift │ │ ├── LayoutConstraintItem.swift │ │ ├── Typealiases.swift │ │ └── UILayoutSupport+Extensions.swift │ ├── Swinject │ ├── LICENSE │ ├── README.md │ └── Sources │ │ ├── Assembler.swift │ │ ├── Assembly.swift │ │ ├── Behavior.swift │ │ ├── Container.Arguments.swift │ │ ├── Container.Logging.swift │ │ ├── Container.TypeForwarding.swift │ │ ├── Container.swift │ │ ├── DebugHelper.swift │ │ ├── FunctionType.swift │ │ ├── GraphIdentifier.swift │ │ ├── InstanceStorage.swift │ │ ├── InstanceWrapper.swift │ │ ├── ObjectScope.Standard.swift │ │ ├── ObjectScope.swift │ │ ├── RecursiveLock.swift │ │ ├── Resolver.swift │ │ ├── ServiceEntry.TypeForwarding.swift │ │ ├── ServiceEntry.swift │ │ ├── ServiceKey.swift │ │ ├── Swinject.h │ │ ├── SynchronizedResolver.Arguments.swift │ │ ├── SynchronizedResolver.swift │ │ ├── UnavailableItems.swift │ │ └── _Resolver.swift │ ├── Target Support Files │ ├── Nimble-Snapshots │ │ ├── Nimble-Snapshots-Info.plist │ │ ├── Nimble-Snapshots-dummy.m │ │ ├── Nimble-Snapshots-prefix.pch │ │ ├── Nimble-Snapshots-umbrella.h │ │ ├── Nimble-Snapshots.debug.xcconfig │ │ ├── Nimble-Snapshots.modulemap │ │ ├── Nimble-Snapshots.release.xcconfig │ │ └── Nimble-Snapshots.xcconfig │ ├── Nimble │ │ ├── Nimble-Info.plist │ │ ├── Nimble-dummy.m │ │ ├── Nimble-prefix.pch │ │ ├── Nimble-umbrella.h │ │ ├── Nimble.debug.xcconfig │ │ ├── Nimble.modulemap │ │ ├── Nimble.release.xcconfig │ │ └── Nimble.xcconfig │ ├── Pods-LoginDemo │ │ ├── Pods-LoginDemo-Info.plist │ │ ├── Pods-LoginDemo-acknowledgements.markdown │ │ ├── Pods-LoginDemo-acknowledgements.plist │ │ ├── Pods-LoginDemo-dummy.m │ │ ├── Pods-LoginDemo-frameworks.sh │ │ ├── Pods-LoginDemo-umbrella.h │ │ ├── Pods-LoginDemo.debug.xcconfig │ │ ├── Pods-LoginDemo.modulemap │ │ └── Pods-LoginDemo.release.xcconfig │ ├── Pods-LoginDemoTests │ │ ├── Pods-LoginDemoTests-Info.plist │ │ ├── Pods-LoginDemoTests-acknowledgements.markdown │ │ ├── Pods-LoginDemoTests-acknowledgements.plist │ │ ├── Pods-LoginDemoTests-dummy.m │ │ ├── Pods-LoginDemoTests-frameworks.sh │ │ ├── Pods-LoginDemoTests-umbrella.h │ │ ├── Pods-LoginDemoTests.debug.xcconfig │ │ ├── Pods-LoginDemoTests.modulemap │ │ └── Pods-LoginDemoTests.release.xcconfig │ ├── RxCocoa │ │ ├── RxCocoa-Info.plist │ │ ├── RxCocoa-dummy.m │ │ ├── RxCocoa-prefix.pch │ │ ├── RxCocoa-umbrella.h │ │ ├── RxCocoa.debug.xcconfig │ │ ├── RxCocoa.modulemap │ │ ├── RxCocoa.release.xcconfig │ │ └── RxCocoa.xcconfig │ ├── RxFeedback │ │ ├── RxFeedback-Info.plist │ │ ├── RxFeedback-dummy.m │ │ ├── RxFeedback-prefix.pch │ │ ├── RxFeedback-umbrella.h │ │ ├── RxFeedback.debug.xcconfig │ │ ├── RxFeedback.modulemap │ │ ├── RxFeedback.release.xcconfig │ │ └── RxFeedback.xcconfig │ ├── RxGesture │ │ ├── RxGesture-Info.plist │ │ ├── RxGesture-dummy.m │ │ ├── RxGesture-prefix.pch │ │ ├── RxGesture-umbrella.h │ │ ├── RxGesture.debug.xcconfig │ │ ├── RxGesture.modulemap │ │ ├── RxGesture.release.xcconfig │ │ └── RxGesture.xcconfig │ ├── RxRelay │ │ ├── RxRelay-Info.plist │ │ ├── RxRelay-dummy.m │ │ ├── RxRelay-prefix.pch │ │ ├── RxRelay-umbrella.h │ │ ├── RxRelay.debug.xcconfig │ │ ├── RxRelay.modulemap │ │ ├── RxRelay.release.xcconfig │ │ └── RxRelay.xcconfig │ ├── RxSwift │ │ ├── RxSwift-Info.plist │ │ ├── RxSwift-dummy.m │ │ ├── RxSwift-prefix.pch │ │ ├── RxSwift-umbrella.h │ │ ├── RxSwift.debug.xcconfig │ │ ├── RxSwift.modulemap │ │ ├── RxSwift.release.xcconfig │ │ └── RxSwift.xcconfig │ ├── RxTest │ │ ├── RxTest-Info.plist │ │ ├── RxTest-dummy.m │ │ ├── RxTest-prefix.pch │ │ ├── RxTest-umbrella.h │ │ ├── RxTest.debug.xcconfig │ │ ├── RxTest.modulemap │ │ ├── RxTest.release.xcconfig │ │ └── RxTest.xcconfig │ ├── Sensor │ │ ├── Sensor-Info.plist │ │ ├── Sensor-dummy.m │ │ ├── Sensor-prefix.pch │ │ ├── Sensor-umbrella.h │ │ ├── Sensor.debug.xcconfig │ │ ├── Sensor.modulemap │ │ ├── Sensor.release.xcconfig │ │ └── Sensor.xcconfig │ ├── SensorTest │ │ ├── SensorTest-Info.plist │ │ ├── SensorTest-dummy.m │ │ ├── SensorTest-prefix.pch │ │ ├── SensorTest-umbrella.h │ │ ├── SensorTest.debug.xcconfig │ │ ├── SensorTest.modulemap │ │ ├── SensorTest.release.xcconfig │ │ └── SensorTest.xcconfig │ ├── SnapKit │ │ ├── SnapKit-Info.plist │ │ ├── SnapKit-dummy.m │ │ ├── SnapKit-prefix.pch │ │ ├── SnapKit-umbrella.h │ │ ├── SnapKit.debug.xcconfig │ │ ├── SnapKit.modulemap │ │ ├── SnapKit.release.xcconfig │ │ └── SnapKit.xcconfig │ ├── Swinject │ │ ├── Swinject-Info.plist │ │ ├── Swinject-dummy.m │ │ ├── Swinject-prefix.pch │ │ ├── Swinject-umbrella.h │ │ ├── Swinject.debug.xcconfig │ │ ├── Swinject.modulemap │ │ ├── Swinject.release.xcconfig │ │ └── Swinject.xcconfig │ ├── iOSSnapshotTestCase │ │ ├── iOSSnapshotTestCase-Info.plist │ │ ├── iOSSnapshotTestCase-dummy.m │ │ ├── iOSSnapshotTestCase-prefix.pch │ │ ├── iOSSnapshotTestCase-umbrella.h │ │ ├── iOSSnapshotTestCase.debug.xcconfig │ │ ├── iOSSnapshotTestCase.modulemap │ │ ├── iOSSnapshotTestCase.release.xcconfig │ │ └── iOSSnapshotTestCase.xcconfig │ └── lottie-ios │ │ ├── lottie-ios-Info.plist │ │ ├── lottie-ios-dummy.m │ │ ├── lottie-ios-prefix.pch │ │ ├── lottie-ios-umbrella.h │ │ ├── lottie-ios.debug.xcconfig │ │ ├── lottie-ios.modulemap │ │ ├── lottie-ios.release.xcconfig │ │ └── lottie-ios.xcconfig │ ├── iOSSnapshotTestCase │ ├── LICENSE │ ├── README.md │ └── src │ │ ├── iOSSnapshotTestCase │ │ └── SwiftSupport.swift │ │ └── iOSSnapshotTestCaseCore │ │ ├── Categories │ │ ├── UIApplication+KeyWindow.h │ │ ├── UIApplication+KeyWindow.m │ │ ├── UIImage+Compare.h │ │ ├── UIImage+Compare.m │ │ ├── UIImage+Diff.h │ │ ├── UIImage+Diff.m │ │ ├── UIImage+Snapshot.h │ │ └── UIImage+Snapshot.m │ │ ├── FBSnapshotTestCase.m │ │ ├── FBSnapshotTestCasePlatform.m │ │ ├── FBSnapshotTestController.m │ │ └── Public │ │ ├── FBSnapshotTestCase.h │ │ ├── FBSnapshotTestCasePlatform.h │ │ └── FBSnapshotTestController.h │ └── lottie-ios │ ├── LICENSE │ ├── README.md │ └── Sources │ ├── Private │ ├── CoreAnimation │ │ ├── Animations │ │ │ ├── CAAnimation+TimingConfiguration.swift │ │ │ ├── CALayer+addAnimation.swift │ │ │ ├── CombinedShapeAnimation.swift │ │ │ ├── CustomPathAnimation.swift │ │ │ ├── EllipseAnimation.swift │ │ │ ├── GradientAnimations.swift │ │ │ ├── LayerProperty.swift │ │ │ ├── OpacityAnimation.swift │ │ │ ├── RectangleAnimation.swift │ │ │ ├── ShapeAnimation.swift │ │ │ ├── StarAnimation.swift │ │ │ ├── StrokeAnimation.swift │ │ │ ├── TransformAnimations.swift │ │ │ └── VisibilityAnimation.swift │ │ ├── CompatibilityTracker.swift │ │ ├── CoreAnimationLayer.swift │ │ ├── Extensions │ │ │ ├── CALayer+fillBounds.swift │ │ │ ├── KeyframeGroup+exactlyOneKeyframe.swift │ │ │ └── Keyframes+combinedIfPossible.swift │ │ ├── Layers │ │ │ ├── AnimationLayer.swift │ │ │ ├── BaseAnimationLayer.swift │ │ │ ├── BaseCompositionLayer.swift │ │ │ ├── CALayer+setupLayerHierarchy.swift │ │ │ ├── GradientRenderLayer.swift │ │ │ ├── ImageLayer.swift │ │ │ ├── LayerModel+makeAnimationLayer.swift │ │ │ ├── MaskCompositionLayer.swift │ │ │ ├── PreCompLayer.swift │ │ │ ├── ShapeItemLayer.swift │ │ │ ├── ShapeLayer.swift │ │ │ ├── SolidLayer.swift │ │ │ ├── TextLayer.swift │ │ │ └── TransformLayer.swift │ │ └── ValueProviderStore.swift │ ├── MainThread │ │ ├── LayerContainers │ │ │ ├── CompLayers │ │ │ │ ├── CompositionLayer.swift │ │ │ │ ├── ImageCompositionLayer.swift │ │ │ │ ├── MaskContainerLayer.swift │ │ │ │ ├── NullCompositionLayer.swift │ │ │ │ ├── PreCompositionLayer.swift │ │ │ │ ├── ShapeCompositionLayer.swift │ │ │ │ ├── SolidCompositionLayer.swift │ │ │ │ └── TextCompositionLayer.swift │ │ │ ├── MainThreadAnimationLayer.swift │ │ │ └── Utility │ │ │ │ ├── CachedImageProvider.swift │ │ │ │ ├── CompositionLayersInitializer.swift │ │ │ │ ├── CoreTextRenderLayer.swift │ │ │ │ ├── InvertedMatteLayer.swift │ │ │ │ ├── LayerFontProvider.swift │ │ │ │ ├── LayerImageProvider.swift │ │ │ │ ├── LayerTextProvider.swift │ │ │ │ └── LayerTransformNode.swift │ │ └── NodeRenderSystem │ │ │ ├── Extensions │ │ │ └── ItemsExtension.swift │ │ │ ├── NodeProperties │ │ │ ├── NodeProperty.swift │ │ │ ├── Protocols │ │ │ │ ├── AnyNodeProperty.swift │ │ │ │ ├── AnyValueContainer.swift │ │ │ │ ├── KeypathSearchable.swift │ │ │ │ └── NodePropertyMap.swift │ │ │ ├── ValueContainer.swift │ │ │ └── ValueProviders │ │ │ │ ├── GroupInterpolator.swift │ │ │ │ ├── KeyframeInterpolator.swift │ │ │ │ └── SingleValueProvider.swift │ │ │ ├── Nodes │ │ │ ├── ModifierNodes │ │ │ │ └── TrimPathNode.swift │ │ │ ├── OutputNodes │ │ │ │ ├── GroupOutputNode.swift │ │ │ │ ├── PassThroughOutputNode.swift │ │ │ │ ├── PathOutputNode.swift │ │ │ │ └── Renderables │ │ │ │ │ ├── FillRenderer.swift │ │ │ │ │ ├── GradientFillRenderer.swift │ │ │ │ │ ├── GradientStrokeRenderer.swift │ │ │ │ │ ├── LegacyGradientFillRenderer.swift │ │ │ │ │ └── StrokeRenderer.swift │ │ │ ├── PathNodes │ │ │ │ ├── EllipseNode.swift │ │ │ │ ├── PolygonNode.swift │ │ │ │ ├── RectNode.swift │ │ │ │ ├── ShapeNode.swift │ │ │ │ └── StarNode.swift │ │ │ ├── RenderContainers │ │ │ │ └── GroupNode.swift │ │ │ ├── RenderNodes │ │ │ │ ├── FillNode.swift │ │ │ │ ├── GradientFillNode.swift │ │ │ │ ├── GradientStrokeNode.swift │ │ │ │ └── StrokeNode.swift │ │ │ └── Text │ │ │ │ └── TextAnimatorNode.swift │ │ │ ├── Protocols │ │ │ ├── AnimatorNode.swift │ │ │ ├── PathNode.swift │ │ │ └── RenderNode.swift │ │ │ └── RenderLayers │ │ │ ├── ShapeContainerLayer.swift │ │ │ └── ShapeRenderLayer.swift │ ├── Model │ │ ├── Animation.swift │ │ ├── Assets │ │ │ ├── Asset.swift │ │ │ ├── AssetLibrary.swift │ │ │ ├── ImageAsset.swift │ │ │ └── PrecompAsset.swift │ │ ├── DictionaryInitializable.swift │ │ ├── Extensions │ │ │ ├── Bundle.swift │ │ │ └── KeyedDecodingContainerExtensions.swift │ │ ├── Keyframes │ │ │ ├── KeyframeData.swift │ │ │ └── KeyframeGroup.swift │ │ ├── Layers │ │ │ ├── ImageLayerModel.swift │ │ │ ├── LayerModel.swift │ │ │ ├── PreCompLayerModel.swift │ │ │ ├── ShapeLayerModel.swift │ │ │ ├── SolidLayerModel.swift │ │ │ └── TextLayerModel.swift │ │ ├── Objects │ │ │ ├── DashPattern.swift │ │ │ ├── Marker.swift │ │ │ ├── Mask.swift │ │ │ └── Transform.swift │ │ ├── ShapeItems │ │ │ ├── Ellipse.swift │ │ │ ├── Fill.swift │ │ │ ├── GradientFill.swift │ │ │ ├── GradientStroke.swift │ │ │ ├── Group.swift │ │ │ ├── Merge.swift │ │ │ ├── Rectangle.swift │ │ │ ├── Repeater.swift │ │ │ ├── Shape.swift │ │ │ ├── ShapeItem.swift │ │ │ ├── ShapeTransform.swift │ │ │ ├── Star.swift │ │ │ ├── Stroke.swift │ │ │ └── Trim.swift │ │ └── Text │ │ │ ├── Font.swift │ │ │ ├── Glyph.swift │ │ │ ├── TextAnimator.swift │ │ │ └── TextDocument.swift │ ├── RootAnimationLayer.swift │ └── Utility │ │ ├── Debugging │ │ ├── AnimatorNodeDebugging.swift │ │ ├── LayerDebugging.swift │ │ └── TestHelpers.swift │ │ ├── Extensions │ │ ├── AnimationKeypathExtension.swift │ │ ├── BlendMode+Filter.swift │ │ ├── CGColor+RGB.swift │ │ ├── CGFloatExtensions.swift │ │ ├── DataExtension.swift │ │ ├── MathKit.swift │ │ └── StringExtensions.swift │ │ ├── Helpers │ │ └── AnimationContext.swift │ │ ├── Interpolatable │ │ ├── InterpolatableExtensions.swift │ │ ├── KeyframeExtensions.swift │ │ └── KeyframeGroup+Extensions.swift │ │ └── Primitives │ │ ├── BezierPath.swift │ │ ├── CGPointExtension.swift │ │ ├── ColorExtension.swift │ │ ├── CompoundBezierPath.swift │ │ ├── CurveVertex.swift │ │ ├── PathElement.swift │ │ ├── UnitBezier.swift │ │ └── VectorsExtensions.swift │ └── Public │ ├── Animation │ ├── AnimationPublic.swift │ ├── AnimationView.swift │ └── AnimationViewInitializers.swift │ ├── AnimationCache │ ├── AnimationCacheProvider.swift │ └── LRUAnimationCache.swift │ ├── DynamicProperties │ ├── AnimationKeypath.swift │ ├── AnyValueProvider.swift │ └── ValueProviders │ │ ├── ColorValueProvider.swift │ │ ├── FloatValueProvider.swift │ │ ├── GradientValueProvider.swift │ │ ├── PointValueProvider.swift │ │ └── SizeValueProvider.swift │ ├── FontProvider │ └── AnimationFontProvider.swift │ ├── ImageProvider │ └── AnimationImageProvider.swift │ ├── Keyframes │ ├── Interpolatable.swift │ └── Keyframe.swift │ ├── Logging │ └── LottieLogger.swift │ ├── LottieConfiguration.swift │ ├── Primitives │ ├── AnimationTime.swift │ ├── Color.swift │ └── Vectors.swift │ ├── TextProvider │ └── AnimationTextProvider.swift │ └── iOS │ ├── AnimatedButton.swift │ ├── AnimatedControl.swift │ ├── AnimatedSwitch.swift │ ├── AnimationSubview.swift │ ├── AnimationViewBase.swift │ ├── BundleImageProvider.swift │ ├── Compatibility │ ├── CompatibleAnimationKeypath.swift │ └── CompatibleAnimationView.swift │ ├── FilepathImageProvider.swift │ └── UIColorExtension.swift ├── Docs ├── GeneratedDocs │ ├── 1__Introduction.html │ ├── 2__The_Sensor_DSL.html │ ├── 3__What_has_changed_from_Sensor_0_1_0.html │ └── 4__Migrating_from_Sensor_0_1_0.html ├── GeneratedDocsComponent │ ├── .gitignore │ ├── .swiftpm │ │ └── xcode │ │ │ ├── package.xcworkspace │ │ │ └── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ └── xcschemes │ │ │ └── GenerateDocsComponent.xcscheme │ ├── Package.resolved │ ├── Package.swift │ ├── README.md │ ├── Sources │ │ ├── GenerateDocsComponent │ │ │ └── main.swift │ │ └── GenerateDocsComponentLib │ │ │ ├── Utils.swift │ │ │ ├── parsefile.swift │ │ │ └── render.swift │ └── Tests │ │ └── GenerateDocsComponentLibTests │ │ ├── CollectionCutMergingAdjacentTests.swift │ │ ├── CollectionCutTests.swift │ │ └── EnclosedSubSequencesTests.swift ├── README.md ├── SensorDocs.app │ └── Contents │ │ ├── Info.plist │ │ ├── MacOS │ │ ├── .gitignore │ │ ├── Podfile │ │ ├── SensorDocs.playground │ │ │ ├── Pages │ │ │ │ ├── 1. Introduction.xcplaygroundpage │ │ │ │ │ └── Contents.swift │ │ │ │ ├── 2. The Sensor DSL.xcplaygroundpage │ │ │ │ │ └── Contents.swift │ │ │ │ └── 3. What has changed from Sensor 0.1.0.xcplaygroundpage │ │ │ │ │ └── Contents.swift │ │ │ ├── Sources │ │ │ │ └── NefTest.swift │ │ │ └── contents.xcplayground │ │ ├── SensorDocs.xcodeproj │ │ │ ├── project.pbxproj │ │ │ ├── project.xcworkspace │ │ │ │ └── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── xcschemes │ │ │ │ └── SensorDocs.xcscheme │ │ ├── SensorDocs.xcworkspace │ │ │ ├── contents.xcworkspacedata │ │ │ └── xcshareddata │ │ │ │ └── IDEWorkspaceChecks.plist │ │ ├── SensorDocs │ │ │ └── Info.plist │ │ └── launcher │ │ └── Resources │ │ ├── AppIcon.icns │ │ └── Assets.car └── main.css ├── Docs_old ├── RxFeedback │ ├── 2.png │ └── LICENSE.txt ├── images │ ├── 1.png │ ├── 3.png │ ├── 4.png │ ├── 5.png │ ├── Sensor.png │ ├── SocialIcons │ │ ├── GitHub-Mark-32px.png │ │ └── Twitter_Social_Icon_Circle_Color.png │ └── store.png ├── sensor.md └── styles.css ├── LICENSE ├── MAINTAINERS.md ├── Package.resolved ├── Package.swift ├── README.md ├── Sensor.podspec ├── Sensor.xcodeproj ├── RxCocoaRuntime_Info.plist ├── RxCocoa_Info.plist ├── RxFeedback_Info.plist ├── RxRelay_Info.plist ├── RxSwift_Info.plist ├── RxTest_Info.plist ├── SensorTestUnitTests_Info.plist ├── SensorTest_Info.plist ├── SensorUnitTests_Info.plist ├── Sensor_Info.plist ├── SnapshotTesting_Info.plist ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ ├── IDEWorkspaceChecks.plist │ │ └── WorkspaceSettings.xcsettings └── xcshareddata │ └── xcschemes │ └── Sensor-Package.xcscheme ├── Sensor ├── LinuxMain.swift ├── Sources │ ├── DSL.swift │ ├── Driver+Reducible.swift │ ├── ThirdParty │ │ ├── LICENSE │ │ └── nwise.swift │ └── Utils.swift └── UnitTests │ ├── SingleStateStateMachineTests.swift │ └── XCTestManifests.swift ├── SensorTest.podspec └── SensorTest ├── Sources ├── CustomEquatable.swift ├── Definition.swift ├── Difference.swift ├── Observable+Debug.swift ├── SensorTestCase.swift ├── TestDSL.swift ├── TestScheduler+MarbleTests.swift └── Timeline.swift └── UnitTests ├── AssertionTests.swift ├── RandomAssertionTests.swift ├── TestHelpers.swift ├── TimelineTests.swift └── XCTestManifests.swift /.github/workflows/swift.yml: -------------------------------------------------------------------------------- 1 | name: Swift 2 | 3 | on: 4 | push: 5 | branches: master 6 | pull_request: 7 | branches: master 8 | 9 | jobs: 10 | build: 11 | 12 | runs-on: ${{ matrix.os }} 13 | strategy: 14 | matrix: 15 | os: 16 | - macOS-latest 17 | - macOS-10.14 18 | 19 | steps: 20 | - uses: actions/checkout@v1 21 | - name: Build 22 | run: swift build -v 23 | - name: Run tests 24 | run: swift test -v 25 | -------------------------------------------------------------------------------- /.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | # Contributing to Sensor 2 | 3 | Sensor is built with Swift Package Manager. We generate `Sensor.xcodeproj` with Swift Package Manager commit the changes in git. Sensor is compatible with linux, so we must make sure that the tests can be run there. 4 | 5 | **After you change Sensor code, make sure to:** 6 | 1. Generate `Sensor.xcodeproj` with the following command: 7 | `swift package generate-xcodeproj --enable-code-coverage` 8 | 2. Generate `LinuxMain.swift` with the following command: 9 | `swift test --generate-linuxmain` 10 | 3. Commit the changes generated by the commands above. -------------------------------------------------------------------------------- /CodingTestableAppsOnSteroids.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/CodingTestableAppsOnSteroids.pdf -------------------------------------------------------------------------------- /DemoApp/LoginDemo.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/lock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "lock.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/lock.imageset/lock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemo/Assets.xcassets/lock.imageset/lock.png -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/mountain.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "mountain_lake-wallpaper-1920x1200.jpg", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/mountain.imageset/mountain_lake-wallpaper-1920x1200.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemo/Assets.xcassets/mountain.imageset/mountain_lake-wallpaper-1920x1200.jpg -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/showPassword.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "wbqscigdlzjlftggfjaw.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/showPassword.imageset/wbqscigdlzjlftggfjaw.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemo/Assets.xcassets/showPassword.imageset/wbqscigdlzjlftggfjaw.png -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/unlock.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "scale" : "2x" 10 | }, 11 | { 12 | "idiom" : "universal", 13 | "filename" : "unlock.png", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | }, 21 | "properties" : { 22 | "template-rendering-intent" : "template" 23 | } 24 | } -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Assets.xcassets/unlock.imageset/unlock.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemo/Assets.xcassets/unlock.imageset/unlock.png -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Features/POI/DetailView/DetailStore+reducer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DetailStore+reducer.swift 3 | // LoginDemo 4 | // 5 | // Created by Marcin Religa on 29/6/22. 6 | // Copyright © 2022 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import Sensor 11 | 12 | // TODO: MR: Move to another file. 13 | extension DetailStore { 14 | public static let reducer = Reducer { state, event in 15 | switch (state, event) { 16 | case (.presenting(let color), .changeColorPressed): 17 | return then().trigger(.getRandomColor).goTo(.presenting(color)) 18 | case (.presenting, .colorFetched(let color)): 19 | return then().goTo(.presenting(color)) 20 | case (.presenting, .backPressed): 21 | return then().goTo(.exiting) 22 | default: 23 | return then() 24 | .trigger([]) 25 | .stayOnCurrentState() 26 | } 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Features/POI/TableView/ViewModel/DemoCellModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DemoCellModel.swift 3 | // LoginDemo 4 | // 5 | // Created by Fabio Cuomo on 12/11/2018. 6 | // Copyright © 2018 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct DemoCellModel: Equatable, Hashable { 12 | let title: String 13 | let description: String? 14 | let imagePath: String? 15 | } 16 | 17 | extension DemoCellModel { 18 | init(_ poi: POI) { 19 | title = String(poi.id) 20 | description = poi.type 21 | imagePath = "https://st2.depositphotos.com/7857468/12355/v/950/depositphotos_123559414-stock-illustration-cartoon-funny-yellow-taxi.jpg" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Features/TableView/ViewModel/DemoCellModel.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DemoCellModel.swift 3 | // LoginDemo 4 | // 5 | // Created by Fabio Cuomo on 12/11/2018. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct DemoCellModel: Equatable, Hashable { 12 | let title: String 13 | let description: String? 14 | let imagePath: String? 15 | } 16 | 17 | extension DemoCellModel { 18 | init(_ poi: POI) { 19 | title = String(poi.id) 20 | description = poi.type 21 | imagePath = "https://st2.depositphotos.com/7857468/12355/v/950/depositphotos_123559414-stock-illustration-cartoon-funny-yellow-taxi.jpg" 22 | } 23 | } 24 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Services/Authentication/AuthenticationService.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Authentication.swift 3 | // LoginDemo 4 | // 5 | // Created by Adrian Zdanowicz on 08/05/2019. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | protocol AuthenticationServiceProtocol { 12 | var authenticated: Bool { get } 13 | } 14 | 15 | struct AuthenticationService: AuthenticationServiceProtocol { 16 | var authenticated: Bool { 17 | return false 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Services/POI/POI.swift: -------------------------------------------------------------------------------- 1 | // 2 | // GPOI.swift 3 | // LoginDemo 4 | // 5 | // Created by Ferran Pujol Camins on 27/11/2018. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | struct Coordinate: Codable, Equatable, Hashable { 12 | let latitude: Double 13 | let longitude: Double 14 | } 15 | 16 | struct POI: Codable, Equatable, Hashable { 17 | let id: Int 18 | let coordinate: Coordinate 19 | let heading: Double 20 | let state: String 21 | let type: String 22 | 23 | // private enum CodingKeys: String, CodingKey { 24 | // case title = "name" 25 | // case description = "house" 26 | // case imagePath = "imageLink" 27 | // } 28 | } 29 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Use Cases/Login/LoginUseCase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LoginUseCase.swift 3 | // LoginDemo 4 | // 5 | // Created by Lluís Gómez on 11/03/2019. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import RxSwift 11 | 12 | extension UseCase { 13 | 14 | typealias Login = (_ username: String, _ password: String) -> Single 15 | 16 | static var defaultLogin: Login { 17 | let api: LoginAPIProtocol = DependencyRetriever.loginApi() 18 | 19 | return { username, password in 20 | let requestModel = LoginRequestModel(username: username, password: password) 21 | return api.loginUser(loginPayload: requestModel) 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Use Cases/PoisUseCase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PoisUseCase.swift 3 | // LoginDemo 4 | // 5 | // Created by Lluís Gómez on 11/03/2019. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | 12 | extension UseCase { 13 | 14 | typealias MakePoiListVc = () -> UIViewController 15 | 16 | static func defaultMakePoiListVc() -> MakePoiListVc { 17 | return { 18 | return DemoTableViewController() 19 | } 20 | } 21 | 22 | typealias GetAllPois = () -> Single<[POI]> 23 | 24 | static var defaultGetAllPois: GetAllPois { 25 | let service: POIServiceProtocol = DependencyRetriever.poiServiceAPI() 26 | return service.getAllPois 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Use Cases/RandomColorUseCase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RandomColorUseCase.swift 3 | // LoginDemo 4 | // 5 | // Created by Adrian Zdanowicz on 07/05/2019. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import UIKit 11 | import RxSwift 12 | 13 | extension UseCase { 14 | 15 | typealias GetRandomColor = () -> Single 16 | 17 | static func getRandomColor() -> GetRandomColor { 18 | return { 19 | return Single.just(UIColor(red: randomCGFloat(), 20 | green: randomCGFloat(), 21 | blue: randomCGFloat(), 22 | alpha: 1.0)) 23 | } 24 | } 25 | 26 | private static func randomCGFloat() -> CGFloat { 27 | return CGFloat(arc4random()) / CGFloat(UInt32.max) 28 | } 29 | 30 | } 31 | 32 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Use Cases/UseCase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UseCase.swift 3 | // LoginDemo 4 | // 5 | // Created by Lluís Gómez on 11/03/2019. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | public enum UseCase {} 12 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Utility/Navigation.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Navigation.swift 3 | // LoginDemo 4 | // 5 | // Created by Adrian Zdanowicz on 18/04/2019. 6 | // Copyright © 2019 Mounir Dellagi. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | // All navigation states, new should be added when needed. 12 | 13 | enum Navigation { 14 | case detail(POI) 15 | case dismiss 16 | case login 17 | case pop 18 | case showError 19 | } 20 | -------------------------------------------------------------------------------- /DemoApp/LoginDemo/Utility/RandomColorHelper.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RandomColorHelper.swift 3 | // LoginDemo 4 | // 5 | // Created by Fabio Cuomo on 13/11/2018. 6 | // Copyright © 2019 Intelligent Apps GmbH. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | final class RandomColorHelper { 12 | static let palette = [ 13 | UIColor(red: 136/255, green: 100/255, blue: 86/255, alpha: 1), 14 | UIColor(red: 214/255, green: 148/255, blue: 97/255, alpha: 1), 15 | UIColor(red: 146/255, green: 151/255, blue: 49/255, alpha: 1), 16 | UIColor(red: 118/255, green: 109/255, blue: 50/255, alpha: 1), 17 | UIColor(red: 82/255, green: 90/255, blue: 42/255, alpha: 1) 18 | ] 19 | 20 | static func randomColorFromPalette() -> UIColor { 21 | let idx: Int = Int(arc4random_uniform(UInt32(palette.count - 1))) 22 | return palette[idx] 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone12_1_414x896@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone12_1_414x896@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone12_1_414x896@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone12_1_414x896@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone12_1_414x896@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone12_1_414x896@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone12_1_414x896@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone12_1_414x896@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone12_1_414x896@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoRxReduxTests/LoginDemoRxReduxTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone12_1_414x896@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone_14_3_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone_14_3_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone_15_5_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordHidden_LoginButtonDisabled_iPhone_15_5_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone_14_3_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone_14_3_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone_15_5_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoggedOut_PasswordNotHidden_LoginButtonEnabled_iPhone_15_5_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone_14_3_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone_14_3_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone_15_5_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonDisabled_iPhone_15_5_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone_14_3_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone_14_3_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone_15_5_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_LoginFailed_LoginButtonEnabled_iPhone_15_5_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone_14_3_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone_14_3_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone_15_5_375x667@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/DemoApp/LoginDemoTests/ReferenceImages/LoginDemoTests/LoginDemoTests_testSnapshot_PerformingLogin_LoginButtonDisabled_iPhone_15_5_375x667@2x.png -------------------------------------------------------------------------------- /DemoApp/Podfile: -------------------------------------------------------------------------------- 1 | project 'LoginDemo.xcodeproj/' 2 | 3 | # Uncomment the next line to define a global platform for your project 4 | platform :ios, '12.0' 5 | 6 | target 'LoginDemo' do 7 | # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 8 | use_frameworks! 9 | 10 | # Pods for LoginDemo 11 | pod 'Sensor', :path => '..' 12 | pod "lottie-ios" 13 | pod "RxSwift" 14 | pod "RxCocoa" 15 | pod "RxGesture" 16 | pod "SnapKit" 17 | pod "Swinject" 18 | 19 | target 'LoginDemoTests' do 20 | inherit! :search_paths 21 | # Pods for testing 22 | pod 'SensorTest', :path => '..' 23 | pod "iOSSnapshotTestCase" 24 | pod "Nimble" 25 | pod "Nimble-Snapshots" 26 | end 27 | 28 | end 29 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble-Snapshots/Nimble_Snapshots/Nimble_Snapshots.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | //! Project version number for Nimble_Snapshots. 4 | FOUNDATION_EXPORT double Nimble_SnapshotsVersionNumber; 5 | 6 | //! Project version string for Nimble_Snapshots. 7 | FOUNDATION_EXPORT const unsigned char Nimble_SnapshotsVersionString[]; 8 | 9 | // In this header, you should import all the public headers of your framework using statements like #import 10 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble-Snapshots/Nimble_Snapshots/XCTestObservationCenter+CurrentTestCaseTracker.h: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | @interface XCTestObservationCenter (CurrentTestCaseTracker) 4 | 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble-Snapshots/Nimble_Snapshots/XCTestObservationCenter+CurrentTestCaseTracker.m: -------------------------------------------------------------------------------- 1 | #import "XCTestObservationCenter+CurrentTestCaseTracker.h" 2 | #if __has_include("Nimble_Snapshots-Swift.h") 3 | #import "Nimble_Snapshots-Swift.h" 4 | #elif SWIFT_PACKAGE 5 | @import Nimble_Snapshots; 6 | #else 7 | #import 8 | #endif 9 | 10 | @implementation XCTestObservationCenter (CurrentTestCaseTracker) 11 | 12 | + (void)load { 13 | [[self sharedTestObservationCenter] addTestObserver:[CurrentTestCaseTracker sharedInstance]]; 14 | } 15 | 16 | @end 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/Nimble/Adapters/AdapterProtocols.swift: -------------------------------------------------------------------------------- 1 | /// Protocol for the assertion handler that Nimble uses for all expectations. 2 | public protocol AssertionHandler { 3 | func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) 4 | } 5 | 6 | /// Global backing interface for assertions that Nimble creates. 7 | /// Defaults to a private test handler that passes through to XCTest. 8 | /// 9 | /// If XCTest is not available, you must assign your own assertion handler 10 | /// before using any matchers, otherwise Nimble will abort the program. 11 | /// 12 | /// @see AssertionHandler 13 | public var NimbleAssertionHandler: AssertionHandler = { () -> AssertionHandler in 14 | // swiftlint:disable:previous identifier_name 15 | return isXCTestAvailable() ? NimbleXCTestHandler() : NimbleXCTestUnavailableHandler() 16 | }() 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/Nimble/Adapters/AssertionDispatcher.swift: -------------------------------------------------------------------------------- 1 | /// AssertionDispatcher allows multiple AssertionHandlers to receive 2 | /// assertion messages. 3 | /// 4 | /// @warning Does not fully dispatch if one of the handlers raises an exception. 5 | /// This is possible with XCTest-based assertion handlers. 6 | /// 7 | public class AssertionDispatcher: AssertionHandler { 8 | let handlers: [AssertionHandler] 9 | 10 | public init(handlers: [AssertionHandler]) { 11 | self.handlers = handlers 12 | } 13 | 14 | public func assert(_ assertion: Bool, message: FailureMessage, location: SourceLocation) { 15 | for handler in handlers { 16 | handler.assert(assertion, message: message, location: location) 17 | } 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/Nimble/Matchers/BeVoid.swift: -------------------------------------------------------------------------------- 1 | /// A Nimble matcher that succeeds when the actual value is Void. 2 | public func beVoid() -> Predicate<()> { 3 | return Predicate.simpleNilable("be void") { actualExpression in 4 | let actualValue: ()? = try actualExpression.evaluate() 5 | return PredicateStatus(bool: actualValue != nil) 6 | } 7 | } 8 | 9 | extension Expectation where T == () { 10 | public static func == (lhs: Expectation<()>, rhs: ()) { 11 | lhs.to(beVoid()) 12 | } 13 | 14 | public static func != (lhs: Expectation<()>, rhs: ()) { 15 | lhs.toNot(beVoid()) 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/Nimble/Matchers/Match.swift: -------------------------------------------------------------------------------- 1 | /// A Nimble matcher that succeeds when the actual string satisfies the regular expression 2 | /// described by the expected string. 3 | public func match(_ expectedValue: String?) -> Predicate { 4 | return Predicate.simple("match <\(stringify(expectedValue))>") { actualExpression in 5 | guard let actual = try actualExpression.evaluate(), let regexp = expectedValue else { return .fail } 6 | 7 | let bool = actual.range(of: regexp, options: .regularExpression) != nil 8 | return PredicateStatus(bool: bool) 9 | } 10 | } 11 | 12 | #if canImport(Darwin) 13 | import class Foundation.NSString 14 | 15 | extension NMBPredicate { 16 | @objc public class func matchMatcher(_ expected: NSString) -> NMBPredicate { 17 | return NMBPredicate { actualExpression in 18 | let actual = actualExpression.cast { $0 as? String } 19 | return try match(expected.description).satisfies(actual).toObjectiveC() 20 | } 21 | } 22 | } 23 | #endif 24 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/Nimble/Nimble.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | #import 4 | #import 5 | 6 | #if TARGET_OS_OSX || TARGET_OS_IOS 7 | #import 8 | #import 9 | #endif 10 | 11 | FOUNDATION_EXPORT double NimbleVersionNumber; 12 | FOUNDATION_EXPORT const unsigned char NimbleVersionString[]; 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/NimbleObjectiveC/NMBExceptionCapture.h: -------------------------------------------------------------------------------- 1 | #import 2 | #import 3 | 4 | @interface NMBExceptionCapture : NSObject 5 | 6 | - (nonnull instancetype)initWithHandler:(void(^ _Nullable)(NSException * _Nonnull))handler finally:(void(^ _Nullable)(void))finally; 7 | - (void)tryBlock:(__attribute__((noescape)) void(^ _Nonnull)(void))unsafeBlock NS_SWIFT_NAME(tryBlock(_:)); 8 | 9 | @end 10 | 11 | typedef void(^NMBSourceCallbackBlock)(BOOL successful); 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/NimbleObjectiveC/NMBStringify.h: -------------------------------------------------------------------------------- 1 | @class NSString; 2 | 3 | /** 4 | * Returns a string appropriate for displaying in test output 5 | * from the provided value. 6 | * 7 | * @param anyObject A value that will show up in a test's output. 8 | * 9 | * @return The string that is returned can be 10 | * customized per type by conforming a type to the `TestOutputStringConvertible` 11 | * protocol. When stringifying a non-`TestOutputStringConvertible` type, this 12 | * function will return the value's debug description and then its 13 | * normal description if available and in that order. Otherwise it 14 | * will return the result of constructing a string from the value. 15 | * 16 | * @see `TestOutputStringConvertible` 17 | */ 18 | extern NSString *_Nonnull NMBStringify(id _Nullable anyObject) __attribute__((warn_unused_result)); 19 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/NimbleObjectiveC/NMBStringify.m: -------------------------------------------------------------------------------- 1 | #import "NMBStringify.h" 2 | 3 | #if __has_include("Nimble-Swift.h") 4 | #import "Nimble-Swift.h" 5 | #else 6 | #import 7 | #endif 8 | 9 | NSString *_Nonnull NMBStringify(id _Nullable anyObject) { 10 | return [NMBStringer stringify:anyObject]; 11 | } 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/Nimble/Sources/NimbleObjectiveC/XCTestObservationCenter+Register.m: -------------------------------------------------------------------------------- 1 | #import 2 | 3 | #if __has_include("Nimble-Swift.h") 4 | #import "Nimble-Swift.h" 5 | #else 6 | #import 7 | #endif 8 | 9 | #pragma mark - Private 10 | 11 | @implementation XCTestObservationCenter (Register) 12 | 13 | + (void)load { 14 | [[XCTestObservationCenter sharedTestObservationCenter] addTestObserver:[CurrentTestCaseTracker sharedInstance]]; 15 | } 16 | 17 | @end 18 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Iterator = AnyIterator 12 | 13 | private let _repeatedValue: Element 14 | 15 | init(repeatedValue: Element) { 16 | _repeatedValue = repeatedValue 17 | } 18 | 19 | func makeIterator() -> Iterator { 20 | let repeatedValue = _repeatedValue 21 | return AnyIterator { 22 | return repeatedValue 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | if let newValue = value { 17 | Thread.current.threadDictionary[key] = newValue 18 | } 19 | else { 20 | Thread.current.threadDictionary[key] = nil 21 | } 22 | } 23 | 24 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 25 | let currentThread = Thread.current 26 | let threadDictionary = currentThread.threadDictionary 27 | 28 | return threadDictionary[key] as? T 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSRecursiveLock 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Common/NSLayoutConstraint+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSLayoutConstraint+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if !os(Linux) 10 | 11 | #if os(macOS) 12 | import Cocoa 13 | #else 14 | import UIKit 15 | #endif 16 | 17 | import RxSwift 18 | 19 | #if os(iOS) || os(macOS) || os(tvOS) 20 | extension Reactive where Base: NSLayoutConstraint { 21 | /// Bindable sink for `constant` property. 22 | public var constant: Binder { 23 | return Binder(self.base) { constraint, constant in 24 | constraint.constant = constant 25 | } 26 | } 27 | 28 | /// Bindable sink for `active` property. 29 | @available(iOS 8, OSX 10.10, *) 30 | public var active: Binder { 31 | return Binder(self.base) { constraint, value in 32 | constraint.isActive = value 33 | } 34 | } 35 | } 36 | 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Common/RxTarget.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTarget.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSObject 10 | 11 | import RxSwift 12 | 13 | class RxTarget : NSObject 14 | , Disposable { 15 | 16 | private var retainSelf: RxTarget? 17 | 18 | override init() { 19 | super.init() 20 | self.retainSelf = self 21 | 22 | #if TRACE_RESOURCES 23 | _ = Resources.incrementTotal() 24 | #endif 25 | 26 | #if DEBUG 27 | MainScheduler.ensureRunningOnMainThread() 28 | #endif 29 | } 30 | 31 | func dispose() { 32 | #if DEBUG 33 | MainScheduler.ensureRunningOnMainThread() 34 | #endif 35 | self.retainSelf = nil 36 | } 37 | 38 | #if TRACE_RESOURCES 39 | deinit { 40 | _ = Resources.decrementTotal() 41 | } 42 | #endif 43 | } 44 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Common/SectionedViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SectionedViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 1/10/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import struct Foundation.IndexPath 10 | 11 | /// Data source with access to underlying sectioned model. 12 | public protocol SectionedViewDataSourceType { 13 | /// Returns model at index path. 14 | /// 15 | /// In case data source doesn't contain any sections when this method is being called, `RxCocoaError.ItemsNotYetBound(object: self)` is thrown. 16 | 17 | /// - parameter indexPath: Model index path 18 | /// - returns: Model at index path. 19 | func model(at indexPath: IndexPath) throws -> Any 20 | } 21 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Foundation/KVORepresentable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KVORepresentable.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 11/14/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Type that is KVO representable (KVO mechanism can be used to observe it). 10 | public protocol KVORepresentable { 11 | /// Associated KVO type. 12 | associatedtype KVOType 13 | 14 | /// Constructs `Self` using KVO value. 15 | init?(KVOValue: KVOType) 16 | } 17 | 18 | extension KVORepresentable { 19 | /// Initializes `KVORepresentable` with optional value. 20 | init?(KVOValue: KVOType?) { 21 | guard let KVOValue = KVOValue else { 22 | return nil 23 | } 24 | 25 | self.init(KVOValue: KVOValue) 26 | } 27 | } 28 | 29 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Foundation/Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Logging.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/3/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if canImport(FoundationNetworking) 10 | import struct FoundationNetworking.URLRequest 11 | #else 12 | import struct Foundation.URLRequest 13 | #endif 14 | 15 | /// Simple logging settings for RxCocoa library. 16 | public struct Logging { 17 | public typealias LogURLRequest = (URLRequest) -> Bool 18 | 19 | /// Log URL requests to standard output in curl format. 20 | public static var URLRequests: LogURLRequest = { _ in 21 | #if DEBUG 22 | return true 23 | #else 24 | return false 25 | #endif 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Runtime/_RX.m: -------------------------------------------------------------------------------- 1 | // 2 | // _RX.m 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import "include/_RX.h" 10 | 11 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Runtime/include/RxCocoaRuntime.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoaRuntime.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "_RX.h" 11 | #import "_RXDelegateProxy.h" 12 | #import "_RXKVOObserver.h" 13 | #import "_RXObjCRuntime.h" 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 20 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Runtime/include/_RXDelegateProxy.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXDelegateProxy.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | NS_ASSUME_NONNULL_BEGIN 12 | 13 | @interface _RXDelegateProxy : NSObject 14 | 15 | @property (nonatomic, weak, readonly) id _forwardToDelegate; 16 | 17 | -(void)_setForwardToDelegate:(id __nullable)forwardToDelegate retainDelegate:(BOOL)retainDelegate NS_SWIFT_NAME(_setForwardToDelegate(_:retainDelegate:)) ; 18 | 19 | -(BOOL)hasWiredImplementationForSelector:(SEL)selector; 20 | -(BOOL)voidDelegateMethodsContain:(SEL)selector; 21 | 22 | -(void)_sentMessage:(SEL)selector withArguments:(NSArray*)arguments; 23 | -(void)_methodInvoked:(SEL)selector withArguments:(NSArray*)arguments; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Runtime/include/_RXKVOObserver.h: -------------------------------------------------------------------------------- 1 | // 2 | // _RXKVOObserver.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 7/11/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | /** 12 | ################################################################################ 13 | This file is part of RX private API 14 | ################################################################################ 15 | */ 16 | 17 | // Exists because if written in Swift, reading unowned is disabled during dealloc process 18 | @interface _RXKVOObserver : NSObject 19 | 20 | -(instancetype)initWithTarget:(id)target 21 | retainTarget:(BOOL)retainTarget 22 | keyPath:(NSString*)keyPath 23 | options:(NSKeyValueObservingOptions)options 24 | callback:(void (^)(id))callback; 25 | 26 | -(void)dispose; 27 | 28 | @end 29 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/RxCocoa.h: -------------------------------------------------------------------------------- 1 | // 2 | // RxCocoa.h 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 2/21/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "_RX.h" 11 | #import "_RXDelegateProxy.h" 12 | #import "_RXKVOObserver.h" 13 | #import "_RXObjCRuntime.h" 14 | 15 | //! Project version number for RxCocoa. 16 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 17 | 18 | //! Project version string for RxCocoa. 19 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Traits/Driver/BehaviorRelay+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BehaviorRelay+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 10/7/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | import RxRelay 11 | 12 | extension BehaviorRelay { 13 | /// Converts `BehaviorRelay` to `Driver`. 14 | /// 15 | /// - returns: Observable sequence. 16 | public func asDriver() -> Driver { 17 | let source = self.asObservable() 18 | .observeOn(DriverSharingStrategy.scheduler) 19 | return SharedSequence(source) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlEvent+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlEvent { 12 | /// Converts `ControlEvent` to `Driver` trait. 13 | /// 14 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 15 | public func asDriver() -> Driver { 16 | return self.asDriver { _ -> Driver in 17 | #if DEBUG 18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 19 | #else 20 | return Driver.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Traits/Driver/ControlProperty+Driver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlProperty+Driver.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 9/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlProperty { 12 | /// Converts `ControlProperty` to `Driver` trait. 13 | /// 14 | /// `ControlProperty` already can't fail, so no special case needs to be handled. 15 | public func asDriver() -> Driver { 16 | return self.asDriver { _ -> Driver in 17 | #if DEBUG 18 | rxFatalError("Somehow driver received error from a source that shouldn't fail.") 19 | #else 20 | return Driver.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Traits/Signal/ControlEvent+Signal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ControlEvent+Signal.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 11/1/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | extension ControlEvent { 12 | /// Converts `ControlEvent` to `Signal` trait. 13 | /// 14 | /// `ControlEvent` already can't fail, so no special case needs to be handled. 15 | public func asSignal() -> Signal { 16 | return self.asSignal { _ -> Signal in 17 | #if DEBUG 18 | rxFatalError("Somehow signal received error from a source that shouldn't fail.") 19 | #else 20 | return Signal.empty() 21 | #endif 22 | } 23 | } 24 | } 25 | 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/Traits/Signal/PublishRelay+Signal.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PublishRelay+Signal.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/28/15. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | import RxRelay 11 | 12 | extension PublishRelay { 13 | /// Converts `PublishRelay` to `Signal`. 14 | /// 15 | /// - returns: Observable sequence. 16 | public func asSignal() -> Signal { 17 | let source = self.asObservable() 18 | .observeOn(SignalSharingStrategy.scheduler) 19 | return SharedSequence(source) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/Events/ItemEvents.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ItemEvents.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/20/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | import UIKit 11 | 12 | public typealias ItemMovedEvent = (sourceIndex: IndexPath, destinationIndex: IndexPath) 13 | public typealias WillDisplayCellEvent = (cell: UITableViewCell, indexPath: IndexPath) 14 | public typealias DidEndDisplayingCellEvent = (cell: UITableViewCell, indexPath: IndexPath) 15 | #endif 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxCollectionViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UICollectionView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxCollectionViewDataSourceType /*: UICollectionViewDataSource*/ { 16 | 17 | /// Type of elements that can be bound to collection view. 18 | associatedtype Element 19 | 20 | /// New observable sequence event observed. 21 | /// 22 | /// - parameter collectionView: Bound collection view. 23 | /// - parameter observedEvent: Event 24 | func collectionView(_ collectionView: UICollectionView, observedEvent: Event) 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxPickerViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxPickerViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Sergey Shulga on 05/07/2017. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UIPickerView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxPickerViewDataSourceType { 16 | /// Type of elements that can be bound to picker view. 17 | associatedtype Element 18 | 19 | /// New observable sequence event observed. 20 | /// 21 | /// - parameter pickerView: Bound picker view. 22 | /// - parameter observedEvent: Event 23 | func pickerView(_ pickerView: UIPickerView, observedEvent: Event) 24 | } 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/Protocols/RxTableViewDataSourceType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDataSourceType.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/26/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// Marks data source as `UITableView` reactive data source enabling it to be used with one of the `bindTo` methods. 15 | public protocol RxTableViewDataSourceType /*: UITableViewDataSource*/ { 16 | 17 | /// Type of elements that can be bound to table view. 18 | associatedtype Element 19 | 20 | /// New observable sequence event observed. 21 | /// 22 | /// - parameter tableView: Bound table view. 23 | /// - parameter observedEvent: Event 24 | func tableView(_ tableView: UITableView, observedEvent: Event) 25 | } 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxCollectionViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxCollectionViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxCollectionViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UICollectionViewDelegate 18 | , UICollectionViewDelegateFlowLayout { 19 | 20 | /// Typed parent object. 21 | public weak private(set) var collectionView: UICollectionView? 22 | 23 | /// Initializes `RxCollectionViewDelegateProxy` 24 | /// 25 | /// - parameter collectionView: Parent object for delegate proxy. 26 | public init(collectionView: UICollectionView) { 27 | self.collectionView = collectionView 28 | super.init(scrollView: collectionView) 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/Proxies/RxTableViewDelegateProxy.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTableViewDelegateProxy.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 6/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | /// For more information take a look at `DelegateProxyType`. 15 | open class RxTableViewDelegateProxy 16 | : RxScrollViewDelegateProxy 17 | , UITableViewDelegate { 18 | 19 | /// Typed parent object. 20 | public weak private(set) var tableView: UITableView? 21 | 22 | /// - parameter tableView: Parent object for delegate proxy. 23 | public init(tableView: UITableView) { 24 | self.tableView = tableView 25 | super.init(scrollView: tableView) 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIActivityIndicatorView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIActivityIndicatorView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Ivan Persidskiy on 02/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIActivityIndicatorView { 15 | 16 | /// Bindable sink for `startAnimating()`, `stopAnimating()` methods. 17 | public var isAnimating: Binder { 18 | return Binder(self.base) { activityIndicator, active in 19 | if active { 20 | activityIndicator.startAnimating() 21 | } else { 22 | activityIndicator.stopAnimating() 23 | } 24 | } 25 | } 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIAlertAction+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIAlertAction+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Andrew Breckenridge on 5/7/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIAlertAction { 15 | 16 | /// Bindable sink for `enabled` property. 17 | public var isEnabled: Binder { 18 | return Binder(self.base) { alertAction, value in 19 | alertAction.isEnabled = value 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIApplication+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIApplication+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Mads Bøgeskov on 18/01/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIApplication { 15 | 16 | /// Bindable sink for `networkActivityIndicatorVisible`. 17 | public var isNetworkActivityIndicatorVisible: Binder { 18 | return Binder(self.base) { application, active in 19 | application.isNetworkActivityIndicatorVisible = active 20 | } 21 | } 22 | } 23 | #endif 24 | 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIImageView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIImageView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIImageView { 15 | 16 | /// Bindable sink for `image` property. 17 | public var image: Binder { 18 | return Binder(base) { imageView, image in 19 | imageView.image = image 20 | } 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UILabel+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UILabel+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 4/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UILabel { 15 | 16 | /// Bindable sink for `text` property. 17 | public var text: Binder { 18 | return Binder(self.base) { label, text in 19 | label.text = text 20 | } 21 | } 22 | 23 | /// Bindable sink for `attributedText` property. 24 | public var attributedText: Binder { 25 | return Binder(self.base) { label, text in 26 | label.attributedText = text 27 | } 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UINavigationItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UINavigationItem+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by kumapo on 2016/05/09. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UINavigationItem { 15 | 16 | /// Bindable sink for `title` property. 17 | public var title: Binder { 18 | return Binder(self.base) { navigationItem, text in 19 | navigationItem.title = text 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIPageControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIPageControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Francesco Puntillo on 14/04/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIPageControl { 15 | 16 | /// Bindable sink for `currentPage` property. 17 | public var currentPage: Binder { 18 | return Binder(self.base) { controller, page in 19 | controller.currentPage = page 20 | } 21 | } 22 | 23 | /// Bindable sink for `numberOfPages` property. 24 | public var numberOfPages: Binder { 25 | return Binder(self.base) { controller, page in 26 | controller.numberOfPages = page 27 | } 28 | } 29 | 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIProgressView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIProgressView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Samuel Bae on 2/27/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UIProgressView { 15 | 16 | /// Bindable sink for `progress` property 17 | public var progress: Binder { 18 | return Binder(self.base) { progressView, progress in 19 | progressView.progress = progress 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIRefreshControl+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIRefreshControl+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yosuke Ishikawa on 1/31/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIRefreshControl { 15 | /// Bindable sink for `beginRefreshing()`, `endRefreshing()` methods. 16 | public var isRefreshing: Binder { 17 | return Binder(self.base) { refreshControl, refresh in 18 | if refresh { 19 | refreshControl.beginRefreshing() 20 | } else { 21 | refreshControl.endRefreshing() 22 | } 23 | } 24 | } 25 | 26 | } 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UISlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UISlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Alexander van der Werff on 28/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import RxSwift 12 | import UIKit 13 | 14 | extension Reactive where Base: UISlider { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlPropertyWithDefaultEvents( 19 | getter: { slider in 20 | slider.value 21 | }, setter: { slider, value in 22 | slider.value = value 23 | } 24 | ) 25 | } 26 | 27 | } 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIStepper+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIStepper+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Yuta ToKoRo on 9/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIStepper { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return base.rx.controlPropertyWithDefaultEvents( 19 | getter: { stepper in 20 | stepper.value 21 | }, setter: { stepper, value in 22 | stepper.value = value 23 | } 24 | ) 25 | } 26 | 27 | /// Reactive wrapper for `stepValue` property. 28 | public var stepValue: Binder { 29 | return Binder(self.base) { stepper, value in 30 | stepper.stepValue = value 31 | } 32 | } 33 | 34 | } 35 | 36 | #endif 37 | 38 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UITabBarItem+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UITabBarItem+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Mateusz Derks on 04/03/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UITabBarItem { 15 | 16 | /// Bindable sink for `badgeValue` property. 17 | public var badgeValue: Binder { 18 | return Binder(self.base) { tabBarItem, badgeValue in 19 | tabBarItem.badgeValue = badgeValue 20 | } 21 | } 22 | 23 | } 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/iOS/UIViewController+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIViewController+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Kyle Fuller on 27/05/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(iOS) || os(tvOS) 10 | 11 | import UIKit 12 | import RxSwift 13 | 14 | extension Reactive where Base: UIViewController { 15 | 16 | /// Bindable sink for `title`. 17 | public var title: Binder { 18 | return Binder(self.base) { viewController, title in 19 | viewController.title = title 20 | } 21 | } 22 | 23 | } 24 | #endif 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/macOS/NSButton+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSButton+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSButton { 15 | 16 | /// Reactive wrapper for control event. 17 | public var tap: ControlEvent { 18 | return self.controlEvent 19 | } 20 | 21 | /// Reactive wrapper for `state` property`. 22 | public var state: ControlProperty { 23 | return self.base.rx.controlProperty( 24 | getter: { control in 25 | return control.state 26 | }, setter: { (control: NSButton, state: NSControl.StateValue) in 27 | control.state = state 28 | } 29 | ) 30 | } 31 | } 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/macOS/NSImageView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSImageView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 5/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSImageView { 15 | 16 | /// Bindable sink for `image` property. 17 | public var image: Binder { 18 | return Binder(self.base) { imageView, image in 19 | imageView.image = image 20 | } 21 | } 22 | } 23 | 24 | #endif 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/macOS/NSSlider+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSSlider+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Junior B. on 24/05/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import RxSwift 12 | import Cocoa 13 | 14 | extension Reactive where Base: NSSlider { 15 | 16 | /// Reactive wrapper for `value` property. 17 | public var value: ControlProperty { 18 | return self.base.rx.controlProperty( 19 | getter: { control -> Double in 20 | return control.doubleValue 21 | }, 22 | setter: { control, value in 23 | control.doubleValue = value 24 | } 25 | ) 26 | } 27 | 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxCocoa/RxCocoa/macOS/NSView+Rx.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NSView+Rx.swift 3 | // RxCocoa 4 | // 5 | // Created by Krunoslav Zaher on 12/6/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(macOS) 10 | 11 | import Cocoa 12 | import RxSwift 13 | 14 | extension Reactive where Base: NSView { 15 | /// Bindable sink for `hidden` property. 16 | public var isHidden: Binder { 17 | return Binder(self.base) { view, value in 18 | view.isHidden = value 19 | } 20 | } 21 | 22 | /// Bindable sink for `alphaValue` property. 23 | public var alpha: Binder { 24 | return Binder(self.base) { view, value in 25 | view.alphaValue = value 26 | } 27 | } 28 | } 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxFeedback/Sources/RxFeedback/Deprecations.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Deprecations.swift 3 | // RxFeedback 4 | // 5 | // Created by Krunoslav Zaher on 8/13/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxRelay/RxRelay/Utils.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Utils.swift 3 | // RxRelay 4 | // 5 | // Created by Shai Mishali on 09/04/2019. 6 | // Copyright © 2019 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | func rxFatalErrorInDebug(_ lastMessage: @autoclosure () -> String, file: StaticString = #file, line: UInt = #line) { 12 | #if DEBUG 13 | fatalError(lastMessage(), file: file, line: line) 14 | #else 15 | print("\(file):\(line): \(lastMessage())") 16 | #endif 17 | } 18 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Iterator = AnyIterator 12 | 13 | private let _repeatedValue: Element 14 | 15 | init(repeatedValue: Element) { 16 | _repeatedValue = repeatedValue 17 | } 18 | 19 | func makeIterator() -> Iterator { 20 | let repeatedValue = _repeatedValue 21 | return AnyIterator { 22 | return repeatedValue 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | if let newValue = value { 17 | Thread.current.threadDictionary[key] = newValue 18 | } 19 | else { 20 | Thread.current.threadDictionary[key] = nil 21 | } 22 | } 23 | 24 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 25 | let currentThread = Thread.current 26 | let threadDictionary = currentThread.threadDictionary 27 | 28 | return threadDictionary[key] as? T 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSRecursiveLock 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Cancelable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Cancelable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/12/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents disposable resource with state tracking. 10 | public protocol Cancelable : Disposable { 11 | /// Was resource disposed. 12 | var isDisposed: Bool { get } 13 | } 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Concurrency/Lock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Lock.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/31/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol Lock { 10 | func lock() 11 | func unlock() 12 | } 13 | 14 | // https://lists.swift.org/pipermail/swift-dev/Week-of-Mon-20151214/000321.html 15 | typealias SpinLock = RecursiveLock 16 | 17 | extension RecursiveLock : Lock { 18 | @inline(__always) 19 | final func performLocked(_ action: () -> Void) { 20 | self.lock(); defer { self.unlock() } 21 | action() 22 | } 23 | 24 | @inline(__always) 25 | final func calculateLocked(_ action: () -> T) -> T { 26 | self.lock(); defer { self.unlock() } 27 | return action() 28 | } 29 | 30 | @inline(__always) 31 | final func calculateLockedOrFail(_ action: () throws -> T) throws -> T { 32 | self.lock(); defer { self.unlock() } 33 | let result = try action() 34 | return result 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Concurrency/LockOwnerType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LockOwnerType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol LockOwnerType : class, Lock { 10 | var _lock: RecursiveLock { get } 11 | } 12 | 13 | extension LockOwnerType { 14 | func lock() { 15 | self._lock.lock() 16 | } 17 | 18 | func unlock() { 19 | self._lock.unlock() 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Concurrency/SynchronizedDisposeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedDisposeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedDisposeType : class, Disposable, Lock { 10 | func _synchronized_dispose() 11 | } 12 | 13 | extension SynchronizedDisposeType { 14 | func synchronizedDispose() { 15 | self.lock(); defer { self.unlock() } 16 | self._synchronized_dispose() 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Concurrency/SynchronizedOnType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedOnType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedOnType : class, ObserverType, Lock { 10 | func _synchronized_on(_ event: Event) 11 | } 12 | 13 | extension SynchronizedOnType { 14 | func synchronizedOn(_ event: Event) { 15 | self.lock(); defer { self.unlock() } 16 | self._synchronized_on(event) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Concurrency/SynchronizedUnsubscribeType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SynchronizedUnsubscribeType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol SynchronizedUnsubscribeType : class { 10 | associatedtype DisposeKey 11 | 12 | func synchronizedUnsubscribe(_ disposeKey: DisposeKey) 13 | } 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/ConnectableObservableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ConnectableObservableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /** 10 | Represents an observable sequence wrapper that can be connected and disconnected from its underlying observable sequence. 11 | */ 12 | public protocol ConnectableObservableType : ObservableType { 13 | /** 14 | Connects the observable wrapper to its source. All subscribed observers will receive values from the underlying observable sequence as long as the connection is established. 15 | 16 | - returns: Disposable used to disconnect the observable wrapper from its source, causing subscribed observer to stop receiving values from the underlying observable sequence. 17 | */ 18 | func connect() -> Disposable 19 | } 20 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Disposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable resource. 10 | public protocol Disposable { 11 | /// Dispose resource. 12 | func dispose() 13 | } 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Disposables/Disposables.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Disposables.swift 3 | // RxSwift 4 | // 5 | // Created by Mohsen Ramezanpoor on 01/08/2016. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A collection of utility methods for common disposable operations. 10 | public struct Disposables { 11 | private init() {} 12 | } 13 | 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Disposables/DisposeBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DisposeBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 4/4/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Base class for all disposables. 10 | public class DisposeBase { 11 | init() { 12 | #if TRACE_RESOURCES 13 | _ = Resources.incrementTotal() 14 | #endif 15 | } 16 | 17 | deinit { 18 | #if TRACE_RESOURCES 19 | _ = Resources.decrementTotal() 20 | #endif 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Disposables/NopDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NopDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents a disposable that does nothing on disposal. 10 | /// 11 | /// Nop = No Operation 12 | private struct NopDisposable : Disposable { 13 | 14 | fileprivate static let noOp: Disposable = NopDisposable() 15 | 16 | private init() { 17 | 18 | } 19 | 20 | /// Does nothing. 21 | public func dispose() { 22 | } 23 | } 24 | 25 | extension Disposables { 26 | /** 27 | Creates a disposable that does nothing on disposal. 28 | */ 29 | static public func create() -> Disposable { 30 | return NopDisposable.noOp 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Disposables/SubscriptionDisposable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubscriptionDisposable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 10/25/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct SubscriptionDisposable : Disposable { 10 | private let _key: T.DisposeKey 11 | private weak var _owner: T? 12 | 13 | init(owner: T, key: T.DisposeKey) { 14 | self._owner = owner 15 | self._key = key 16 | } 17 | 18 | func dispose() { 19 | self._owner?.synchronizedUnsubscribe(self._key) 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Observable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Observable.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// A type-erased `ObservableType`. 10 | /// 11 | /// It represents a push style sequence. 12 | public class Observable : ObservableType { 13 | init() { 14 | #if TRACE_RESOURCES 15 | _ = Resources.incrementTotal() 16 | #endif 17 | } 18 | 19 | public func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 20 | rxAbstractMethod() 21 | } 22 | 23 | public func asObservable() -> Observable { 24 | return self 25 | } 26 | 27 | deinit { 28 | #if TRACE_RESOURCES 29 | _ = Resources.decrementTotal() 30 | #endif 31 | } 32 | } 33 | 34 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/ObservableConvertibleType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObservableConvertibleType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/17/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Type that can be converted to observable sequence (`Observable`). 10 | public protocol ObservableConvertibleType { 11 | /// Type of elements in sequence. 12 | associatedtype Element 13 | 14 | @available(*, deprecated, renamed: "Element") 15 | typealias E = Element 16 | 17 | /// Converts `self` to `Observable` sequence. 18 | /// 19 | /// - returns: Observable sequence that represents `self`. 20 | func asObservable() -> Observable 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Observables/Empty.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Empty.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | /** 11 | Returns an empty observable sequence, using the specified scheduler to send out the single `Completed` message. 12 | 13 | - seealso: [empty operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 14 | 15 | - returns: An observable sequence with no elements. 16 | */ 17 | public static func empty() -> Observable { 18 | return EmptyProducer() 19 | } 20 | } 21 | 22 | final private class EmptyProducer: Producer { 23 | override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 24 | observer.on(.completed) 25 | return Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Observables/Never.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Never.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 8/30/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | extension ObservableType { 10 | 11 | /** 12 | Returns a non-terminating observable sequence, which can be used to denote an infinite duration. 13 | 14 | - seealso: [never operator on reactivex.io](http://reactivex.io/documentation/operators/empty-never-throw.html) 15 | 16 | - returns: An observable sequence whose observers will never get called. 17 | */ 18 | public static func never() -> Observable { 19 | return NeverProducer() 20 | } 21 | } 22 | 23 | final private class NeverProducer: Producer { 24 | override func subscribe(_ observer: Observer) -> Disposable where Observer.Element == Element { 25 | return Disposables.create() 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Observers/AnonymousObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnonymousObserver.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/8/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | final class AnonymousObserver: ObserverBase { 10 | typealias EventHandler = (Event) -> Void 11 | 12 | private let _eventHandler : EventHandler 13 | 14 | init(_ eventHandler: @escaping EventHandler) { 15 | #if TRACE_RESOURCES 16 | _ = Resources.incrementTotal() 17 | #endif 18 | self._eventHandler = eventHandler 19 | } 20 | 21 | override func onCore(_ event: Event) { 22 | return self._eventHandler(event) 23 | } 24 | 25 | #if TRACE_RESOURCES 26 | deinit { 27 | _ = Resources.decrementTotal() 28 | } 29 | #endif 30 | } 31 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Observers/ObserverBase.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ObserverBase.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | class ObserverBase : Disposable, ObserverType { 10 | private let _isStopped = AtomicInt(0) 11 | 12 | func on(_ event: Event) { 13 | switch event { 14 | case .next: 15 | if load(self._isStopped) == 0 { 16 | self.onCore(event) 17 | } 18 | case .error, .completed: 19 | if fetchOr(self._isStopped, 1) == 0 { 20 | self.onCore(event) 21 | } 22 | } 23 | } 24 | 25 | func onCore(_ event: Event) { 26 | rxAbstractMethod() 27 | } 28 | 29 | func dispose() { 30 | fetchOr(self._isStopped, 1) 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Schedulers/HistoricalScheduler.swift: -------------------------------------------------------------------------------- 1 | // 2 | // HistoricalScheduler.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 12/27/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import struct Foundation.Date 10 | 11 | /// Provides a virtual time scheduler that uses `Date` for absolute time and `NSTimeInterval` for relative time. 12 | public class HistoricalScheduler : VirtualTimeScheduler { 13 | 14 | /** 15 | Creates a new historical scheduler with initial clock value. 16 | 17 | - parameter initialClock: Initial value for virtual clock. 18 | */ 19 | public init(initialClock: RxTime = Date(timeIntervalSince1970: 0)) { 20 | super.init(initialClock: initialClock, converter: HistoricalSchedulerTimeConverter()) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct InvocableScheduledItem : InvocableType { 10 | 11 | let _invocable: I 12 | let _state: I.Value 13 | 14 | init(invocable: I, state: I.Value) { 15 | self._invocable = invocable 16 | self._state = state 17 | } 18 | 19 | func invoke() { 20 | self._invocable.invoke(self._state) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Schedulers/Internal/InvocableType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InvocableType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol InvocableType { 10 | func invoke() 11 | } 12 | 13 | protocol InvocableWithValueType { 14 | associatedtype Value 15 | 16 | func invoke(_ value: Value) 17 | } 18 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItem.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItem.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 9/2/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | struct ScheduledItem 10 | : ScheduledItemType 11 | , InvocableType { 12 | typealias Action = (T) -> Disposable 13 | 14 | private let _action: Action 15 | private let _state: T 16 | 17 | private let _disposable = SingleAssignmentDisposable() 18 | 19 | var isDisposed: Bool { 20 | return self._disposable.isDisposed 21 | } 22 | 23 | init(action: @escaping Action, state: T) { 24 | self._action = action 25 | self._state = state 26 | } 27 | 28 | func invoke() { 29 | self._disposable.setDisposable(self._action(self._state)) 30 | } 31 | 32 | func dispose() { 33 | self._disposable.dispose() 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Schedulers/Internal/ScheduledItemType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ScheduledItemType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 11/7/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | protocol ScheduledItemType 10 | : Cancelable 11 | , InvocableType { 12 | func invoke() 13 | } 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/Subjects/SubjectType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SubjectType.swift 3 | // RxSwift 4 | // 5 | // Created by Krunoslav Zaher on 3/1/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Represents an object that is both an observable sequence as well as an observer. 10 | public protocol SubjectType : ObservableType { 11 | /// The type of the observer that represents this subject. 12 | /// 13 | /// Usually this type is type of subject itself, but it doesn't have to be. 14 | associatedtype Observer: ObserverType 15 | 16 | @available(*, deprecated, renamed: "Observer") 17 | typealias SubjectObserverType = Observer 18 | 19 | /// Returns observer interface for subject. 20 | /// 21 | /// - returns: Observer interface for subject. 22 | func asObserver() -> Observer 23 | 24 | } 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxSwift/RxSwift/SwiftSupport/SwiftSupport.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SwiftSupport.swift 3 | // RxSwift 4 | // 5 | // Created by Volodymyr Gorbenko on 3/6/17. 6 | // Copyright © 2017 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | typealias IntMax = Int64 12 | public typealias RxAbstractInteger = FixedWidthInteger 13 | 14 | extension SignedInteger { 15 | func toIntMax() -> IntMax { 16 | return IntMax(self) 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxTest/Platform/DataStructures/InfiniteSequence.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InfiniteSequence.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 6/13/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Sequence that repeats `repeatedValue` infinite number of times. 10 | struct InfiniteSequence : Sequence { 11 | typealias Iterator = AnyIterator 12 | 13 | private let _repeatedValue: Element 14 | 15 | init(repeatedValue: Element) { 16 | _repeatedValue = repeatedValue 17 | } 18 | 19 | func makeIterator() -> Iterator { 20 | let repeatedValue = _repeatedValue 21 | return AnyIterator { 22 | return repeatedValue 23 | } 24 | } 25 | } 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxTest/Platform/DispatchQueue+Extensions.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DispatchQueue+Extensions.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 10/22/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import Dispatch 10 | 11 | extension DispatchQueue { 12 | private static var token: DispatchSpecificKey<()> = { 13 | let key = DispatchSpecificKey<()>() 14 | DispatchQueue.main.setSpecific(key: key, value: ()) 15 | return key 16 | }() 17 | 18 | static var isMain: Bool { 19 | return DispatchQueue.getSpecific(key: token) != nil 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxTest/Platform/Platform.Linux.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Platform.Linux.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/29/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | #if os(Linux) 10 | 11 | import class Foundation.Thread 12 | 13 | extension Thread { 14 | 15 | static func setThreadLocalStorageValue(_ value: T?, forKey key: String) { 16 | if let newValue = value { 17 | Thread.current.threadDictionary[key] = newValue 18 | } 19 | else { 20 | Thread.current.threadDictionary[key] = nil 21 | } 22 | } 23 | 24 | static func getThreadLocalStorageValueForKey(_ key: String) -> T? { 25 | let currentThread = Thread.current 26 | let threadDictionary = currentThread.threadDictionary 27 | 28 | return threadDictionary[key] as? T 29 | } 30 | } 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxTest/Platform/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RecursiveLock.swift 3 | // Platform 4 | // 5 | // Created by Krunoslav Zaher on 12/18/16. 6 | // Copyright © 2016 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import class Foundation.NSRecursiveLock 10 | 11 | #if TRACE_RESOURCES 12 | class RecursiveLock: NSRecursiveLock { 13 | override init() { 14 | _ = Resources.incrementTotal() 15 | super.init() 16 | } 17 | 18 | override func lock() { 19 | super.lock() 20 | _ = Resources.incrementTotal() 21 | } 22 | 23 | override func unlock() { 24 | super.unlock() 25 | _ = Resources.decrementTotal() 26 | } 27 | 28 | deinit { 29 | _ = Resources.decrementTotal() 30 | } 31 | } 32 | #else 33 | typealias RecursiveLock = NSRecursiveLock 34 | #endif 35 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxTest/RxTest/RxTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // RxTest.swift 3 | // RxTest 4 | // 5 | // Created by Krunoslav Zaher on 12/19/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | /// Virtual time type. 10 | public typealias TestTime = Int 11 | 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/RxTest/RxTest/TestableObserver.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TestableObserver.swift 3 | // RxTest 4 | // 5 | // Created by Krunoslav Zaher on 2/15/15. 6 | // Copyright © 2015 Krunoslav Zaher. All rights reserved. 7 | // 8 | 9 | import RxSwift 10 | 11 | /// Observer that records events together with virtual time when they were received. 12 | public final class TestableObserver 13 | : ObserverType { 14 | private let _scheduler: TestScheduler 15 | 16 | /// Recorded events. 17 | public private(set) var events = [Recorded>]() 18 | 19 | init(scheduler: TestScheduler) { 20 | self._scheduler = scheduler 21 | } 22 | 23 | /// Notify observer about sequence event. 24 | /// 25 | /// - parameter event: Event that occurred. 26 | public func on(_ event: Event) { 27 | self.events.append(Recorded(time: self._scheduler.clock, value: event)) 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /DemoApp/Pods/Swinject/Sources/Container.Logging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright © 2019 Swinject Contributors. All rights reserved. 3 | // 4 | 5 | public typealias LoggingFunctionType = (String) -> Void 6 | 7 | public extension Container { 8 | /// Function to be used for logging debugging data. 9 | /// Default implementation writes to standard output. 10 | static var loggingFunction: LoggingFunctionType? { 11 | get { return _loggingFunction } 12 | set { _loggingFunction = newValue } 13 | } 14 | 15 | internal static func log(_ message: String) { 16 | _loggingFunction?(message) 17 | } 18 | } 19 | 20 | private var _loggingFunction: LoggingFunctionType? = { print($0) } 21 | -------------------------------------------------------------------------------- /DemoApp/Pods/Swinject/Sources/FunctionType.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright © 2019 Swinject Contributors. All rights reserved. 3 | // 4 | 5 | // Type alias to expect a closure. 6 | internal typealias FunctionType = Any 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Swinject/Sources/GraphIdentifier.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright © 2019 Swinject Contributors. All rights reserved. 3 | // 4 | 5 | /// Unique identifier of an object graph during a resolution process. 6 | public final class GraphIdentifier {} 7 | 8 | extension GraphIdentifier: Equatable, Hashable { 9 | public static func == (lhs: GraphIdentifier, rhs: GraphIdentifier) -> Bool { 10 | return lhs === rhs 11 | } 12 | 13 | public func hash(into hasher: inout Hasher) { 14 | hasher.combine(ObjectIdentifier(self).hashValue) 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Swinject/Sources/RecursiveLock.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright © 2019 Swinject Contributors. All rights reserved. 3 | // 4 | 5 | import Foundation 6 | 7 | internal final class RecursiveLock { 8 | private let lock = NSRecursiveLock() 9 | 10 | func sync(action: () -> T) -> T { 11 | lock.lock() 12 | defer { lock.unlock() } 13 | return action() 14 | } 15 | } 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/Swinject/Sources/Swinject.h: -------------------------------------------------------------------------------- 1 | // 2 | // Swinject.h 3 | // Swinject 4 | // 5 | // Created by Yoichi Tagaya on 7/22/15. 6 | // Copyright © 2015 Swinject Contributors. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for Swinject. 12 | FOUNDATION_EXPORT double SwinjectVersionNumber; 13 | 14 | //! Project version string for Swinject. 15 | FOUNDATION_EXPORT const unsigned char SwinjectVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | -------------------------------------------------------------------------------- /DemoApp/Pods/Swinject/Sources/UnavailableItems.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Copyright © 2019 Swinject Contributors. All rights reserved. 3 | // 4 | 5 | // MARK: For auto migration from Swinject v1 to v2. 6 | 7 | extension ObjectScope { 8 | @available(*, unavailable, renamed: "transient") 9 | public static let none = transient 10 | 11 | @available(*, unavailable, renamed: "container") 12 | public static let hierarchy = container 13 | } 14 | 15 | @available(*, unavailable, renamed: "Resolver") 16 | public protocol ResolverType {} 17 | 18 | @available(*, unavailable, renamed: "Assembly") 19 | public protocol AssemblyType {} 20 | 21 | @available(*, unavailable, renamed: "ServiceKeyOption") 22 | public protocol ServiceKeyOptionType {} 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble-Snapshots/Nimble-Snapshots-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 9.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble-Snapshots/Nimble-Snapshots-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Nimble_Snapshots : NSObject 3 | @end 4 | @implementation PodsDummy_Nimble_Snapshots 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble-Snapshots/Nimble-Snapshots-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble-Snapshots/Nimble-Snapshots-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "Nimble_Snapshots.h" 14 | #import "XCTestObservationCenter+CurrentTestCaseTracker.h" 15 | 16 | FOUNDATION_EXPORT double Nimble_SnapshotsVersionNumber; 17 | FOUNDATION_EXPORT const unsigned char Nimble_SnapshotsVersionString[]; 18 | 19 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble-Snapshots/Nimble-Snapshots.modulemap: -------------------------------------------------------------------------------- 1 | framework module Nimble_Snapshots { 2 | umbrella header "Nimble-Snapshots-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble-Snapshots/Nimble-Snapshots.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Nimble-Snapshots 2 | ENABLE_BITCODE = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/Nimble" "${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "UIKit" -framework "XCTest" -weak_framework "XCTest" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Nimble-Snapshots 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble/Nimble-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 10.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble/Nimble-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Nimble : NSObject 3 | @end 4 | @implementation PodsDummy_Nimble 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble/Nimble-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble/Nimble-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "Nimble.h" 14 | #import "DSL.h" 15 | #import "NMBExceptionCapture.h" 16 | #import "NMBStringify.h" 17 | #import "CwlCatchException.h" 18 | #import "CwlMachBadInstructionHandler.h" 19 | #import "mach_excServer.h" 20 | 21 | FOUNDATION_EXPORT double NimbleVersionNumber; 22 | FOUNDATION_EXPORT const unsigned char NimbleVersionString[]; 23 | 24 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble/Nimble.modulemap: -------------------------------------------------------------------------------- 1 | framework module Nimble { 2 | umbrella header "Nimble-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Nimble/Nimble.xcconfig: -------------------------------------------------------------------------------- 1 | APPLICATION_EXTENSION_API_ONLY = YES 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Nimble 3 | ENABLE_BITCODE = NO 4 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" 5 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 6 | OTHER_LDFLAGS = $(inherited) -Xlinker -no_application_extension -weak-lswiftXCTest -weak_framework "XCTest" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS $(inherited) -suppress-warnings 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Nimble 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemo/Pods-LoginDemo-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemo/Pods-LoginDemo-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LoginDemo : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LoginDemo 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemo/Pods-LoginDemo-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_LoginDemoVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_LoginDemoVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemo/Pods-LoginDemo.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LoginDemo { 2 | umbrella header "Pods-LoginDemo-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemoTests/Pods-LoginDemoTests-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemoTests/Pods-LoginDemoTests-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Pods_LoginDemoTests : NSObject 3 | @end 4 | @implementation PodsDummy_Pods_LoginDemoTests 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemoTests/Pods-LoginDemoTests-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double Pods_LoginDemoTestsVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char Pods_LoginDemoTestsVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Pods-LoginDemoTests/Pods-LoginDemoTests.modulemap: -------------------------------------------------------------------------------- 1 | framework module Pods_LoginDemoTests { 2 | umbrella header "Pods-LoginDemoTests-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.1.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxCocoa : NSObject 3 | @end 4 | @implementation PodsDummy_RxCocoa 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "RxCocoaRuntime.h" 14 | #import "_RX.h" 15 | #import "_RXDelegateProxy.h" 16 | #import "_RXKVOObserver.h" 17 | #import "_RXObjCRuntime.h" 18 | #import "RxCocoa.h" 19 | 20 | FOUNDATION_EXPORT double RxCocoaVersionNumber; 21 | FOUNDATION_EXPORT const unsigned char RxCocoaVersionString[]; 22 | 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 6 | OTHER_LDFLAGS = $(inherited) -framework "RxRelay" -framework "RxSwift" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 12 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 14 | SKIP_INSTALL = YES 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxCocoa { 2 | umbrella header "RxCocoa-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 6 | OTHER_LDFLAGS = $(inherited) -framework "RxRelay" -framework "RxSwift" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 12 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 14 | SKIP_INSTALL = YES 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxCocoa/RxCocoa.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxCocoa 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxFeedback/RxFeedback-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxFeedback/RxFeedback-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxFeedback : NSObject 3 | @end 4 | @implementation PodsDummy_RxFeedback 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxFeedback/RxFeedback-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxFeedback/RxFeedback-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxFeedbackVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxFeedbackVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxFeedback/RxFeedback.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxFeedback { 2 | umbrella header "RxFeedback-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxFeedback/RxFeedback.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxFeedback 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxFeedback 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxGesture/RxGesture-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.0.2 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxGesture/RxGesture-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxGesture : NSObject 3 | @end 4 | @implementation PodsDummy_RxGesture 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxGesture/RxGesture-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxGesture/RxGesture-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxGestureVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxGestureVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxGesture/RxGesture.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxGesture { 2 | umbrella header "RxGesture-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxGesture/RxGesture.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxGesture 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxGesture 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.1.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxRelay : NSObject 3 | @end 4 | @implementation PodsDummy_RxRelay 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxRelayVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxRelayVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxRelay 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 6 | OTHER_LDFLAGS = $(inherited) -framework "RxSwift" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxRelay 12 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 14 | SKIP_INSTALL = YES 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxRelay { 2 | umbrella header "RxRelay-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxRelay 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 6 | OTHER_LDFLAGS = $(inherited) -framework "RxSwift" 7 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 8 | PODS_BUILD_DIR = ${BUILD_DIR} 9 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 10 | PODS_ROOT = ${SRCROOT} 11 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxRelay 12 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 13 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 14 | SKIP_INSTALL = YES 15 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxRelay/RxRelay.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxRelay 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxRelay 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.1.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxSwift : NSObject 3 | @end 4 | @implementation PodsDummy_RxSwift 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxSwiftVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxSwiftVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxSwift { 2 | umbrella header "RxSwift-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxSwift/RxSwift.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxSwift 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxSwift 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxTest/RxTest-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.1.3 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxTest/RxTest-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_RxTest : NSObject 3 | @end 4 | @implementation PodsDummy_RxTest 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxTest/RxTest-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxTest/RxTest-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double RxTestVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char RxTestVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxTest/RxTest.modulemap: -------------------------------------------------------------------------------- 1 | framework module RxTest { 2 | umbrella header "RxTest-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/RxTest/RxTest.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/RxTest 2 | ENABLE_BITCODE = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_LDFLAGS = $(inherited) -framework "XCTest" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/RxTest 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Sensor/Sensor-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Sensor/Sensor-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Sensor : NSObject 3 | @end 4 | @implementation PodsDummy_Sensor 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Sensor/Sensor-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Sensor/Sensor-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SensorVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SensorVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Sensor/Sensor.modulemap: -------------------------------------------------------------------------------- 1 | framework module Sensor { 2 | umbrella header "Sensor-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Sensor/Sensor.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Sensor 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxFeedback" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SensorTest/SensorTest-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.2.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SensorTest/SensorTest-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SensorTest : NSObject 3 | @end 4 | @implementation PodsDummy_SensorTest 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SensorTest/SensorTest-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SensorTest/SensorTest-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SensorTestVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SensorTestVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SensorTest/SensorTest.modulemap: -------------------------------------------------------------------------------- 1 | framework module SensorTest { 2 | umbrella header "SensorTest-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SensorTest/SensorTest.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SensorTest 2 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" "${PODS_CONFIGURATION_BUILD_DIR}/RxCocoa" "${PODS_CONFIGURATION_BUILD_DIR}/RxRelay" "${PODS_CONFIGURATION_BUILD_DIR}/RxSwift" "${PODS_CONFIGURATION_BUILD_DIR}/RxTest" 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "XCTest" 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/../.. 10 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 11 | SKIP_INSTALL = YES 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 5.6.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_SnapKit : NSObject 3 | @end 4 | @implementation PodsDummy_SnapKit 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double SnapKitVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char SnapKitVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit.modulemap: -------------------------------------------------------------------------------- 1 | framework module SnapKit { 2 | umbrella header "SnapKit-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/SnapKit/SnapKit.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/SnapKit 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/SnapKit 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 2.8.1 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_Swinject : NSObject 3 | @end 4 | @implementation PodsDummy_Swinject 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "Swinject.h" 14 | 15 | FOUNDATION_EXPORT double SwinjectVersionNumber; 16 | FOUNDATION_EXPORT const unsigned char SwinjectVersionString[]; 17 | 18 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Swinject 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Swinject 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject.modulemap: -------------------------------------------------------------------------------- 1 | framework module Swinject { 2 | umbrella header "Swinject-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Swinject 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 6 | PODS_BUILD_DIR = ${BUILD_DIR} 7 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 8 | PODS_ROOT = ${SRCROOT} 9 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Swinject 10 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 14 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/Swinject/Swinject.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/Swinject 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 4 | PODS_BUILD_DIR = ${BUILD_DIR} 5 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 6 | PODS_ROOT = ${SRCROOT} 7 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/Swinject 8 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 9 | SKIP_INSTALL = YES 10 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 8.0.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_iOSSnapshotTestCase : NSObject 3 | @end 4 | @implementation PodsDummy_iOSSnapshotTestCase 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | #import "FBSnapshotTestCase.h" 14 | #import "FBSnapshotTestCasePlatform.h" 15 | #import "FBSnapshotTestController.h" 16 | 17 | FOUNDATION_EXPORT double FBSnapshotTestCaseVersionNumber; 18 | FOUNDATION_EXPORT const unsigned char FBSnapshotTestCaseVersionString[]; 19 | 20 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.modulemap: -------------------------------------------------------------------------------- 1 | framework module FBSnapshotTestCase { 2 | umbrella header "iOSSnapshotTestCase-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/iOSSnapshotTestCase/iOSSnapshotTestCase.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/iOSSnapshotTestCase 2 | ENABLE_BITCODE = NO 3 | FRAMEWORK_SEARCH_PATHS = $(inherited) "$(PLATFORM_DIR)/Developer/Library/Frameworks" 4 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 5 | OTHER_LDFLAGS = $(inherited) -framework "Foundation" -framework "QuartzCore" -framework "UIKit" -framework "XCTest" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/iOSSnapshotTestCase 11 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 12 | SKIP_INSTALL = YES 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | ${EXECUTABLE_NAME} 9 | CFBundleIdentifier 10 | ${PRODUCT_BUNDLE_IDENTIFIER} 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | ${PRODUCT_NAME} 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 3.4.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | ${CURRENT_PROJECT_VERSION} 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios-dummy.m: -------------------------------------------------------------------------------- 1 | #import 2 | @interface PodsDummy_lottie_ios : NSObject 3 | @end 4 | @implementation PodsDummy_lottie_ios 5 | @end 6 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios-prefix.pch: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios-umbrella.h: -------------------------------------------------------------------------------- 1 | #ifdef __OBJC__ 2 | #import 3 | #else 4 | #ifndef FOUNDATION_EXPORT 5 | #if defined(__cplusplus) 6 | #define FOUNDATION_EXPORT extern "C" 7 | #else 8 | #define FOUNDATION_EXPORT extern 9 | #endif 10 | #endif 11 | #endif 12 | 13 | 14 | FOUNDATION_EXPORT double LottieVersionNumber; 15 | FOUNDATION_EXPORT const unsigned char LottieVersionString[]; 16 | 17 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios.debug.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "QuartzCore" -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/lottie-ios 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios.modulemap: -------------------------------------------------------------------------------- 1 | framework module Lottie { 2 | umbrella header "lottie-ios-umbrella.h" 3 | 4 | export * 5 | module * { export * } 6 | } 7 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios.release.xcconfig: -------------------------------------------------------------------------------- 1 | CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = NO 2 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios 3 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 4 | LIBRARY_SEARCH_PATHS = $(inherited) "${DT_TOOLCHAIN_DIR}/usr/lib/swift/${PLATFORM_NAME}" /usr/lib/swift 5 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "QuartzCore" -framework "UIKit" 6 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 7 | PODS_BUILD_DIR = ${BUILD_DIR} 8 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 9 | PODS_ROOT = ${SRCROOT} 10 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/lottie-ios 11 | PODS_XCFRAMEWORKS_BUILD_DIR = $(PODS_CONFIGURATION_BUILD_DIR)/XCFrameworkIntermediates 12 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 13 | SKIP_INSTALL = YES 14 | USE_RECURSIVE_SCRIPT_INPUTS_IN_SCRIPT_PHASES = YES 15 | -------------------------------------------------------------------------------- /DemoApp/Pods/Target Support Files/lottie-ios/lottie-ios.xcconfig: -------------------------------------------------------------------------------- 1 | CONFIGURATION_BUILD_DIR = ${PODS_CONFIGURATION_BUILD_DIR}/lottie-ios 2 | GCC_PREPROCESSOR_DEFINITIONS = $(inherited) COCOAPODS=1 3 | OTHER_LDFLAGS = $(inherited) -framework "CoreGraphics" -framework "QuartzCore" -framework "UIKit" 4 | OTHER_SWIFT_FLAGS = $(inherited) -D COCOAPODS 5 | PODS_BUILD_DIR = ${BUILD_DIR} 6 | PODS_CONFIGURATION_BUILD_DIR = ${PODS_BUILD_DIR}/$(CONFIGURATION)$(EFFECTIVE_PLATFORM_NAME) 7 | PODS_ROOT = ${SRCROOT} 8 | PODS_TARGET_SRCROOT = ${PODS_ROOT}/lottie-ios 9 | PRODUCT_BUNDLE_IDENTIFIER = org.cocoapods.${PRODUCT_NAME:rfc1034identifier} 10 | SKIP_INSTALL = YES 11 | -------------------------------------------------------------------------------- /DemoApp/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017-2018, Uber Technologies, Inc. 3 | * Copyright (c) 2015-2018, Facebook, Inc. 4 | * 5 | * This source code is licensed under the MIT license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | * 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIApplication (KeyWindow) 15 | 16 | - (nullable UIWindow *)ub_keyWindow; 17 | 18 | @end 19 | 20 | NS_ASSUME_NONNULL_END 21 | -------------------------------------------------------------------------------- /DemoApp/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIApplication+KeyWindow.m: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017-2018, Uber Technologies, Inc. 3 | * Copyright (c) 2015-2018, Facebook, Inc. 4 | * 5 | * This source code is licensed under the MIT license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | * 8 | */ 9 | 10 | #if SWIFT_PACKAGE 11 | #import "UIApplication+KeyWindow.h" 12 | #else 13 | #import 14 | #endif 15 | 16 | @implementation UIApplication (KeyWindow) 17 | 18 | - (nullable UIWindow *)ub_keyWindow 19 | { 20 | #pragma GCC diagnostic push 21 | #pragma GCC diagnostic ignored "-Wdeprecated-declarations" 22 | return UIApplication.sharedApplication.keyWindow; 23 | #pragma GCC diagnostic pop 24 | } 25 | 26 | @end 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/iOSSnapshotTestCase/src/iOSSnapshotTestCaseCore/Categories/UIImage+Snapshot.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (c) 2017-2018, Uber Technologies, Inc. 3 | * Copyright (c) 2015-2018, Facebook, Inc. 4 | * 5 | * This source code is licensed under the MIT license found in the 6 | * LICENSE file in the root directory of this source tree. 7 | * 8 | */ 9 | 10 | #import 11 | 12 | NS_ASSUME_NONNULL_BEGIN 13 | 14 | @interface UIImage (Snapshot) 15 | 16 | /// Uses renderInContext: to get a snapshot of the layer. 17 | + (nullable UIImage *)fb_imageForLayer:(CALayer *)layer; 18 | 19 | /// Uses renderInContext: to get a snapshot of the view layer. 20 | + (nullable UIImage *)fb_imageForViewLayer:(UIView *)view; 21 | 22 | /// Uses drawViewHierarchyInRect: to get a snapshot of the view and adds the view into a window if needed. 23 | + (nullable UIImage *)fb_imageForView:(UIView *)view; 24 | 25 | @end 26 | 27 | NS_ASSUME_NONNULL_END 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/CoreAnimation/Animations/EllipseAnimation.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 12/21/21. 2 | // Copyright © 2021 Airbnb Inc. All rights reserved. 3 | 4 | import QuartzCore 5 | 6 | extension CAShapeLayer { 7 | /// Adds animations for the given `Ellipse` to this `CALayer` 8 | @nonobjc 9 | func addAnimations( 10 | for ellipse: Ellipse, 11 | context: LayerAnimationContext, 12 | pathMultiplier: PathMultiplier) 13 | throws 14 | { 15 | try addAnimation( 16 | for: .path, 17 | keyframes: ellipse.size.keyframes, 18 | value: { sizeKeyframe in 19 | BezierPath.ellipse( 20 | size: sizeKeyframe.sizeValue, 21 | center: try ellipse.position.exactlyOneKeyframe(context: context, description: "ellipse position").value.pointValue, 22 | direction: ellipse.direction) 23 | .cgPath() 24 | .duplicated(times: pathMultiplier) 25 | }, 26 | context: context) 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/CoreAnimation/Layers/BaseAnimationLayer.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 1/27/22. 2 | // Copyright © 2022 Airbnb Inc. All rights reserved. 3 | 4 | import QuartzCore 5 | 6 | /// A base `CALayer` that manages the frame and animations 7 | /// of its `sublayers` and `mask` 8 | class BaseAnimationLayer: CALayer, AnimationLayer { 9 | 10 | // MARK: Internal 11 | 12 | override func layoutSublayers() { 13 | super.layoutSublayers() 14 | 15 | for sublayer in managedSublayers { 16 | sublayer.fillBoundsOfSuperlayer() 17 | } 18 | } 19 | 20 | func setupAnimations(context: LayerAnimationContext) throws { 21 | for childAnimationLayer in managedSublayers { 22 | try (childAnimationLayer as? AnimationLayer)?.setupAnimations(context: context) 23 | } 24 | } 25 | 26 | // MARK: Private 27 | 28 | /// All of the sublayers managed by this container 29 | private var managedSublayers: [CALayer] { 30 | (sublayers ?? []) + [mask].compactMap { $0 } 31 | } 32 | 33 | } 34 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/CoreAnimation/Layers/TransformLayer.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 12/21/21. 2 | // Copyright © 2021 Airbnb Inc. All rights reserved. 3 | 4 | /// The CALayer type responsible for only rendering the `transform` of a `LayerModel` 5 | final class TransformLayer: BaseCompositionLayer { 6 | 7 | /// `TransformLayer`s don't render any visible content, 8 | /// they just `transform` their sublayers 9 | override var renderLayerContents: Bool { false } 10 | 11 | } 12 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/LayerContainers/CompLayers/NullCompositionLayer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NullCompositionLayer.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/25/19. 6 | // 7 | 8 | import Foundation 9 | 10 | final class NullCompositionLayer: CompositionLayer { 11 | 12 | init(layer: LayerModel) { 13 | super.init(layer: layer, size: .zero) 14 | } 15 | 16 | required init?(coder _: NSCoder) { 17 | fatalError("init(coder:) has not been implemented") 18 | } 19 | 20 | override init(layer: Any) { 21 | /// Used for creating shadow model layers. Read More here: https://developer.apple.com/documentation/quartzcore/calayer/1410842-init 22 | guard let layer = layer as? NullCompositionLayer else { 23 | fatalError("init(layer:) Wrong Layer Class") 24 | } 25 | super.init(layer: layer) 26 | } 27 | 28 | } 29 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/LayerContainers/Utility/LayerFontProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayerFontProvider.swift 3 | // Lottie 4 | // 5 | // Created by Brandon Withrow on 8/5/20. 6 | // Copyright © 2020 YurtvilleProds. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | /// Connects a LottieFontProvider to a group of text layers 12 | final class LayerFontProvider { 13 | 14 | // MARK: Lifecycle 15 | 16 | init(fontProvider: AnimationFontProvider) { 17 | self.fontProvider = fontProvider 18 | textLayers = [] 19 | reloadTexts() 20 | } 21 | 22 | // MARK: Internal 23 | 24 | private(set) var textLayers: [TextCompositionLayer] 25 | 26 | var fontProvider: AnimationFontProvider { 27 | didSet { 28 | reloadTexts() 29 | } 30 | } 31 | 32 | func addTextLayers(_ layers: [TextCompositionLayer]) { 33 | textLayers += layers 34 | } 35 | 36 | func reloadTexts() { 37 | textLayers.forEach { 38 | $0.fontProvider = fontProvider 39 | } 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/LayerContainers/Utility/LayerTextProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LayerTextProvider.swift 3 | // lottie-ios-iOS 4 | // 5 | // Created by Alexandr Goncharov on 07/06/2019. 6 | // 7 | 8 | import Foundation 9 | 10 | /// Connects a LottieTextProvider to a group of text layers 11 | final class LayerTextProvider { 12 | 13 | // MARK: Lifecycle 14 | 15 | init(textProvider: AnimationTextProvider) { 16 | self.textProvider = textProvider 17 | textLayers = [] 18 | reloadTexts() 19 | } 20 | 21 | // MARK: Internal 22 | 23 | private(set) var textLayers: [TextCompositionLayer] 24 | 25 | var textProvider: AnimationTextProvider { 26 | didSet { 27 | reloadTexts() 28 | } 29 | } 30 | 31 | func addTextLayers(_ layers: [TextCompositionLayer]) { 32 | textLayers += layers 33 | } 34 | 35 | func reloadTexts() { 36 | textLayers.forEach { 37 | $0.textProvider = textProvider 38 | } 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/AnyValueContainer.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnyValueContainer.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/30/19. 6 | // 7 | 8 | import CoreGraphics 9 | import Foundation 10 | 11 | /// The container for the value of a property. 12 | protocol AnyValueContainer: AnyObject { 13 | 14 | /// The stored value of the container 15 | var value: Any { get } 16 | 17 | /// Notifies the provider that it should update its container 18 | func setNeedsUpdate() 19 | 20 | /// When true the container needs to have its value updated by its provider 21 | var needsUpdate: Bool { get } 22 | 23 | /// The frame time of the last provided update 24 | var lastUpdateFrame: CGFloat { get } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/Protocols/KeypathSearchable.swift: -------------------------------------------------------------------------------- 1 | // 2 | // KeypathSettable.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 2/4/19. 6 | // 7 | 8 | import Foundation 9 | import QuartzCore 10 | 11 | /// Protocol that provides keypath search functionality. Returns all node properties associated with a keypath. 12 | protocol KeypathSearchable { 13 | 14 | /// The name of the Keypath 15 | var keypathName: String { get } 16 | 17 | /// A list of properties belonging to the keypath. 18 | var keypathProperties: [String: AnyNodeProperty] { get } 19 | 20 | /// Children Keypaths 21 | var childKeypaths: [KeypathSearchable] { get } 22 | 23 | var keypathLayer: CALayer? { get } 24 | } 25 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/NodeRenderSystem/NodeProperties/ValueProviders/SingleValueProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SingleValueProvider.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/30/19. 6 | // 7 | 8 | import Foundation 9 | import QuartzCore 10 | 11 | /// Returns a value for every frame. 12 | final class SingleValueProvider: ValueProvider { 13 | 14 | // MARK: Lifecycle 15 | 16 | init(_ value: ValueType) { 17 | self.value = value 18 | } 19 | 20 | // MARK: Internal 21 | 22 | var value: ValueType { 23 | didSet { 24 | hasUpdate = true 25 | } 26 | } 27 | 28 | var storage: ValueProviderStorage { 29 | .singleValue(value) 30 | } 31 | 32 | var valueType: Any.Type { 33 | ValueType.self 34 | } 35 | 36 | func hasUpdate(frame _: CGFloat) -> Bool { 37 | hasUpdate 38 | } 39 | 40 | // MARK: Private 41 | 42 | private var hasUpdate = true 43 | } 44 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/MainThread/NodeRenderSystem/Protocols/PathNode.swift: -------------------------------------------------------------------------------- 1 | // 2 | // PathNode.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/17/19. 6 | // 7 | 8 | import Foundation 9 | 10 | // MARK: - PathNode 11 | 12 | protocol PathNode { 13 | var pathOutput: PathOutputNode { get } 14 | } 15 | 16 | extension PathNode where Self: AnimatorNode { 17 | 18 | var outputNode: NodeOutput { 19 | pathOutput 20 | } 21 | 22 | } 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/Model/Objects/Marker.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Marker.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/9/19. 6 | // 7 | 8 | import Foundation 9 | 10 | /// A time marker 11 | final class Marker: Codable, DictionaryInitializable { 12 | 13 | // MARK: Lifecycle 14 | 15 | init(dictionary: [String: Any]) throws { 16 | name = try dictionary.value(for: CodingKeys.name) 17 | frameTime = try dictionary.value(for: CodingKeys.frameTime) 18 | } 19 | 20 | // MARK: Internal 21 | 22 | enum CodingKeys: String, CodingKey { 23 | case name = "cm" 24 | case frameTime = "tm" 25 | } 26 | 27 | /// The Marker Name 28 | let name: String 29 | 30 | /// The Frame time of the marker 31 | let frameTime: AnimationFrameTime 32 | 33 | } 34 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/Utility/Debugging/AnimatorNodeDebugging.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimatorNodeDebugging.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/18/19. 6 | // 7 | 8 | import Foundation 9 | 10 | extension AnimatorNode { 11 | 12 | func printNodeTree() { 13 | parentNode?.printNodeTree() 14 | LottieLogger.shared.info(String(describing: type(of: self))) 15 | 16 | if let group = self as? GroupNode { 17 | LottieLogger.shared.info("* |Children") 18 | group.rootNode?.printNodeTree() 19 | LottieLogger.shared.info("*") 20 | } else { 21 | LottieLogger.shared.info("|") 22 | } 23 | } 24 | 25 | } 26 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/Utility/Debugging/TestHelpers.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 1/28/22. 2 | // Copyright © 2022 Airbnb Inc. All rights reserved. 3 | 4 | enum TestHelpers { 5 | /// Whether or not snapshot tests are currently running in a test target 6 | static var snapshotTestsAreRunning = false 7 | 8 | /// Whether or not performance tests are currently running in a test target 9 | static var performanceTestsAreRunning = false 10 | } 11 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/Utility/Extensions/CGColor+RGB.swift: -------------------------------------------------------------------------------- 1 | // Created by Cal Stephens on 1/7/22. 2 | // Copyright © 2022 Airbnb Inc. All rights reserved. 3 | 4 | import QuartzCore 5 | 6 | extension CGColor { 7 | /// Initializes a `CGColor` using the given `RGB` values 8 | static func rgb(_ red: CGFloat, _ green: CGFloat, _ blue: CGFloat) -> CGColor { 9 | if #available(iOS 13.0, tvOS 13.0, macOS 10.5, *) { 10 | return CGColor(red: red, green: green, blue: blue, alpha: 1) 11 | } else { 12 | return CGColor( 13 | colorSpace: CGColorSpaceCreateDeviceRGB(), 14 | components: [red, green, blue])! 15 | } 16 | } 17 | 18 | /// Initializes a `CGColor` using the given `RGBA` values 19 | static func rgba(_ red: CGFloat, _ green: CGFloat, _ blue: CGFloat, _ alpha: CGFloat) -> CGColor { 20 | CGColor.rgb(red, green, blue).copy(alpha: alpha)! 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/Utility/Extensions/DataExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // DataExtension.swift 3 | // Lottie 4 | // 5 | // Created by René Fouquet on 03.05.21. 6 | // 7 | 8 | import Foundation 9 | #if canImport(UIKit) 10 | import UIKit 11 | #elseif canImport(AppKit) 12 | import AppKit 13 | #endif 14 | 15 | extension Data { 16 | 17 | static func jsonData(from assetName: String, in bundle: Bundle) -> Data? { 18 | #if canImport(UIKit) 19 | return NSDataAsset(name: assetName, bundle: bundle)?.data 20 | #else 21 | if #available(macOS 10.11, *) { 22 | return NSDataAsset(name: assetName, bundle: bundle)?.data 23 | } 24 | return nil 25 | #endif 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Private/Utility/Primitives/CGPointExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CGPointExtension.swift 3 | // Lottie 4 | // 5 | // Created by Marcelo Fabri on 5/5/22. 6 | // 7 | 8 | import CoreGraphics 9 | 10 | extension CGPoint: AnyInitializable { 11 | 12 | // MARK: Lifecycle 13 | 14 | init(value: Any) throws { 15 | if let dictionary = value as? [String: CGFloat] { 16 | let x: CGFloat = try dictionary.value(for: CodingKeys.x) 17 | let y: CGFloat = try dictionary.value(for: CodingKeys.y) 18 | self.init(x: x, y: y) 19 | } else if 20 | let array = value as? [CGFloat], 21 | array.count > 1 22 | { 23 | self.init(x: array[0], y: array[1]) 24 | } else { 25 | throw InitializableError.invalidInput 26 | } 27 | } 28 | 29 | // MARK: Private 30 | 31 | private enum CodingKeys: String { 32 | case x 33 | case y 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/AnimationCache/AnimationCacheProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimationCacheProvider.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 2/5/19. 6 | // 7 | 8 | import Foundation 9 | /// `AnimationCacheProvider` is a protocol that describes an Animation Cache. 10 | /// Animation Cache is used when loading `Animation` models. Using an Animation Cache 11 | /// can increase performance when loading an animation multiple times. 12 | /// 13 | /// Lottie comes with a prebuilt LRU Animation Cache. 14 | public protocol AnimationCacheProvider { 15 | 16 | func animation(forKey: String) -> Animation? 17 | 18 | func setAnimation(_ animation: Animation, forKey: String) 19 | 20 | func clearCache() 21 | 22 | } 23 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/FontProvider/AnimationFontProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimationFontProvider.swift 3 | // Lottie 4 | // 5 | // Created by Brandon Withrow on 8/5/20. 6 | // Copyright © 2020 YurtvilleProds. All rights reserved. 7 | // 8 | 9 | import CoreGraphics 10 | import CoreText 11 | import Foundation 12 | 13 | // MARK: - AnimationFontProvider 14 | 15 | /// Font provider is a protocol that is used to supply fonts to `AnimationView`. 16 | /// 17 | public protocol AnimationFontProvider { 18 | func fontFor(family: String, size: CGFloat) -> CTFont? 19 | } 20 | 21 | // MARK: - DefaultFontProvider 22 | 23 | /// Default Font provider. 24 | public final class DefaultFontProvider: AnimationFontProvider { 25 | 26 | // MARK: Lifecycle 27 | 28 | public init() {} 29 | 30 | // MARK: Public 31 | 32 | public func fontFor(family: String, size: CGFloat) -> CTFont? { 33 | CTFontCreateWithName(family as CFString, size, nil) 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/ImageProvider/AnimationImageProvider.swift: -------------------------------------------------------------------------------- 1 | // 2 | // LottieImageProvider.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 1/25/19. 6 | // 7 | 8 | import CoreGraphics 9 | import Foundation 10 | 11 | /// Image provider is a protocol that is used to supply images to `AnimationView`. 12 | /// 13 | /// Some animations require a reference to an image. The image provider loads and 14 | /// provides those images to the `AnimationView`. Lottie includes a couple of 15 | /// prebuilt Image Providers that supply images from a Bundle, or from a FilePath. 16 | /// 17 | /// Additionally custom Image Providers can be made to load images from a URL, 18 | /// or to Cache images. 19 | public protocol AnimationImageProvider { 20 | func imageForAsset(asset: ImageAsset) -> CGImage? 21 | } 22 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/Primitives/AnimationTime.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimationTime.swift 3 | // lottie-swift-iOS 4 | // 5 | // Created by Brandon Withrow on 2/6/19. 6 | // 7 | 8 | import CoreGraphics 9 | import Foundation 10 | 11 | /// Defines animation time in Frames (Seconds * Framerate). 12 | public typealias AnimationFrameTime = CGFloat 13 | 14 | /// Defines animation time by a progress from 0 (beginning of the animation) to 1 (end of the animation) 15 | public typealias AnimationProgressTime = CGFloat 16 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/Primitives/Color.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Color.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 2/4/19. 6 | // 7 | 8 | import Foundation 9 | 10 | // MARK: - ColorFormatDenominator 11 | 12 | public enum ColorFormatDenominator: Hashable { 13 | case One 14 | case OneHundred 15 | case TwoFiftyFive 16 | 17 | var value: Double { 18 | switch self { 19 | case .One: 20 | return 1.0 21 | case .OneHundred: 22 | return 100.0 23 | case .TwoFiftyFive: 24 | return 255.0 25 | } 26 | } 27 | } 28 | 29 | // MARK: - Color 30 | 31 | public struct Color: Hashable { 32 | 33 | public var r: Double 34 | public var g: Double 35 | public var b: Double 36 | public var a: Double 37 | 38 | public init(r: Double, g: Double, b: Double, a: Double, denominator: ColorFormatDenominator = .One) { 39 | self.r = r / denominator.value 40 | self.g = g / denominator.value 41 | self.b = b / denominator.value 42 | self.a = a / denominator.value 43 | } 44 | 45 | } 46 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/Primitives/Vectors.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Vectors.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 2/4/19. 6 | // 7 | 8 | import Foundation 9 | 10 | // MARK: - Vector1D 11 | 12 | public struct Vector1D: Hashable { 13 | 14 | public init(_ value: Double) { 15 | self.value = value 16 | } 17 | 18 | public let value: Double 19 | 20 | } 21 | 22 | // MARK: - Vector3D 23 | 24 | /// A three dimensional vector. 25 | /// These vectors are encoded and decoded from [Double] 26 | public struct Vector3D: Hashable { 27 | 28 | public let x: Double 29 | public let y: Double 30 | public let z: Double 31 | 32 | public init(x: Double, y: Double, z: Double) { 33 | self.x = x 34 | self.y = y 35 | self.z = z 36 | } 37 | 38 | } 39 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/iOS/AnimationSubview.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AnimationSubview.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 2/4/19. 6 | // 7 | 8 | import Foundation 9 | #if os(iOS) || os(tvOS) || os(watchOS) || targetEnvironment(macCatalyst) 10 | import UIKit 11 | 12 | /// A view that can be added to a keypath of an AnimationView 13 | public final class AnimationSubview: UIView { 14 | 15 | var viewLayer: CALayer? { 16 | layer 17 | } 18 | 19 | } 20 | #endif 21 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/iOS/Compatibility/CompatibleAnimationKeypath.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CompatibleAnimationKeypath.swift 3 | // Lottie_iOS 4 | // 5 | // Created by Tyler Hedrick on 3/6/19. 6 | // 7 | 8 | import Foundation 9 | #if os(iOS) || os(tvOS) || os(watchOS) || targetEnvironment(macCatalyst) 10 | 11 | /// An Objective-C compatible wrapper around Lottie's AnimationKeypath 12 | @objc 13 | public final class CompatibleAnimationKeypath: NSObject { 14 | 15 | // MARK: Lifecycle 16 | 17 | /// Creates a keypath from a dot separated string. The string is separated by "." 18 | @objc 19 | public init(keypath: String) { 20 | animationKeypath = AnimationKeypath(keypath: keypath) 21 | } 22 | 23 | /// Creates a keypath from a list of strings. 24 | @objc 25 | public init(keys: [String]) { 26 | animationKeypath = AnimationKeypath(keys: keys) 27 | } 28 | 29 | // MARK: Public 30 | 31 | public let animationKeypath: AnimationKeypath 32 | } 33 | #endif 34 | -------------------------------------------------------------------------------- /DemoApp/Pods/lottie-ios/Sources/Public/iOS/UIColorExtension.swift: -------------------------------------------------------------------------------- 1 | // 2 | // UIColorExtension.swift 3 | // lottie-swift 4 | // 5 | // Created by Brandon Withrow on 2/4/19. 6 | // 7 | 8 | import Foundation 9 | #if os(iOS) || os(tvOS) || os(watchOS) || targetEnvironment(macCatalyst) 10 | import UIKit 11 | 12 | extension UIColor { 13 | 14 | public var lottieColorValue: Color { 15 | var r: CGFloat = 0, g: CGFloat = 0, b: CGFloat = 0, a: CGFloat = 0 16 | getRed(&r, green: &g, blue: &b, alpha: &a) 17 | return Color(r: Double(r), g: Double(g), b: Double(b), a: Double(a)) 18 | } 19 | 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /Docs/GeneratedDocsComponent/.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | /.build 3 | /Packages 4 | /*.xcodeproj 5 | xcuserdata/ 6 | -------------------------------------------------------------------------------- /Docs/GeneratedDocsComponent/.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Docs/GeneratedDocsComponent/README.md: -------------------------------------------------------------------------------- 1 | # generate_docs_component 2 | 3 | A description of this package. 4 | -------------------------------------------------------------------------------- /Docs/README.md: -------------------------------------------------------------------------------- 1 | # *SensorDocs.app* 2 | 3 | The Sensor documentation is written in *SensorDocs.app*. *SensorDocs.app* is a [nef](https://nef.bow-swift.io/) playground. 4 | 5 | To build the dependencies of the playground, navigate to this folder on a command line and execute `nef compile --project SensorDocs.app`. 6 | 7 | After this, you can open *SensorDocs.app* and edit and execute the playground code. 8 | 9 | # GeneratedDocsComponent 10 | 11 | *GeneratedDocsComponent* is a swift command line tool that parses the *SensorDocs.app* playground and generates an HTML documentation that is saved in the *GeneratedDocs* folder. -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | launcher 9 | CFBundleIconFile 10 | AppIcon 11 | CFBundleIconName 12 | AppIcon 13 | CFBundleIdentifier 14 | com.fortysevendeg.nef 15 | CFBundleInfoDictionaryVersion 16 | 6.0 17 | CFBundleSupportedPlatforms 18 | 19 | MacOSX 20 | 21 | LSApplicationCategoryType 22 | public.app-category.developer-tools 23 | LSMinimumSystemVersion 24 | 10.14 25 | NSHumanReadableCopyright 26 | Copyright © 2019 The nef Authors. All rights reserved. 27 | 28 | 29 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/.gitignore: -------------------------------------------------------------------------------- 1 | ## gitignore nef files 2 | **/build/ 3 | **/nef/ 4 | LICENSE 5 | 6 | ## User data 7 | **/xcuserdata/ 8 | podfile.lock 9 | **.DS_Store 10 | 11 | ## Obj-C/Swift specific 12 | *.hmap 13 | *.ipa 14 | *.dSYM.zip 15 | *.dSYM 16 | 17 | ## CocoaPods 18 | **Pods** 19 | 20 | ## Carthage 21 | **Carthage** 22 | 23 | ## SPM 24 | .build 25 | .swiftpm 26 | swiftpm 27 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/Podfile: -------------------------------------------------------------------------------- 1 | target 'SensorDocs' do 2 | platform :osx, 10.14 3 | use_frameworks! 4 | 5 | pod "SensorV2", :path => "../../../../" 6 | end 7 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/SensorDocs.playground/contents.xcplayground: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/SensorDocs.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/SensorDocs.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 7 | 8 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/SensorDocs.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/SensorDocs/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1.0 21 | NSHumanReadableCopyright 22 | Copyright © 2019. The nef authors. 23 | 24 | 25 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/MacOS/launcher: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | 3 | workspace="SensorDocs.xcworkspace" 4 | workspacePath=$(echo "$0" | rev | cut -f2- -d '/' | rev) 5 | 6 | open "`pwd`/$workspacePath/$workspace" 7 | -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/Resources/AppIcon.icns: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs/SensorDocs.app/Contents/Resources/AppIcon.icns -------------------------------------------------------------------------------- /Docs/SensorDocs.app/Contents/Resources/Assets.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs/SensorDocs.app/Contents/Resources/Assets.car -------------------------------------------------------------------------------- /Docs_old/RxFeedback/2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/RxFeedback/2.png -------------------------------------------------------------------------------- /Docs_old/images/1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/1.png -------------------------------------------------------------------------------- /Docs_old/images/3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/3.png -------------------------------------------------------------------------------- /Docs_old/images/4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/4.png -------------------------------------------------------------------------------- /Docs_old/images/5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/5.png -------------------------------------------------------------------------------- /Docs_old/images/Sensor.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/Sensor.png -------------------------------------------------------------------------------- /Docs_old/images/SocialIcons/GitHub-Mark-32px.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/SocialIcons/GitHub-Mark-32px.png -------------------------------------------------------------------------------- /Docs_old/images/SocialIcons/Twitter_Social_Icon_Circle_Color.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/SocialIcons/Twitter_Social_Icon_Circle_Color.png -------------------------------------------------------------------------------- /Docs_old/images/store.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/freenowtech/Sensor/644d5e0adea7e30b59809d7051645c8cc351606b/Docs_old/images/store.png -------------------------------------------------------------------------------- /MAINTAINERS.md: -------------------------------------------------------------------------------- 1 | This file lists the active maintainers. 2 | 3 | - Stefan Bieschewski 4 | - Ferran Pujol 5 | -------------------------------------------------------------------------------- /Package.resolved: -------------------------------------------------------------------------------- 1 | { 2 | "object": { 3 | "pins": [ 4 | { 5 | "package": "RxFeedback", 6 | "repositoryURL": "https://github.com/NoTests/RxFeedback.swift.git", 7 | "state": { 8 | "branch": null, 9 | "revision": "cbd500b8dcf1ae72e8c09f26e8f7f5a03268b58d", 10 | "version": "3.0.0" 11 | } 12 | }, 13 | { 14 | "package": "RxSwift", 15 | "repositoryURL": "https://github.com/ReactiveX/RxSwift.git", 16 | "state": { 17 | "branch": null, 18 | "revision": "002d325b0bdee94e7882e1114af5ff4fe1e96afa", 19 | "version": "5.1.1" 20 | } 21 | }, 22 | { 23 | "package": "SnapshotTesting", 24 | "repositoryURL": "https://github.com/pointfreeco/swift-snapshot-testing.git", 25 | "state": { 26 | "branch": null, 27 | "revision": "114882386a815f4a2e6d8f2f7ee4857acd372438", 28 | "version": "1.7.2" 29 | } 30 | } 31 | ] 32 | }, 33 | "version": 1 34 | } 35 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/RxCocoaRuntime_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/RxCocoa_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/RxFeedback_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/RxRelay_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/RxSwift_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/RxTest_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/SensorTestUnitTests_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | BNDL 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/SensorTest_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/SensorUnitTests_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | BNDL 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/Sensor_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/SnapshotTesting_Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | CFBundleDevelopmentRegion 5 | en 6 | CFBundleExecutable 7 | $(EXECUTABLE_NAME) 8 | CFBundleIdentifier 9 | $(PRODUCT_BUNDLE_IDENTIFIER) 10 | CFBundleInfoDictionaryVersion 11 | 6.0 12 | CFBundleName 13 | $(PRODUCT_NAME) 14 | CFBundlePackageType 15 | FMWK 16 | CFBundleShortVersionString 17 | 1.0 18 | CFBundleSignature 19 | ???? 20 | CFBundleVersion 21 | $(CURRENT_PROJECT_VERSION) 22 | NSPrincipalClass 23 | 24 | 25 | 26 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Sensor.xcodeproj/project.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 6 | 7 | 8 | -------------------------------------------------------------------------------- /Sensor/LinuxMain.swift: -------------------------------------------------------------------------------- 1 | import XCTest 2 | 3 | import SensorTestUnitTests 4 | import SensorUnitTests 5 | 6 | var tests = [XCTestCaseEntry]() 7 | tests += SensorTestUnitTests.__allTests() 8 | tests += SensorUnitTests.__allTests() 9 | 10 | XCTMain(tests) 11 | -------------------------------------------------------------------------------- /Sensor/UnitTests/XCTestManifests.swift: -------------------------------------------------------------------------------- 1 | #if !canImport(ObjectiveC) 2 | import XCTest 3 | 4 | extension SingleStateStateMachineTests { 5 | // DO NOT MODIFY: This is autogenerated, use: 6 | // `swift test --generate-linuxmain` 7 | // to regenerate. 8 | static let __allTests__SingleStateStateMachineTests = [ 9 | ("testCancelAllEffects", testCancelAllEffects), 10 | ("testEffectCanTriggerItself", testEffectCanTriggerItself), 11 | ("testSingleStateStateMachine", testSingleStateStateMachine), 12 | ("testTriggerEffectTwiceAtSameTime", testTriggerEffectTwiceAtSameTime), 13 | ] 14 | } 15 | 16 | public func __allTests() -> [XCTestCaseEntry] { 17 | return [ 18 | testCase(SingleStateStateMachineTests.__allTests__SingleStateStateMachineTests), 19 | ] 20 | } 21 | #endif 22 | -------------------------------------------------------------------------------- /SensorTest/Sources/Definition.swift: -------------------------------------------------------------------------------- 1 | import Foundation 2 | 3 | public struct Definition { 4 | let timeline: String 5 | let values: [String: Value] 6 | let errors: [String: Error] 7 | let expectations: Expectations 8 | 9 | public init(timeline: String, values: [String: Value] = [:], errors: [String: Error] = [:], expectations: Expectations = [:]) { 10 | self.timeline = timeline 11 | self.values = values 12 | self.errors = errors 13 | self.expectations = expectations 14 | } 15 | 16 | public func map(_ transform: (Value) -> NewValue) -> Definition { 17 | return Definition( 18 | timeline: timeline, 19 | values: values.mapValues(transform), 20 | errors: errors, 21 | expectations: expectations) 22 | } 23 | } 24 | --------------------------------------------------------------------------------