From f1ecd0bc36e9aeae53138b94b944bdfe95402aab Mon Sep 17 00:00:00 2001 From: etudiant Date: Fri, 23 Jun 2023 07:30:14 +0200 Subject: [PATCH] Added my project --- .DS_Store | Bin 0 -> 8196 bytes Calculator.xcodeproj/project.pbxproj | 710 ++++++++++++++++++ .../contents.xcworkspacedata | 7 + .../xcshareddata/IDEWorkspaceChecks.plist | 8 + .../UserInterfaceState.xcuserstate | Bin 0 -> 73977 bytes .../xcdebugger/Breakpoints_v2.xcbkptlist | 120 +++ .../xcschemes/xcschememanagement.plist | 14 + .../AccentColor.colorset/Contents.json | 11 + .../AppIcon.appiconset/Contents.json | 13 + Calculator/Assets.xcassets/Contents.json | 6 + Calculator/CalculatorApp.swift | 23 + Calculator/ContentView.swift | 28 + Calculator/Data/DataManager.swift | 13 + Calculator/Data/StubMatiere.swift | 66 ++ Calculator/Data/StubUE.swift | 35 + Calculator/Model/Bloc.swift | 32 + Calculator/Model/ExUE.swift | 63 ++ Calculator/Model/Item.swift | 12 + Calculator/Model/Manager.swift | 27 + Calculator/Model/Maquette.swift | 19 + Calculator/Model/Matieres.swift | 31 + Calculator/Model/UE.swift | 31 + .../Preview Assets.xcassets/Contents.json | 6 + Calculator/View/AddMat.swift | 35 + Calculator/View/BlocItem.swift | 35 + Calculator/View/BlocView.swift | 94 +++ Calculator/View/EditMatView.swift | 76 ++ Calculator/View/EditView.swift | 177 +++++ Calculator/View/Editpage.swift | 100 +++ Calculator/View/HomeView.swift | 74 ++ Calculator/View/MatiereView.swift | 95 +++ Calculator/View/Test.swift | 15 + Calculator/View/UEview.swift | 57 ++ Calculator/ViewModel/ArrayExtension.swift | 19 + Calculator/ViewModel/BlocVM.swift | 168 +++++ Calculator/ViewModel/ManagerVM.swift | 66 ++ Calculator/ViewModel/MatieresVM.swift | 113 +++ Calculator/ViewModel/UEViewModel.swift | 11 + Calculator/ViewModel/UeVM.swift | 191 +++++ CalculatorTests/CalculatorTests.swift | 36 + CalculatorUITests/CalculatorUITests.swift | 41 + .../CalculatorUITestsLaunchTests.swift | 32 + Documentation/.DS_Store | Bin 0 -> 6148 bytes Documentation/images/cap1.png | Bin 0 -> 252360 bytes Documentation/images/cap2.png | Bin 0 -> 232057 bytes Documentation/images/cap3.png | Bin 0 -> 171511 bytes Documentation/images/cap4.png | Bin 0 -> 317013 bytes Documentation/images/cap5 copie.png | Bin 0 -> 214941 bytes Documentation/images/cap5.png | Bin 0 -> 214941 bytes Documentation/images/cap7.png | Bin 0 -> 325848 bytes README.md | 0 51 files changed, 2710 insertions(+) create mode 100644 .DS_Store create mode 100644 Calculator.xcodeproj/project.pbxproj create mode 100644 Calculator.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Calculator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist create mode 100644 Calculator.xcodeproj/project.xcworkspace/xcuserdata/etudiant.xcuserdatad/UserInterfaceState.xcuserstate create mode 100644 Calculator.xcodeproj/xcuserdata/etudiant.xcuserdatad/xcdebugger/Breakpoints_v2.xcbkptlist create mode 100644 Calculator.xcodeproj/xcuserdata/etudiant.xcuserdatad/xcschemes/xcschememanagement.plist create mode 100644 Calculator/Assets.xcassets/AccentColor.colorset/Contents.json create mode 100644 Calculator/Assets.xcassets/AppIcon.appiconset/Contents.json create mode 100644 Calculator/Assets.xcassets/Contents.json create mode 100644 Calculator/CalculatorApp.swift create mode 100644 Calculator/ContentView.swift create mode 100644 Calculator/Data/DataManager.swift create mode 100644 Calculator/Data/StubMatiere.swift create mode 100644 Calculator/Data/StubUE.swift create mode 100644 Calculator/Model/Bloc.swift create mode 100644 Calculator/Model/ExUE.swift create mode 100644 Calculator/Model/Item.swift create mode 100644 Calculator/Model/Manager.swift create mode 100644 Calculator/Model/Maquette.swift create mode 100644 Calculator/Model/Matieres.swift create mode 100644 Calculator/Model/UE.swift create mode 100644 Calculator/Preview Content/Preview Assets.xcassets/Contents.json create mode 100644 Calculator/View/AddMat.swift create mode 100644 Calculator/View/BlocItem.swift create mode 100644 Calculator/View/BlocView.swift create mode 100644 Calculator/View/EditMatView.swift create mode 100644 Calculator/View/EditView.swift create mode 100644 Calculator/View/Editpage.swift create mode 100644 Calculator/View/HomeView.swift create mode 100644 Calculator/View/MatiereView.swift create mode 100644 Calculator/View/Test.swift create mode 100644 Calculator/View/UEview.swift create mode 100644 Calculator/ViewModel/ArrayExtension.swift create mode 100644 Calculator/ViewModel/BlocVM.swift create mode 100644 Calculator/ViewModel/ManagerVM.swift create mode 100644 Calculator/ViewModel/MatieresVM.swift create mode 100644 Calculator/ViewModel/UEViewModel.swift create mode 100644 Calculator/ViewModel/UeVM.swift create mode 100644 CalculatorTests/CalculatorTests.swift create mode 100644 CalculatorUITests/CalculatorUITests.swift create mode 100644 CalculatorUITests/CalculatorUITestsLaunchTests.swift create mode 100644 Documentation/.DS_Store create mode 100644 Documentation/images/cap1.png create mode 100644 Documentation/images/cap2.png create mode 100644 Documentation/images/cap3.png create mode 100644 Documentation/images/cap4.png create mode 100644 Documentation/images/cap5 copie.png create mode 100644 Documentation/images/cap5.png create mode 100644 Documentation/images/cap7.png create mode 100644 README.md diff --git a/.DS_Store b/.DS_Store new file mode 100644 index 0000000000000000000000000000000000000000..01099af3060429573f672eab2da383228e8b3b6a GIT binary patch literal 8196 zcmeHMO=}ZD7=EXXc4MhVsE~`W=rz=&7)3;g>Gsfrmu}R9O3Y?MyLGb@vWXEwAZI=M zJG_c_Pu~46p7fcIlr&#Z4`TIwVdj~gnP)zpo!QAdAtF)jhb5vs5jhA7bDM}3m?~Fc z&em+sRiFT$s82C9s7I2zbG12x6<`He0akz&UYud#p2kYrlL*bJqSw`*2NHpj&fI32UaYO4H`NL zLnmQ-7S=-%x_9tgU7bY5Ajhl#D=@Es^4+h{9=!ILn$!OKK`fg=ECZCQE%g}T(NAqi zE#U-%v|~A+gH9Z!y<+jZSX<9ry1e0RIGfHZ|5y(EUZdAftBvjp^;DBG4kqbF@GNQ# z>bdPbne-Y_(&}nL6t+<1B<)AA2NtkM`Zwj2Oldb3S!{KhZTyRUJd!vFoe6U+A zxcBdtN29EBG`BF$)r-a$o4 zA+@N3I}k}HGdg|(cUs453)`uIpW+@RJ&3Y9|m*4+iklFAsSpinycN7pA&-bce>Qj9|3+j}25ndxGQ}xCMH3iX`9|Cwj{lgGx Z7gZIfVsUH`IWWEm&@ynu3j9$8egXZ^7~uc_ literal 0 HcmV?d00001 diff --git a/Calculator.xcodeproj/project.pbxproj b/Calculator.xcodeproj/project.pbxproj new file mode 100644 index 0000000..96d30ba --- /dev/null +++ b/Calculator.xcodeproj/project.pbxproj @@ -0,0 +1,710 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + EC281BBF2A4523CD00AAA912 /* BlocItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC281BBE2A4523CD00AAA912 /* BlocItem.swift */; }; + EC48A2342A1CE019008DB387 /* CalculatorApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A2332A1CE019008DB387 /* CalculatorApp.swift */; }; + EC48A2362A1CE019008DB387 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A2352A1CE019008DB387 /* ContentView.swift */; }; + EC48A2382A1CE01A008DB387 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC48A2372A1CE01A008DB387 /* Assets.xcassets */; }; + EC48A23B2A1CE01A008DB387 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC48A23A2A1CE01A008DB387 /* Preview Assets.xcassets */; }; + EC48A2452A1CE01A008DB387 /* CalculatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A2442A1CE01A008DB387 /* CalculatorTests.swift */; }; + EC48A24F2A1CE01A008DB387 /* CalculatorUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A24E2A1CE01A008DB387 /* CalculatorUITests.swift */; }; + EC48A2512A1CE01A008DB387 /* CalculatorUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A2502A1CE01A008DB387 /* CalculatorUITestsLaunchTests.swift */; }; + EC48A25F2A1CFDE8008DB387 /* Matieres.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A25E2A1CFDE8008DB387 /* Matieres.swift */; }; + EC48A2612A1CFEC7008DB387 /* UE.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A2602A1CFEC7008DB387 /* UE.swift */; }; + EC48A2642A1D0214008DB387 /* HomeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A2632A1D0214008DB387 /* HomeView.swift */; }; + EC48A26B2A1D10A0008DB387 /* EditView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC48A26A2A1D10A0008DB387 /* EditView.swift */; }; + EC5D85462A41AD0F00BBB920 /* Editpage.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D85452A41AD0F00BBB920 /* Editpage.swift */; }; + EC5D854A2A41BBB700BBB920 /* Manager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D85492A41BBB700BBB920 /* Manager.swift */; }; + EC5D854C2A41BBDD00BBB920 /* DataManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D854B2A41BBDD00BBB920 /* DataManager.swift */; }; + EC5D85502A41D17100BBB920 /* EditMatView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D854F2A41D17100BBB920 /* EditMatView.swift */; }; + EC5D85522A41E4F900BBB920 /* BlocView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D85512A41E4F900BBB920 /* BlocView.swift */; }; + EC5D85542A41F13100BBB920 /* ManagerVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D85532A41F13100BBB920 /* ManagerVM.swift */; }; + EC5D85562A43190300BBB920 /* AddMat.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC5D85552A43190300BBB920 /* AddMat.swift */; }; + EC8F56A52A39920700BBD572 /* UeVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC8F56A42A39920700BBD572 /* UeVM.swift */; }; + EC8F56A72A399CC600BBD572 /* ArrayExtension.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC8F56A62A399CC600BBD572 /* ArrayExtension.swift */; }; + EC8F56A92A3BA6CB00BBD572 /* BlocVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC8F56A82A3BA6CB00BBD572 /* BlocVM.swift */; }; + EC9CCD902A262137004D71A4 /* Test.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9CCD8F2A262137004D71A4 /* Test.swift */; }; + ECA6FBAF2A208AF70023410A /* Bloc.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBAE2A208AF70023410A /* Bloc.swift */; }; + ECA6FBB12A209D060023410A /* ExUE.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBB02A209D060023410A /* ExUE.swift */; }; + ECA6FBB32A20B15B0023410A /* UEview.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBB22A20B15B0023410A /* UEview.swift */; }; + ECA6FBB62A20B3830023410A /* StubUE.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBB52A20B3830023410A /* StubUE.swift */; }; + ECA6FBB82A24CF140023410A /* MatiereView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBB72A24CF140023410A /* MatiereView.swift */; }; + ECA6FBBA2A24CF3C0023410A /* StubMatiere.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBB92A24CF3C0023410A /* StubMatiere.swift */; }; + ECA6FBBC2A25D80B0023410A /* Maquette.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA6FBBB2A25D80B0023410A /* Maquette.swift */; }; + ECA8F5C72A3359B20091291E /* MatieresVM.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA8F5C62A3359B20091291E /* MatieresVM.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + EC48A2412A1CE01A008DB387 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = EC48A2282A1CE019008DB387 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EC48A22F2A1CE019008DB387; + remoteInfo = Calculator; + }; + EC48A24B2A1CE01A008DB387 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = EC48A2282A1CE019008DB387 /* Project object */; + proxyType = 1; + remoteGlobalIDString = EC48A22F2A1CE019008DB387; + remoteInfo = Calculator; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + EC281BBE2A4523CD00AAA912 /* BlocItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlocItem.swift; sourceTree = ""; }; + EC48A2302A1CE019008DB387 /* Calculator.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = Calculator.app; sourceTree = BUILT_PRODUCTS_DIR; }; + EC48A2332A1CE019008DB387 /* CalculatorApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalculatorApp.swift; sourceTree = ""; }; + EC48A2352A1CE019008DB387 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + EC48A2372A1CE01A008DB387 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + EC48A23A2A1CE01A008DB387 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + EC48A2402A1CE01A008DB387 /* CalculatorTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CalculatorTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + EC48A2442A1CE01A008DB387 /* CalculatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalculatorTests.swift; sourceTree = ""; }; + EC48A24A2A1CE01A008DB387 /* CalculatorUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = CalculatorUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + EC48A24E2A1CE01A008DB387 /* CalculatorUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalculatorUITests.swift; sourceTree = ""; }; + EC48A2502A1CE01A008DB387 /* CalculatorUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CalculatorUITestsLaunchTests.swift; sourceTree = ""; }; + EC48A25E2A1CFDE8008DB387 /* Matieres.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Matieres.swift; sourceTree = ""; }; + EC48A2602A1CFEC7008DB387 /* UE.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UE.swift; sourceTree = ""; }; + EC48A2632A1D0214008DB387 /* HomeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = HomeView.swift; sourceTree = ""; }; + EC48A26A2A1D10A0008DB387 /* EditView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditView.swift; sourceTree = ""; }; + EC5D85452A41AD0F00BBB920 /* Editpage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Editpage.swift; sourceTree = ""; }; + EC5D85492A41BBB700BBB920 /* Manager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Manager.swift; sourceTree = ""; }; + EC5D854B2A41BBDD00BBB920 /* DataManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DataManager.swift; sourceTree = ""; }; + EC5D854F2A41D17100BBB920 /* EditMatView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EditMatView.swift; sourceTree = ""; }; + EC5D85512A41E4F900BBB920 /* BlocView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlocView.swift; sourceTree = ""; }; + EC5D85532A41F13100BBB920 /* ManagerVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ManagerVM.swift; sourceTree = ""; }; + EC5D85552A43190300BBB920 /* AddMat.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AddMat.swift; sourceTree = ""; }; + EC8F56A42A39920700BBD572 /* UeVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UeVM.swift; sourceTree = ""; }; + EC8F56A62A399CC600BBD572 /* ArrayExtension.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ArrayExtension.swift; sourceTree = ""; }; + EC8F56A82A3BA6CB00BBD572 /* BlocVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BlocVM.swift; sourceTree = ""; }; + EC9CCD8F2A262137004D71A4 /* Test.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Test.swift; sourceTree = ""; }; + ECA6FBAE2A208AF70023410A /* Bloc.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bloc.swift; sourceTree = ""; }; + ECA6FBB02A209D060023410A /* ExUE.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExUE.swift; sourceTree = ""; }; + ECA6FBB22A20B15B0023410A /* UEview.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UEview.swift; sourceTree = ""; }; + ECA6FBB52A20B3830023410A /* StubUE.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StubUE.swift; sourceTree = ""; }; + ECA6FBB72A24CF140023410A /* MatiereView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatiereView.swift; sourceTree = ""; }; + ECA6FBB92A24CF3C0023410A /* StubMatiere.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = StubMatiere.swift; sourceTree = ""; }; + ECA6FBBB2A25D80B0023410A /* Maquette.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Maquette.swift; sourceTree = ""; }; + ECA8F5C62A3359B20091291E /* MatieresVM.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MatieresVM.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + EC48A22D2A1CE019008DB387 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC48A23D2A1CE01A008DB387 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC48A2472A1CE01A008DB387 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + EC48A2272A1CE019008DB387 = { + isa = PBXGroup; + children = ( + EC48A2322A1CE019008DB387 /* Calculator */, + EC48A2432A1CE01A008DB387 /* CalculatorTests */, + EC48A24D2A1CE01A008DB387 /* CalculatorUITests */, + EC48A2312A1CE019008DB387 /* Products */, + ); + sourceTree = ""; + }; + EC48A2312A1CE019008DB387 /* Products */ = { + isa = PBXGroup; + children = ( + EC48A2302A1CE019008DB387 /* Calculator.app */, + EC48A2402A1CE01A008DB387 /* CalculatorTests.xctest */, + EC48A24A2A1CE01A008DB387 /* CalculatorUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + EC48A2322A1CE019008DB387 /* Calculator */ = { + isa = PBXGroup; + children = ( + ECA6FBB42A20B3730023410A /* Data */, + EC48A2672A1D0775008DB387 /* ViewModel */, + EC48A2622A1D01F8008DB387 /* View */, + EC48A25D2A1CFDC3008DB387 /* Model */, + EC48A2332A1CE019008DB387 /* CalculatorApp.swift */, + EC48A2352A1CE019008DB387 /* ContentView.swift */, + EC48A2372A1CE01A008DB387 /* Assets.xcassets */, + EC48A2392A1CE01A008DB387 /* Preview Content */, + ); + path = Calculator; + sourceTree = ""; + }; + EC48A2392A1CE01A008DB387 /* Preview Content */ = { + isa = PBXGroup; + children = ( + EC48A23A2A1CE01A008DB387 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + EC48A2432A1CE01A008DB387 /* CalculatorTests */ = { + isa = PBXGroup; + children = ( + EC48A2442A1CE01A008DB387 /* CalculatorTests.swift */, + ); + path = CalculatorTests; + sourceTree = ""; + }; + EC48A24D2A1CE01A008DB387 /* CalculatorUITests */ = { + isa = PBXGroup; + children = ( + EC48A24E2A1CE01A008DB387 /* CalculatorUITests.swift */, + EC48A2502A1CE01A008DB387 /* CalculatorUITestsLaunchTests.swift */, + ); + path = CalculatorUITests; + sourceTree = ""; + }; + EC48A25D2A1CFDC3008DB387 /* Model */ = { + isa = PBXGroup; + children = ( + EC48A25E2A1CFDE8008DB387 /* Matieres.swift */, + EC48A2602A1CFEC7008DB387 /* UE.swift */, + ECA6FBAE2A208AF70023410A /* Bloc.swift */, + ECA6FBB02A209D060023410A /* ExUE.swift */, + ECA6FBBB2A25D80B0023410A /* Maquette.swift */, + EC5D85492A41BBB700BBB920 /* Manager.swift */, + ); + path = Model; + sourceTree = ""; + }; + EC48A2622A1D01F8008DB387 /* View */ = { + isa = PBXGroup; + children = ( + EC48A2632A1D0214008DB387 /* HomeView.swift */, + EC48A26A2A1D10A0008DB387 /* EditView.swift */, + ECA6FBB22A20B15B0023410A /* UEview.swift */, + ECA6FBB72A24CF140023410A /* MatiereView.swift */, + EC9CCD8F2A262137004D71A4 /* Test.swift */, + EC5D85452A41AD0F00BBB920 /* Editpage.swift */, + EC5D854F2A41D17100BBB920 /* EditMatView.swift */, + EC5D85512A41E4F900BBB920 /* BlocView.swift */, + EC5D85552A43190300BBB920 /* AddMat.swift */, + EC281BBE2A4523CD00AAA912 /* BlocItem.swift */, + ); + path = View; + sourceTree = ""; + }; + EC48A2672A1D0775008DB387 /* ViewModel */ = { + isa = PBXGroup; + children = ( + ECA8F5C62A3359B20091291E /* MatieresVM.swift */, + EC8F56A42A39920700BBD572 /* UeVM.swift */, + EC8F56A82A3BA6CB00BBD572 /* BlocVM.swift */, + EC5D85532A41F13100BBB920 /* ManagerVM.swift */, + EC8F56A62A399CC600BBD572 /* ArrayExtension.swift */, + ); + path = ViewModel; + sourceTree = ""; + }; + ECA6FBB42A20B3730023410A /* Data */ = { + isa = PBXGroup; + children = ( + ECA6FBB52A20B3830023410A /* StubUE.swift */, + ECA6FBB92A24CF3C0023410A /* StubMatiere.swift */, + EC5D854B2A41BBDD00BBB920 /* DataManager.swift */, + ); + path = Data; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + EC48A22F2A1CE019008DB387 /* Calculator */ = { + isa = PBXNativeTarget; + buildConfigurationList = EC48A2542A1CE01A008DB387 /* Build configuration list for PBXNativeTarget "Calculator" */; + buildPhases = ( + EC48A22C2A1CE019008DB387 /* Sources */, + EC48A22D2A1CE019008DB387 /* Frameworks */, + EC48A22E2A1CE019008DB387 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = Calculator; + productName = Calculator; + productReference = EC48A2302A1CE019008DB387 /* Calculator.app */; + productType = "com.apple.product-type.application"; + }; + EC48A23F2A1CE01A008DB387 /* CalculatorTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = EC48A2572A1CE01A008DB387 /* Build configuration list for PBXNativeTarget "CalculatorTests" */; + buildPhases = ( + EC48A23C2A1CE01A008DB387 /* Sources */, + EC48A23D2A1CE01A008DB387 /* Frameworks */, + EC48A23E2A1CE01A008DB387 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + EC48A2422A1CE01A008DB387 /* PBXTargetDependency */, + ); + name = CalculatorTests; + productName = CalculatorTests; + productReference = EC48A2402A1CE01A008DB387 /* CalculatorTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + EC48A2492A1CE01A008DB387 /* CalculatorUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = EC48A25A2A1CE01A008DB387 /* Build configuration list for PBXNativeTarget "CalculatorUITests" */; + buildPhases = ( + EC48A2462A1CE01A008DB387 /* Sources */, + EC48A2472A1CE01A008DB387 /* Frameworks */, + EC48A2482A1CE01A008DB387 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + EC48A24C2A1CE01A008DB387 /* PBXTargetDependency */, + ); + name = CalculatorUITests; + productName = CalculatorUITests; + productReference = EC48A24A2A1CE01A008DB387 /* CalculatorUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + EC48A2282A1CE019008DB387 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1430; + LastUpgradeCheck = 1430; + TargetAttributes = { + EC48A22F2A1CE019008DB387 = { + CreatedOnToolsVersion = 14.3; + }; + EC48A23F2A1CE01A008DB387 = { + CreatedOnToolsVersion = 14.3; + TestTargetID = EC48A22F2A1CE019008DB387; + }; + EC48A2492A1CE01A008DB387 = { + CreatedOnToolsVersion = 14.3; + TestTargetID = EC48A22F2A1CE019008DB387; + }; + }; + }; + buildConfigurationList = EC48A22B2A1CE019008DB387 /* Build configuration list for PBXProject "Calculator" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = EC48A2272A1CE019008DB387; + productRefGroup = EC48A2312A1CE019008DB387 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + EC48A22F2A1CE019008DB387 /* Calculator */, + EC48A23F2A1CE01A008DB387 /* CalculatorTests */, + EC48A2492A1CE01A008DB387 /* CalculatorUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + EC48A22E2A1CE019008DB387 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EC48A23B2A1CE01A008DB387 /* Preview Assets.xcassets in Resources */, + EC48A2382A1CE01A008DB387 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC48A23E2A1CE01A008DB387 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC48A2482A1CE01A008DB387 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + EC48A22C2A1CE019008DB387 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EC48A2362A1CE019008DB387 /* ContentView.swift in Sources */, + EC48A25F2A1CFDE8008DB387 /* Matieres.swift in Sources */, + EC9CCD902A262137004D71A4 /* Test.swift in Sources */, + EC8F56A72A399CC600BBD572 /* ArrayExtension.swift in Sources */, + EC5D85522A41E4F900BBB920 /* BlocView.swift in Sources */, + EC5D854A2A41BBB700BBB920 /* Manager.swift in Sources */, + ECA6FBB12A209D060023410A /* ExUE.swift in Sources */, + EC48A2342A1CE019008DB387 /* CalculatorApp.swift in Sources */, + EC8F56A92A3BA6CB00BBD572 /* BlocVM.swift in Sources */, + EC48A26B2A1D10A0008DB387 /* EditView.swift in Sources */, + EC8F56A52A39920700BBD572 /* UeVM.swift in Sources */, + ECA6FBBC2A25D80B0023410A /* Maquette.swift in Sources */, + EC5D85502A41D17100BBB920 /* EditMatView.swift in Sources */, + EC5D85562A43190300BBB920 /* AddMat.swift in Sources */, + ECA8F5C72A3359B20091291E /* MatieresVM.swift in Sources */, + ECA6FBB82A24CF140023410A /* MatiereView.swift in Sources */, + EC48A2642A1D0214008DB387 /* HomeView.swift in Sources */, + EC5D85542A41F13100BBB920 /* ManagerVM.swift in Sources */, + ECA6FBB62A20B3830023410A /* StubUE.swift in Sources */, + ECA6FBAF2A208AF70023410A /* Bloc.swift in Sources */, + EC5D85462A41AD0F00BBB920 /* Editpage.swift in Sources */, + ECA6FBB32A20B15B0023410A /* UEview.swift in Sources */, + EC5D854C2A41BBDD00BBB920 /* DataManager.swift in Sources */, + ECA6FBBA2A24CF3C0023410A /* StubMatiere.swift in Sources */, + EC281BBF2A4523CD00AAA912 /* BlocItem.swift in Sources */, + EC48A2612A1CFEC7008DB387 /* UE.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC48A23C2A1CE01A008DB387 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EC48A2452A1CE01A008DB387 /* CalculatorTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + EC48A2462A1CE01A008DB387 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + EC48A2512A1CE01A008DB387 /* CalculatorUITestsLaunchTests.swift in Sources */, + EC48A24F2A1CE01A008DB387 /* CalculatorUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + EC48A2422A1CE01A008DB387 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = EC48A22F2A1CE019008DB387 /* Calculator */; + targetProxy = EC48A2412A1CE01A008DB387 /* PBXContainerItemProxy */; + }; + EC48A24C2A1CE01A008DB387 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = EC48A22F2A1CE019008DB387 /* Calculator */; + targetProxy = EC48A24B2A1CE01A008DB387 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + EC48A2522A1CE01A008DB387 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = dwarf; + ENABLE_STRICT_OBJC_MSGSEND = YES; + ENABLE_TESTABILITY = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_DYNAMIC_NO_PIC = NO; + GCC_NO_COMMON_BLOCKS = YES; + GCC_OPTIMIZATION_LEVEL = 0; + GCC_PREPROCESSOR_DEFINITIONS = ( + "DEBUG=1", + "$(inherited)", + ); + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; + MTL_FAST_MATH = YES; + ONLY_ACTIVE_ARCH = YES; + SDKROOT = iphoneos; + SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; + SWIFT_OPTIMIZATION_LEVEL = "-Onone"; + }; + name = Debug; + }; + EC48A2532A1CE01A008DB387 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_SEARCH_USER_PATHS = NO; + CLANG_ANALYZER_NONNULL = YES; + CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE; + CLANG_CXX_LANGUAGE_STANDARD = "gnu++20"; + CLANG_ENABLE_MODULES = YES; + CLANG_ENABLE_OBJC_ARC = YES; + CLANG_ENABLE_OBJC_WEAK = YES; + CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; + CLANG_WARN_BOOL_CONVERSION = YES; + CLANG_WARN_COMMA = YES; + CLANG_WARN_CONSTANT_CONVERSION = YES; + CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; + CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; + CLANG_WARN_DOCUMENTATION_COMMENTS = YES; + CLANG_WARN_EMPTY_BODY = YES; + CLANG_WARN_ENUM_CONVERSION = YES; + CLANG_WARN_INFINITE_RECURSION = YES; + CLANG_WARN_INT_CONVERSION = YES; + CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; + CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; + CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; + CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; + CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES; + CLANG_WARN_RANGE_LOOP_ANALYSIS = YES; + CLANG_WARN_STRICT_PROTOTYPES = YES; + CLANG_WARN_SUSPICIOUS_MOVE = YES; + CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE; + CLANG_WARN_UNREACHABLE_CODE = YES; + CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; + COPY_PHASE_STRIP = NO; + DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; + ENABLE_NS_ASSERTIONS = NO; + ENABLE_STRICT_OBJC_MSGSEND = YES; + GCC_C_LANGUAGE_STANDARD = gnu11; + GCC_NO_COMMON_BLOCKS = YES; + GCC_WARN_64_TO_32_BIT_CONVERSION = YES; + GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; + GCC_WARN_UNDECLARED_SELECTOR = YES; + GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; + GCC_WARN_UNUSED_FUNCTION = YES; + GCC_WARN_UNUSED_VARIABLE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + EC48A2552A1CE01A008DB387 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Calculator/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.Calculator; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + EC48A2562A1CE01A008DB387 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; + ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + DEVELOPMENT_ASSET_PATHS = "\"Calculator/Preview Content\""; + ENABLE_PREVIEWS = YES; + GENERATE_INFOPLIST_FILE = YES; + INFOPLIST_KEY_UIApplicationSceneManifest_Generation = YES; + INFOPLIST_KEY_UIApplicationSupportsIndirectInputEvents = YES; + INFOPLIST_KEY_UILaunchScreen_Generation = YES; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPad = "UIInterfaceOrientationPortrait UIInterfaceOrientationPortraitUpsideDown UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + INFOPLIST_KEY_UISupportedInterfaceOrientations_iPhone = "UIInterfaceOrientationPortrait UIInterfaceOrientationLandscapeLeft UIInterfaceOrientationLandscapeRight"; + LD_RUNPATH_SEARCH_PATHS = ( + "$(inherited)", + "@executable_path/Frameworks", + ); + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.Calculator; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + EC48A2582A1CE01A008DB387 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.CalculatorTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Calculator.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Calculator"; + }; + name = Debug; + }; + EC48A2592A1CE01A008DB387 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + BUNDLE_LOADER = "$(TEST_HOST)"; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + IPHONEOS_DEPLOYMENT_TARGET = 16.4; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.CalculatorTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/Calculator.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/Calculator"; + }; + name = Release; + }; + EC48A25B2A1CE01A008DB387 /* Debug */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.CalculatorUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = Calculator; + }; + name = Debug; + }; + EC48A25C2A1CE01A008DB387 /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; + CODE_SIGN_STYLE = Automatic; + CURRENT_PROJECT_VERSION = 1; + GENERATE_INFOPLIST_FILE = YES; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.CalculatorUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = Calculator; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + EC48A22B2A1CE019008DB387 /* Build configuration list for PBXProject "Calculator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EC48A2522A1CE01A008DB387 /* Debug */, + EC48A2532A1CE01A008DB387 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EC48A2542A1CE01A008DB387 /* Build configuration list for PBXNativeTarget "Calculator" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EC48A2552A1CE01A008DB387 /* Debug */, + EC48A2562A1CE01A008DB387 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EC48A2572A1CE01A008DB387 /* Build configuration list for PBXNativeTarget "CalculatorTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EC48A2582A1CE01A008DB387 /* Debug */, + EC48A2592A1CE01A008DB387 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + EC48A25A2A1CE01A008DB387 /* Build configuration list for PBXNativeTarget "CalculatorUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + EC48A25B2A1CE01A008DB387 /* Debug */, + EC48A25C2A1CE01A008DB387 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = EC48A2282A1CE019008DB387 /* Project object */; +} diff --git a/Calculator.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Calculator.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Calculator.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Calculator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Calculator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist new file mode 100644 index 0000000..18d9810 --- /dev/null +++ b/Calculator.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist @@ -0,0 +1,8 @@ + + + + + IDEDidComputeMac32BitWarning + + + diff --git a/Calculator.xcodeproj/project.xcworkspace/xcuserdata/etudiant.xcuserdatad/UserInterfaceState.xcuserstate b/Calculator.xcodeproj/project.xcworkspace/xcuserdata/etudiant.xcuserdatad/UserInterfaceState.xcuserstate new file mode 100644 index 0000000000000000000000000000000000000000..4c56b0fd75a29d24e4926fd3ef7dbd452152cbaf GIT binary patch literal 73977 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