├── .gitignore ├── Images ├── Flux │ └── Views.key ├── MVC │ └── Views.key ├── MVP │ └── Views.key ├── MVVM │ └── Views.key ├── Views.key ├── app.gif ├── diff.png ├── favorite.png ├── repository.png ├── search.png ├── structure.png └── user_repository.png ├── LICENSE ├── README.md ├── iOSDesignPatternSamples.xcodeproj ├── project.pbxproj └── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── swiftpm │ └── Package.resolved ├── iOSDesignPatternSamples ├── Resources │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Base.lproj │ │ ├── LaunchScreen.storyboard │ │ └── Main.storyboard │ └── Info.plist └── Sources │ ├── Common │ ├── AppDelegate.swift │ ├── Entity │ │ └── UIKeyboardInfo.swift │ ├── Extension │ │ ├── ApiSession.extension.swift │ │ └── NSObjectProtocol.extension.swift │ ├── FavoriteModel.swift │ ├── RepositoryModel.swift │ └── SearchModel.swift │ └── UI │ ├── Common │ └── LoadingView.swift │ ├── Favorite │ ├── FavoriteViewController.swift │ ├── FavoriteViewController.xib │ ├── FavoriteViewDataSource.swift │ └── Flux │ │ ├── FavoriteAction.swift │ │ ├── FavoriteDispatcher.swift │ │ └── FavoriteStore.swift │ ├── Repository │ ├── Flux │ │ ├── RepositoryAction.swift │ │ ├── RepositoryDispatcher.swift │ │ └── RepositoryStore.swift │ └── RepositoryViewController.swift │ ├── Search │ ├── Flux │ │ ├── SearchAction.swift │ │ ├── SearchDispatcher.swift │ │ └── SearchStore.swift │ ├── SearchViewController.swift │ ├── SearchViewController.xib │ └── SearchViewDataSource.swift │ └── UserRepository │ ├── Flux │ ├── UserRepositoryAction.swift │ ├── UserRepositoryDispatcher.swift │ └── UserRepositoryStore.swift │ ├── UserRepositoryViewController.swift │ ├── UserRepositoryViewController.xib │ └── UserRepositoryViewDataSource.swift └── project.yml /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/.gitignore -------------------------------------------------------------------------------- /Images/Flux/Views.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/Flux/Views.key -------------------------------------------------------------------------------- /Images/MVC/Views.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/MVC/Views.key -------------------------------------------------------------------------------- /Images/MVP/Views.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/MVP/Views.key -------------------------------------------------------------------------------- /Images/MVVM/Views.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/MVVM/Views.key -------------------------------------------------------------------------------- /Images/Views.key: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/Views.key -------------------------------------------------------------------------------- /Images/app.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/app.gif -------------------------------------------------------------------------------- /Images/diff.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/diff.png -------------------------------------------------------------------------------- /Images/favorite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/favorite.png -------------------------------------------------------------------------------- /Images/repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/repository.png -------------------------------------------------------------------------------- /Images/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/search.png -------------------------------------------------------------------------------- /Images/structure.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/structure.png -------------------------------------------------------------------------------- /Images/user_repository.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/Images/user_repository.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/README.md -------------------------------------------------------------------------------- /iOSDesignPatternSamples.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples.xcodeproj/project.pbxproj -------------------------------------------------------------------------------- /iOSDesignPatternSamples.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples.xcodeproj/project.xcworkspace/contents.xcworkspacedata -------------------------------------------------------------------------------- /iOSDesignPatternSamples.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist -------------------------------------------------------------------------------- /iOSDesignPatternSamples.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples.xcodeproj/project.xcworkspace/xcshareddata/swiftpm/Package.resolved -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Resources/Assets.xcassets/AppIcon.appiconset/Contents.json -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Resources/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Resources/Base.lproj/LaunchScreen.storyboard -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Resources/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Resources/Base.lproj/Main.storyboard -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Resources/Info.plist: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Resources/Info.plist -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/AppDelegate.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/AppDelegate.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/Entity/UIKeyboardInfo.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/Entity/UIKeyboardInfo.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/Extension/ApiSession.extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/Extension/ApiSession.extension.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/Extension/NSObjectProtocol.extension.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/Extension/NSObjectProtocol.extension.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/FavoriteModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/FavoriteModel.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/RepositoryModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/RepositoryModel.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/Common/SearchModel.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/Common/SearchModel.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Common/LoadingView.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Common/LoadingView.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Favorite/FavoriteViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Favorite/FavoriteViewController.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Favorite/FavoriteViewController.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Favorite/FavoriteViewController.xib -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Favorite/FavoriteViewDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Favorite/FavoriteViewDataSource.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Favorite/Flux/FavoriteAction.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Favorite/Flux/FavoriteAction.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Favorite/Flux/FavoriteDispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Favorite/Flux/FavoriteDispatcher.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Favorite/Flux/FavoriteStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Favorite/Flux/FavoriteStore.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Repository/Flux/RepositoryAction.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Repository/Flux/RepositoryAction.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Repository/Flux/RepositoryDispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Repository/Flux/RepositoryDispatcher.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Repository/Flux/RepositoryStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Repository/Flux/RepositoryStore.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Repository/RepositoryViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Repository/RepositoryViewController.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Search/Flux/SearchAction.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Search/Flux/SearchAction.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Search/Flux/SearchDispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Search/Flux/SearchDispatcher.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Search/Flux/SearchStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Search/Flux/SearchStore.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Search/SearchViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Search/SearchViewController.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Search/SearchViewController.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Search/SearchViewController.xib -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/Search/SearchViewDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/Search/SearchViewDataSource.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/UserRepository/Flux/UserRepositoryAction.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/UserRepository/Flux/UserRepositoryAction.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/UserRepository/Flux/UserRepositoryDispatcher.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/UserRepository/Flux/UserRepositoryDispatcher.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/UserRepository/Flux/UserRepositoryStore.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/UserRepository/Flux/UserRepositoryStore.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/UserRepository/UserRepositoryViewController.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/UserRepository/UserRepositoryViewController.swift -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/UserRepository/UserRepositoryViewController.xib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/UserRepository/UserRepositoryViewController.xib -------------------------------------------------------------------------------- /iOSDesignPatternSamples/Sources/UI/UserRepository/UserRepositoryViewDataSource.swift: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/iOSDesignPatternSamples/Sources/UI/UserRepository/UserRepositoryViewDataSource.swift -------------------------------------------------------------------------------- /project.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/marty-suzuki/iOSDesignPatternSamples/HEAD/project.yml --------------------------------------------------------------------------------