From 00ce2324206618af11cc5f2eb13c8cd7a683d647 Mon Sep 17 00:00:00 2001 From: Shin Yamamoto Date: Sat, 8 May 2021 13:17:02 +0900 Subject: [PATCH] Refactor the samples app (#459) * Add UseCaseController * Add Layouts.swift * Add PagePanelController * Append access modifiers into some objects * Split view controllers into each file * Organize the project * Rename currentMenu with currentUseCase * Rename SampleListVC with MainVC * Update UseCase enum * Update DebugTableViewController to test the scroll (un)tracking functions --- .../Samples/Samples.xcodeproj/project.pbxproj | 86 +- .../Sources/Base.lproj/Main.storyboard | 75 +- .../{UIComponents.swift => Components.swift} | 6 +- Examples/Samples/Sources/Layouts.swift | 90 ++ .../Samples/Sources/MainViewController.swift | 93 ++ .../Samples/Sources/UseCaseController.swift | 329 +++++ .../UseCases/PagePanelController.swift | 82 + .../{UseCases.swift => UseCase.swift} | 20 +- Examples/Samples/Sources/ViewController.swift | 1313 ----------------- .../DebugTableViewController.swift | 272 ++++ .../DebugTextViewController.swift | 44 + .../DetailViewController.swift | 39 + .../ViewControllers/ImageViewController.swift | 69 + .../InspectorViewController.swift | 48 + .../ViewControllers/ModalViewController.swift | 79 + .../MultiPanelController.swift | 67 + .../NestedScrollViewController.swift | 18 + .../SettingsViewController.swift | 36 + .../TabBarViewController.swift | 248 ++++ 19 files changed, 1634 insertions(+), 1380 deletions(-) rename Examples/Samples/Sources/{UIComponents.swift => Components.swift} (96%) create mode 100644 Examples/Samples/Sources/Layouts.swift create mode 100644 Examples/Samples/Sources/MainViewController.swift create mode 100644 Examples/Samples/Sources/UseCaseController.swift create mode 100644 Examples/Samples/Sources/UseCases/PagePanelController.swift rename Examples/Samples/Sources/UseCases/{UseCases.swift => UseCase.swift} (81%) delete mode 100644 Examples/Samples/Sources/ViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/DebugTableViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/DebugTextViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/DetailViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/ImageViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/InspectorViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/ModalViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/MultiPanelController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/NestedScrollViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/SettingsViewController.swift create mode 100644 Examples/Samples/Sources/ViewControllers/TabBarViewController.swift diff --git a/Examples/Samples/Samples.xcodeproj/project.pbxproj b/Examples/Samples/Samples.xcodeproj/project.pbxproj index 1c82edd..cf83eb3 100644 --- a/Examples/Samples/Samples.xcodeproj/project.pbxproj +++ b/Examples/Samples/Samples.xcodeproj/project.pbxproj @@ -7,19 +7,32 @@ objects = { /* Begin PBXBuildFile section */ + 5442E22425FC51AF00A26F43 /* ImageViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E22325FC51AF00A26F43 /* ImageViewController.swift */; }; + 5442E22825FC51E200A26F43 /* MultiPanelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E22725FC51E200A26F43 /* MultiPanelController.swift */; }; + 5442E22C25FC521F00A26F43 /* SettingsViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E22B25FC521F00A26F43 /* SettingsViewController.swift */; }; + 5442E23025FC525200A26F43 /* TabBarViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E22F25FC525200A26F43 /* TabBarViewController.swift */; }; + 5442E23425FC528400A26F43 /* DetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E23325FC528400A26F43 /* DetailViewController.swift */; }; + 5442E23A25FC52CD00A26F43 /* ModalViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E23925FC52CD00A26F43 /* ModalViewController.swift */; }; + 5442E24025FC533800A26F43 /* DebugTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E23F25FC533800A26F43 /* DebugTableViewController.swift */; }; + 5442E24425FC538200A26F43 /* InspectorViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E24325FC538200A26F43 /* InspectorViewController.swift */; }; + 5442E24A25FC53C100A26F43 /* DebugTextViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E24925FC53C100A26F43 /* DebugTextViewController.swift */; }; + 5442E25225FC541700A26F43 /* NestedScrollViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5442E25125FC541700A26F43 /* NestedScrollViewController.swift */; }; + 54496C59263A7E5A0031E0C8 /* UseCaseController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54496C58263A7E5A0031E0C8 /* UseCaseController.swift */; }; 545DB9EE21511E6300CA77B8 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 545DB9ED21511E6300CA77B8 /* AppDelegate.swift */; }; - 545DB9F021511E6300CA77B8 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 545DB9EF21511E6300CA77B8 /* ViewController.swift */; }; + 545DB9F021511E6300CA77B8 /* MainViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 545DB9EF21511E6300CA77B8 /* MainViewController.swift */; }; 545DB9F321511E6300CA77B8 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 545DB9F121511E6300CA77B8 /* Main.storyboard */; }; 545DB9F521511E6400CA77B8 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 545DB9F421511E6400CA77B8 /* Assets.xcassets */; }; 545DB9F821511E6400CA77B8 /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 545DB9F621511E6400CA77B8 /* LaunchScreen.storyboard */; }; 545DBA0321511E6400CA77B8 /* SampleTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 545DBA0221511E6400CA77B8 /* SampleTests.swift */; }; 545DBA0E21511E6400CA77B8 /* SampleUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 545DBA0D21511E6400CA77B8 /* SampleUITests.swift */; }; - 546341A125C6415100CA0596 /* UseCases.swift in Sources */ = {isa = PBXBuildFile; fileRef = 546341A025C6415100CA0596 /* UseCases.swift */; }; + 546341A125C6415100CA0596 /* UseCase.swift in Sources */ = {isa = PBXBuildFile; fileRef = 546341A025C6415100CA0596 /* UseCase.swift */; }; 546341AC25C6426500CA0596 /* CustomState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 546341AB25C6426500CA0596 /* CustomState.swift */; }; 549D23CB233C7779008EF4D7 /* FloatingPanel.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 549D23CA233C7779008EF4D7 /* FloatingPanel.framework */; }; 549D23CC233C7779008EF4D7 /* FloatingPanel.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 549D23CA233C7779008EF4D7 /* FloatingPanel.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 54B51116216AFE5F0033A6F3 /* Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54B51115216AFE5F0033A6F3 /* Extensions.swift */; }; - 54CDC5D8215BBE23007D205C /* UIComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54CDC5D7215BBE23007D205C /* UIComponents.swift */; }; + 54CDC5D8215BBE23007D205C /* Components.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54CDC5D7215BBE23007D205C /* Components.swift */; }; + 54EAD35B263A75EB006A36EA /* Layouts.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54EAD35A263A75EB006A36EA /* Layouts.swift */; }; + 54EAD365263A765F006A36EA /* PagePanelController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 54EAD364263A765F006A36EA /* PagePanelController.swift */; }; /* End PBXBuildFile section */ /* Begin PBXContainerItemProxy section */ @@ -54,9 +67,20 @@ /* End PBXCopyFilesBuildPhase section */ /* Begin PBXFileReference section */ + 5442E22325FC51AF00A26F43 /* ImageViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ImageViewController.swift; sourceTree = ""; }; + 5442E22725FC51E200A26F43 /* MultiPanelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MultiPanelController.swift; sourceTree = ""; }; + 5442E22B25FC521F00A26F43 /* SettingsViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SettingsViewController.swift; sourceTree = ""; }; + 5442E22F25FC525200A26F43 /* TabBarViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TabBarViewController.swift; sourceTree = ""; }; + 5442E23325FC528400A26F43 /* DetailViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DetailViewController.swift; sourceTree = ""; }; + 5442E23925FC52CD00A26F43 /* ModalViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ModalViewController.swift; sourceTree = ""; }; + 5442E23F25FC533800A26F43 /* DebugTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugTableViewController.swift; sourceTree = ""; }; + 5442E24325FC538200A26F43 /* InspectorViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InspectorViewController.swift; sourceTree = ""; }; + 5442E24925FC53C100A26F43 /* DebugTextViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DebugTextViewController.swift; sourceTree = ""; }; + 5442E25125FC541700A26F43 /* NestedScrollViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NestedScrollViewController.swift; sourceTree = ""; }; + 54496C58263A7E5A0031E0C8 /* UseCaseController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UseCaseController.swift; sourceTree = ""; }; 545DB9EA21511E6300CA77B8 /* Samples.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Samples.app; sourceTree = BUILT_PRODUCTS_DIR; }; 545DB9ED21511E6300CA77B8 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; - 545DB9EF21511E6300CA77B8 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; + 545DB9EF21511E6300CA77B8 /* MainViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MainViewController.swift; sourceTree = ""; }; 545DB9F221511E6300CA77B8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 545DB9F421511E6400CA77B8 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 545DB9F721511E6400CA77B8 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; @@ -67,11 +91,13 @@ 545DBA0921511E6400CA77B8 /* SamplesUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = SamplesUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 545DBA0D21511E6400CA77B8 /* SampleUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = SampleUITests.swift; sourceTree = ""; }; 545DBA0F21511E6400CA77B8 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; - 546341A025C6415100CA0596 /* UseCases.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UseCases.swift; sourceTree = ""; }; + 546341A025C6415100CA0596 /* UseCase.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UseCase.swift; sourceTree = ""; }; 546341AB25C6426500CA0596 /* CustomState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CustomState.swift; sourceTree = ""; }; 549D23CA233C7779008EF4D7 /* FloatingPanel.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; path = FloatingPanel.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 54B51115216AFE5F0033A6F3 /* Extensions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Extensions.swift; sourceTree = ""; }; - 54CDC5D7215BBE23007D205C /* UIComponents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIComponents.swift; sourceTree = ""; }; + 54CDC5D7215BBE23007D205C /* Components.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Components.swift; sourceTree = ""; }; + 54EAD35A263A75EB006A36EA /* Layouts.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Layouts.swift; sourceTree = ""; }; + 54EAD364263A765F006A36EA /* PagePanelController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PagePanelController.swift; sourceTree = ""; }; /* End PBXFileReference section */ /* Begin PBXFrameworksBuildPhase section */ @@ -100,6 +126,23 @@ /* End PBXFrameworksBuildPhase section */ /* Begin PBXGroup section */ + 5442E22225FC519700A26F43 /* ViewControllers */ = { + isa = PBXGroup; + children = ( + 5442E23F25FC533800A26F43 /* DebugTableViewController.swift */, + 5442E24925FC53C100A26F43 /* DebugTextViewController.swift */, + 5442E23325FC528400A26F43 /* DetailViewController.swift */, + 5442E24325FC538200A26F43 /* InspectorViewController.swift */, + 5442E22325FC51AF00A26F43 /* ImageViewController.swift */, + 5442E25125FC541700A26F43 /* NestedScrollViewController.swift */, + 5442E23925FC52CD00A26F43 /* ModalViewController.swift */, + 5442E22725FC51E200A26F43 /* MultiPanelController.swift */, + 5442E22B25FC521F00A26F43 /* SettingsViewController.swift */, + 5442E22F25FC525200A26F43 /* TabBarViewController.swift */, + ); + path = ViewControllers; + sourceTree = ""; + }; 545DB9E121511E6300CA77B8 = { isa = PBXGroup; children = ( @@ -128,10 +171,13 @@ 545DB9F621511E6400CA77B8 /* LaunchScreen.storyboard */, 545DB9F121511E6300CA77B8 /* Main.storyboard */, 545DB9ED21511E6300CA77B8 /* AppDelegate.swift */, - 545DB9EF21511E6300CA77B8 /* ViewController.swift */, - 54B51115216AFE5F0033A6F3 /* Extensions.swift */, - 54CDC5D7215BBE23007D205C /* UIComponents.swift */, + 545DB9EF21511E6300CA77B8 /* MainViewController.swift */, + 54496C58263A7E5A0031E0C8 /* UseCaseController.swift */, 546341AA25C6421000CA0596 /* UseCases */, + 5442E22225FC519700A26F43 /* ViewControllers */, + 54EAD35A263A75EB006A36EA /* Layouts.swift */, + 54B51115216AFE5F0033A6F3 /* Extensions.swift */, + 54CDC5D7215BBE23007D205C /* Components.swift */, 545DB9F921511E6400CA77B8 /* Info.plist */, ); path = Sources; @@ -158,8 +204,9 @@ 546341AA25C6421000CA0596 /* UseCases */ = { isa = PBXGroup; children = ( - 546341A025C6415100CA0596 /* UseCases.swift */, + 546341A025C6415100CA0596 /* UseCase.swift */, 546341AB25C6426500CA0596 /* CustomState.swift */, + 54EAD364263A765F006A36EA /* PagePanelController.swift */, ); path = UseCases; sourceTree = ""; @@ -317,12 +364,25 @@ isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = ( - 54CDC5D8215BBE23007D205C /* UIComponents.swift in Sources */, + 5442E23425FC528400A26F43 /* DetailViewController.swift in Sources */, + 54496C59263A7E5A0031E0C8 /* UseCaseController.swift in Sources */, + 54CDC5D8215BBE23007D205C /* Components.swift in Sources */, 54B51116216AFE5F0033A6F3 /* Extensions.swift in Sources */, + 5442E24A25FC53C100A26F43 /* DebugTextViewController.swift in Sources */, 546341AC25C6426500CA0596 /* CustomState.swift in Sources */, - 546341A125C6415100CA0596 /* UseCases.swift in Sources */, - 545DB9F021511E6300CA77B8 /* ViewController.swift in Sources */, + 5442E23A25FC52CD00A26F43 /* ModalViewController.swift in Sources */, + 5442E22425FC51AF00A26F43 /* ImageViewController.swift in Sources */, + 5442E24025FC533800A26F43 /* DebugTableViewController.swift in Sources */, + 5442E25225FC541700A26F43 /* NestedScrollViewController.swift in Sources */, + 5442E22825FC51E200A26F43 /* MultiPanelController.swift in Sources */, + 546341A125C6415100CA0596 /* UseCase.swift in Sources */, + 545DB9F021511E6300CA77B8 /* MainViewController.swift in Sources */, 545DB9EE21511E6300CA77B8 /* AppDelegate.swift in Sources */, + 5442E23025FC525200A26F43 /* TabBarViewController.swift in Sources */, + 54EAD35B263A75EB006A36EA /* Layouts.swift in Sources */, + 54EAD365263A765F006A36EA /* PagePanelController.swift in Sources */, + 5442E24425FC538200A26F43 /* InspectorViewController.swift in Sources */, + 5442E22C25FC521F00A26F43 /* SettingsViewController.swift in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/Examples/Samples/Sources/Base.lproj/Main.storyboard b/Examples/Samples/Sources/Base.lproj/Main.storyboard index 4cd2235..5ce6e79 100644 --- a/Examples/Samples/Sources/Base.lproj/Main.storyboard +++ b/Examples/Samples/Sources/Base.lproj/Main.storyboard @@ -1,9 +1,7 @@ - - + - - + @@ -29,24 +27,24 @@ - + - + - + - + - +