diff --git a/Sources/EpisodeView.swift b/Sources/EpisodeView.swift new file mode 100644 index 0000000..d358215 --- /dev/null +++ b/Sources/EpisodeView.swift @@ -0,0 +1,27 @@ +// +// EpisodeView.swift +// MySwiftUi +// +// Created by etudiant on 16/05/2023. +// + +import SwiftUI + +struct EpisodeView: View { + let episode: Episode + + var body: some View { + VStack(alignment: .leading) { + Text(episode.date) + .font(.headline) + Text(episode.titre) + .font(.subheadline) + .foregroundColor(.blue) + Text(episode.description) + .foregroundColor(.gray) + } + .padding() + .background(Color.gray.opacity(0.2)) + .cornerRadius(10) + } +} diff --git a/Sources/HelloCLT/HelloCLT.xcodeproj/project.pbxproj b/Sources/HelloCLT/HelloCLT.xcodeproj/project.pbxproj deleted file mode 100644 index e92c528..0000000 --- a/Sources/HelloCLT/HelloCLT.xcodeproj/project.pbxproj +++ /dev/null @@ -1,313 +0,0 @@ -// !$*UTF8*$! -{ - archiveVersion = 1; - classes = { - }; - objectVersion = 55; - objects = { - -/* Begin PBXBuildFile section */ - 6FC153182820EFB500D881F3 /* main.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FC153172820EFB500D881F3 /* main.swift */; }; - 6FC153202820EFD800D881F3 /* HelloLibrary in Frameworks */ = {isa = PBXBuildFile; productRef = 6FC1531F2820EFD800D881F3 /* HelloLibrary */; }; -/* End PBXBuildFile section */ - -/* Begin PBXCopyFilesBuildPhase section */ - 6FC153122820EFB500D881F3 /* CopyFiles */ = { - isa = PBXCopyFilesBuildPhase; - buildActionMask = 2147483647; - dstPath = /usr/share/man/man1/; - dstSubfolderSpec = 0; - files = ( - ); - runOnlyForDeploymentPostprocessing = 1; - }; -/* End PBXCopyFilesBuildPhase section */ - -/* Begin PBXFileReference section */ - 6FC153142820EFB500D881F3 /* HelloCLT */ = {isa = PBXFileReference; explicitFileType = "compiled.mach-o.executable"; includeInIndex = 0; path = HelloCLT; sourceTree = BUILT_PRODUCTS_DIR; }; - 6FC153172820EFB500D881F3 /* main.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = main.swift; sourceTree = ""; }; -/* End PBXFileReference section */ - -/* Begin PBXFrameworksBuildPhase section */ - 6FC153112820EFB500D881F3 /* Frameworks */ = { - isa = PBXFrameworksBuildPhase; - buildActionMask = 2147483647; - files = ( - 6FC153202820EFD800D881F3 /* HelloLibrary in Frameworks */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXFrameworksBuildPhase section */ - -/* Begin PBXGroup section */ - 6FC1530B2820EFB500D881F3 = { - isa = PBXGroup; - children = ( - 6FC153162820EFB500D881F3 /* HelloCLT */, - 6FC153152820EFB500D881F3 /* Products */, - 6FC1531E2820EFD800D881F3 /* Frameworks */, - ); - sourceTree = ""; - }; - 6FC153152820EFB500D881F3 /* Products */ = { - isa = PBXGroup; - children = ( - 6FC153142820EFB500D881F3 /* HelloCLT */, - ); - name = Products; - sourceTree = ""; - }; - 6FC153162820EFB500D881F3 /* HelloCLT */ = { - isa = PBXGroup; - children = ( - 6FC153172820EFB500D881F3 /* main.swift */, - ); - path = HelloCLT; - sourceTree = ""; - }; - 6FC1531E2820EFD800D881F3 /* Frameworks */ = { - isa = PBXGroup; - children = ( - ); - name = Frameworks; - sourceTree = ""; - }; -/* End PBXGroup section */ - -/* Begin PBXNativeTarget section */ - 6FC153132820EFB500D881F3 /* HelloCLT */ = { - isa = PBXNativeTarget; - buildConfigurationList = 6FC1531B2820EFB500D881F3 /* Build configuration list for PBXNativeTarget "HelloCLT" */; - buildPhases = ( - 6FC153102820EFB500D881F3 /* Sources */, - 6FC153112820EFB500D881F3 /* Frameworks */, - 6FC153122820EFB500D881F3 /* CopyFiles */, - ); - buildRules = ( - ); - dependencies = ( - ); - name = HelloCLT; - packageProductDependencies = ( - 6FC1531F2820EFD800D881F3 /* HelloLibrary */, - ); - productName = HelloCLT; - productReference = 6FC153142820EFB500D881F3 /* HelloCLT */; - productType = "com.apple.product-type.tool"; - }; -/* End PBXNativeTarget section */ - -/* Begin PBXProject section */ - 6FC1530C2820EFB500D881F3 /* Project object */ = { - isa = PBXProject; - attributes = { - BuildIndependentTargetsInParallel = 1; - LastSwiftUpdateCheck = 1320; - LastUpgradeCheck = 1320; - TargetAttributes = { - 6FC153132820EFB500D881F3 = { - CreatedOnToolsVersion = 13.2.1; - }; - }; - }; - buildConfigurationList = 6FC1530F2820EFB500D881F3 /* Build configuration list for PBXProject "HelloCLT" */; - compatibilityVersion = "Xcode 13.0"; - developmentRegion = en; - hasScannedForEncodings = 0; - knownRegions = ( - en, - Base, - ); - mainGroup = 6FC1530B2820EFB500D881F3; - productRefGroup = 6FC153152820EFB500D881F3 /* Products */; - projectDirPath = ""; - projectRoot = ""; - targets = ( - 6FC153132820EFB500D881F3 /* HelloCLT */, - ); - }; -/* End PBXProject section */ - -/* Begin PBXSourcesBuildPhase section */ - 6FC153102820EFB500D881F3 /* Sources */ = { - isa = PBXSourcesBuildPhase; - buildActionMask = 2147483647; - files = ( - 6FC153182820EFB500D881F3 /* main.swift in Sources */, - ); - runOnlyForDeploymentPostprocessing = 0; - }; -/* End PBXSourcesBuildPhase section */ - -/* Begin XCBuildConfiguration section */ - 6FC153192820EFB500D881F3 /* 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++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_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; - MACOSX_DEPLOYMENT_TARGET = 11.6; - MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE; - MTL_FAST_MATH = YES; - ONLY_ACTIVE_ARCH = YES; - SDKROOT = macosx; - SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; - SWIFT_OPTIMIZATION_LEVEL = "-Onone"; - }; - name = Debug; - }; - 6FC1531A2820EFB500D881F3 /* 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++17"; - CLANG_CXX_LIBRARY = "libc++"; - CLANG_ENABLE_MODULES = YES; - CLANG_ENABLE_OBJC_ARC = YES; - CLANG_ENABLE_OBJC_WEAK = YES; - CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES; - CLANG_WARN_BOOL_CONVERSION = YES; - CLANG_WARN_COMMA = YES; - CLANG_WARN_CONSTANT_CONVERSION = YES; - CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES; - CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; - CLANG_WARN_DOCUMENTATION_COMMENTS = YES; - CLANG_WARN_EMPTY_BODY = YES; - CLANG_WARN_ENUM_CONVERSION = YES; - CLANG_WARN_INFINITE_RECURSION = YES; - CLANG_WARN_INT_CONVERSION = YES; - CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES; - CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES; - CLANG_WARN_OBJC_LITERAL_CONVERSION = YES; - CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; - CLANG_WARN_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; - MACOSX_DEPLOYMENT_TARGET = 11.6; - MTL_ENABLE_DEBUG_INFO = NO; - MTL_FAST_MATH = YES; - SDKROOT = macosx; - SWIFT_COMPILATION_MODE = wholemodule; - SWIFT_OPTIMIZATION_LEVEL = "-O"; - }; - name = Release; - }; - 6FC1531C2820EFB500D881F3 /* Debug */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 9NSYVG2S5B; - ENABLE_HARDENED_RUNTIME = YES; - PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - }; - name = Debug; - }; - 6FC1531D2820EFB500D881F3 /* Release */ = { - isa = XCBuildConfiguration; - buildSettings = { - CODE_SIGN_STYLE = Automatic; - DEVELOPMENT_TEAM = 9NSYVG2S5B; - ENABLE_HARDENED_RUNTIME = YES; - PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut; - PRODUCT_NAME = "$(TARGET_NAME)"; - SWIFT_VERSION = 5.0; - }; - name = Release; - }; -/* End XCBuildConfiguration section */ - -/* Begin XCConfigurationList section */ - 6FC1530F2820EFB500D881F3 /* Build configuration list for PBXProject "HelloCLT" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6FC153192820EFB500D881F3 /* Debug */, - 6FC1531A2820EFB500D881F3 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; - 6FC1531B2820EFB500D881F3 /* Build configuration list for PBXNativeTarget "HelloCLT" */ = { - isa = XCConfigurationList; - buildConfigurations = ( - 6FC1531C2820EFB500D881F3 /* Debug */, - 6FC1531D2820EFB500D881F3 /* Release */, - ); - defaultConfigurationIsVisible = 0; - defaultConfigurationName = Release; - }; -/* End XCConfigurationList section */ - -/* Begin XCSwiftPackageProductDependency section */ - 6FC1531F2820EFD800D881F3 /* HelloLibrary */ = { - isa = XCSwiftPackageProductDependency; - productName = HelloLibrary; - }; -/* End XCSwiftPackageProductDependency section */ - }; - rootObject = 6FC1530C2820EFB500D881F3 /* Project object */; -} diff --git a/Sources/HelloCLT/HelloCLT/main.swift b/Sources/HelloCLT/HelloCLT/main.swift deleted file mode 100644 index ce0a84d..0000000 --- a/Sources/HelloCLT/HelloCLT/main.swift +++ /dev/null @@ -1,14 +0,0 @@ -// -// main.swift -// HelloCLT -// -// Created by Marc Chevaldonné on 03/05/2022. -// - -import HelloLibrary - -import Foundation - -let helloStruct = HelloStruct() -print(helloStruct.text) - diff --git a/Sources/HelloLibrary/.gitignore b/Sources/HelloLibrary/.gitignore deleted file mode 100644 index bb460e7..0000000 --- a/Sources/HelloLibrary/.gitignore +++ /dev/null @@ -1,7 +0,0 @@ -.DS_Store -/.build -/Packages -/*.xcodeproj -xcuserdata/ -DerivedData/ -.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata diff --git a/Sources/HelloLibrary/Package.swift b/Sources/HelloLibrary/Package.swift deleted file mode 100644 index ce5cb59..0000000 --- a/Sources/HelloLibrary/Package.swift +++ /dev/null @@ -1,28 +0,0 @@ -// swift-tools-version:5.5 -// The swift-tools-version declares the minimum version of Swift required to build this package. - -import PackageDescription - -let package = Package( - name: "HelloLibrary", - products: [ - // Products define the executables and libraries a package produces, and make them visible to other packages. - .library( - name: "HelloLibrary", - targets: ["HelloLibrary"]), - ], - dependencies: [ - // Dependencies declare other packages that this package depends on. - // .package(url: /* package url */, from: "1.0.0"), - ], - targets: [ - // Targets are the basic building blocks of a package. A target can define a module or a test suite. - // Targets can depend on other targets in this package, and on products in packages this package depends on. - .target( - name: "HelloLibrary", - dependencies: []), - .testTarget( - name: "HelloLibraryTests", - dependencies: ["HelloLibrary"]), - ] -) diff --git a/Sources/HelloLibrary/README.md b/Sources/HelloLibrary/README.md deleted file mode 100644 index 5cdc795..0000000 --- a/Sources/HelloLibrary/README.md +++ /dev/null @@ -1,3 +0,0 @@ -# HelloLibrary - -A description of this package. diff --git a/Sources/HelloLibrary/Sources/HelloLibrary/HelloStruct.swift b/Sources/HelloLibrary/Sources/HelloLibrary/HelloStruct.swift deleted file mode 100644 index 9ebdb96..0000000 --- a/Sources/HelloLibrary/Sources/HelloLibrary/HelloStruct.swift +++ /dev/null @@ -1,6 +0,0 @@ -public struct HelloStruct { - public private(set) var text = "Hello, World!" - - public init() { - } -} diff --git a/Sources/HelloLibrary/Tests/HelloLibraryTests/HelloStructTests.swift b/Sources/HelloLibrary/Tests/HelloLibraryTests/HelloStructTests.swift deleted file mode 100644 index 13ca6f5..0000000 --- a/Sources/HelloLibrary/Tests/HelloLibraryTests/HelloStructTests.swift +++ /dev/null @@ -1,11 +0,0 @@ -import XCTest -@testable import HelloLibrary - -final class HelloStructTests: XCTestCase { - func testExample() throws { - // This is an example of a functional test case. - // Use XCTAssert and related functions to verify your tests produce the correct - // results. - XCTAssertEqual(HelloStruct().text, "Hello, World!") - } -} diff --git a/Sources/HelloWorkspace.xcworkspace/contents.xcworkspacedata b/Sources/HelloWorkspace.xcworkspace/contents.xcworkspacedata deleted file mode 100644 index d8179a9..0000000 --- a/Sources/HelloWorkspace.xcworkspace/contents.xcworkspacedata +++ /dev/null @@ -1,10 +0,0 @@ - - - - - - - diff --git a/Sources/MySwiftUi.xcodeproj/project.pbxproj b/Sources/MySwiftUi.xcodeproj/project.pbxproj new file mode 100644 index 0000000..0f63095 --- /dev/null +++ b/Sources/MySwiftUi.xcodeproj/project.pbxproj @@ -0,0 +1,646 @@ +// !$*UTF8*$! +{ + archiveVersion = 1; + classes = { + }; + objectVersion = 56; + objects = { + +/* Begin PBXBuildFile section */ + EC41A9712A1A83E0006C4337 /* ColorPersonnalise.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC41A9702A1A83E0006C4337 /* ColorPersonnalise.swift */; }; + EC41A9732A1A8727006C4337 /* List.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC41A9722A1A8727006C4337 /* List.swift */; }; + EC41A9752A1A9E0F006C4337 /* Explorer.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC41A9742A1A9E0F006C4337 /* Explorer.swift */; }; + ECA71A752A12F45900ED0AED /* Episode.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA71A742A12F45900ED0AED /* Episode.swift */; }; + ECA71A7F2A136C3700ED0AED /* EpisodeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA71A7E2A136C3700ED0AED /* EpisodeView.swift */; }; + ECA71A812A14164F00ED0AED /* mysft.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA71A802A14164F00ED0AED /* mysft.swift */; }; + ECBA7D4C2A0C5D3D00F73512 /* MySwiftUiApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D4B2A0C5D3D00F73512 /* MySwiftUiApp.swift */; }; + ECBA7D4E2A0C5D3D00F73512 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D4D2A0C5D3D00F73512 /* ContentView.swift */; }; + ECBA7D502A0C5D3E00F73512 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ECBA7D4F2A0C5D3E00F73512 /* Assets.xcassets */; }; + ECBA7D532A0C5D3E00F73512 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = ECBA7D522A0C5D3E00F73512 /* Preview Assets.xcassets */; }; + ECBA7D5D2A0C5D3E00F73512 /* MySwiftUiTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D5C2A0C5D3E00F73512 /* MySwiftUiTests.swift */; }; + ECBA7D672A0C5D3E00F73512 /* MySwiftUiUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D662A0C5D3E00F73512 /* MySwiftUiUITests.swift */; }; + ECBA7D692A0C5D3E00F73512 /* MySwiftUiUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D682A0C5D3E00F73512 /* MySwiftUiUITestsLaunchTests.swift */; }; + ECBA7D782A0C5DBC00F73512 /* ExplorerView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D772A0C5DBC00F73512 /* ExplorerView.swift */; }; + ECBA7D7A2A0C5DCE00F73512 /* BiblioView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D792A0C5DCE00F73512 /* BiblioView.swift */; }; + ECBA7D7C2A0C5DDD00F73512 /* RechercheView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D7B2A0C5DDD00F73512 /* RechercheView.swift */; }; + ECBA7D7E2A0C5E0000F73512 /* EcouteView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7D7D2A0C5E0000F73512 /* EcouteView.swift */; }; + ECBA7DD02A0D024300F73512 /* Library.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7DCF2A0D024300F73512 /* Library.swift */; }; + ECBA7E102A0D0B6C00F73512 /* AffichageMenu.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7E0F2A0D0B6C00F73512 /* AffichageMenu.swift */; }; + ECBA7E142A0D15A000F73512 /* LibraryDetail.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7E132A0D15A000F73512 /* LibraryDetail.swift */; }; + ECBA7E162A0D19C600F73512 /* PersonDetailView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECBA7E152A0D19C600F73512 /* PersonDetailView.swift */; }; + ECCF82082A16D82D00B6406A /* Stub.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECCF82072A16D82D00B6406A /* Stub.swift */; }; + ECF628602A145B84000BC8DB /* GridContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECF6285F2A145B84000BC8DB /* GridContentView.swift */; }; +/* End PBXBuildFile section */ + +/* Begin PBXContainerItemProxy section */ + ECBA7D592A0C5D3E00F73512 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = ECBA7D402A0C5D3D00F73512 /* Project object */; + proxyType = 1; + remoteGlobalIDString = ECBA7D472A0C5D3D00F73512; + remoteInfo = MySwiftUi; + }; + ECBA7D632A0C5D3E00F73512 /* PBXContainerItemProxy */ = { + isa = PBXContainerItemProxy; + containerPortal = ECBA7D402A0C5D3D00F73512 /* Project object */; + proxyType = 1; + remoteGlobalIDString = ECBA7D472A0C5D3D00F73512; + remoteInfo = MySwiftUi; + }; +/* End PBXContainerItemProxy section */ + +/* Begin PBXFileReference section */ + EC41A9702A1A83E0006C4337 /* ColorPersonnalise.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ColorPersonnalise.swift; sourceTree = ""; }; + EC41A9722A1A8727006C4337 /* List.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = List.swift; sourceTree = ""; }; + EC41A9742A1A9E0F006C4337 /* Explorer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Explorer.swift; sourceTree = ""; }; + ECA71A742A12F45900ED0AED /* Episode.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Episode.swift; sourceTree = ""; }; + ECA71A7E2A136C3700ED0AED /* EpisodeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeView.swift; sourceTree = ""; }; + ECA71A802A14164F00ED0AED /* mysft.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = mysft.swift; sourceTree = ""; }; + ECBA7D482A0C5D3D00F73512 /* MySwiftUi.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MySwiftUi.app; sourceTree = BUILT_PRODUCTS_DIR; }; + ECBA7D4B2A0C5D3D00F73512 /* MySwiftUiApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MySwiftUiApp.swift; sourceTree = ""; }; + ECBA7D4D2A0C5D3D00F73512 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + ECBA7D4F2A0C5D3E00F73512 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + ECBA7D522A0C5D3E00F73512 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = ""; }; + ECBA7D582A0C5D3E00F73512 /* MySwiftUiTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MySwiftUiTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + ECBA7D5C2A0C5D3E00F73512 /* MySwiftUiTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MySwiftUiTests.swift; sourceTree = ""; }; + ECBA7D622A0C5D3E00F73512 /* MySwiftUiUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MySwiftUiUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; + ECBA7D662A0C5D3E00F73512 /* MySwiftUiUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MySwiftUiUITests.swift; sourceTree = ""; }; + ECBA7D682A0C5D3E00F73512 /* MySwiftUiUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MySwiftUiUITestsLaunchTests.swift; sourceTree = ""; }; + ECBA7D772A0C5DBC00F73512 /* ExplorerView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExplorerView.swift; sourceTree = ""; }; + ECBA7D792A0C5DCE00F73512 /* BiblioView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BiblioView.swift; sourceTree = ""; }; + ECBA7D7B2A0C5DDD00F73512 /* RechercheView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = RechercheView.swift; sourceTree = ""; }; + ECBA7D7D2A0C5E0000F73512 /* EcouteView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EcouteView.swift; sourceTree = ""; }; + ECBA7DCF2A0D024300F73512 /* Library.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Library.swift; sourceTree = ""; }; + ECBA7E0F2A0D0B6C00F73512 /* AffichageMenu.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AffichageMenu.swift; sourceTree = ""; }; + ECBA7E132A0D15A000F73512 /* LibraryDetail.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LibraryDetail.swift; sourceTree = ""; }; + ECBA7E152A0D19C600F73512 /* PersonDetailView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PersonDetailView.swift; sourceTree = ""; }; + ECCF82072A16D82D00B6406A /* Stub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stub.swift; sourceTree = ""; }; + ECF6285F2A145B84000BC8DB /* GridContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = GridContentView.swift; sourceTree = ""; }; +/* End PBXFileReference section */ + +/* Begin PBXFrameworksBuildPhase section */ + ECBA7D452A0C5D3D00F73512 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ECBA7D552A0C5D3E00F73512 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ECBA7D5F2A0C5D3E00F73512 /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXFrameworksBuildPhase section */ + +/* Begin PBXGroup section */ + ECBA7D3F2A0C5D3D00F73512 = { + isa = PBXGroup; + children = ( + ECA71A7E2A136C3700ED0AED /* EpisodeView.swift */, + ECBA7D4A2A0C5D3D00F73512 /* MySwiftUi */, + ECBA7D5B2A0C5D3E00F73512 /* MySwiftUiTests */, + ECBA7D652A0C5D3E00F73512 /* MySwiftUiUITests */, + ECBA7D492A0C5D3D00F73512 /* Products */, + ); + sourceTree = ""; + }; + ECBA7D492A0C5D3D00F73512 /* Products */ = { + isa = PBXGroup; + children = ( + ECBA7D482A0C5D3D00F73512 /* MySwiftUi.app */, + ECBA7D582A0C5D3E00F73512 /* MySwiftUiTests.xctest */, + ECBA7D622A0C5D3E00F73512 /* MySwiftUiUITests.xctest */, + ); + name = Products; + sourceTree = ""; + }; + ECBA7D4A2A0C5D3D00F73512 /* MySwiftUi */ = { + isa = PBXGroup; + children = ( + ECBA7D4B2A0C5D3D00F73512 /* MySwiftUiApp.swift */, + ECBA7D4D2A0C5D3D00F73512 /* ContentView.swift */, + ECBA7D4F2A0C5D3E00F73512 /* Assets.xcassets */, + EC41A9702A1A83E0006C4337 /* ColorPersonnalise.swift */, + ECBA7D512A0C5D3E00F73512 /* Preview Content */, + ECBA7D772A0C5DBC00F73512 /* ExplorerView.swift */, + ECBA7D792A0C5DCE00F73512 /* BiblioView.swift */, + ECBA7D7B2A0C5DDD00F73512 /* RechercheView.swift */, + ECBA7D7D2A0C5E0000F73512 /* EcouteView.swift */, + ECBA7DCF2A0D024300F73512 /* Library.swift */, + ECBA7E0F2A0D0B6C00F73512 /* AffichageMenu.swift */, + ECBA7E132A0D15A000F73512 /* LibraryDetail.swift */, + ECBA7E152A0D19C600F73512 /* PersonDetailView.swift */, + ECA71A742A12F45900ED0AED /* Episode.swift */, + ECA71A802A14164F00ED0AED /* mysft.swift */, + ECF6285F2A145B84000BC8DB /* GridContentView.swift */, + ECCF82072A16D82D00B6406A /* Stub.swift */, + EC41A9722A1A8727006C4337 /* List.swift */, + EC41A9742A1A9E0F006C4337 /* Explorer.swift */, + ); + path = MySwiftUi; + sourceTree = ""; + }; + ECBA7D512A0C5D3E00F73512 /* Preview Content */ = { + isa = PBXGroup; + children = ( + ECBA7D522A0C5D3E00F73512 /* Preview Assets.xcassets */, + ); + path = "Preview Content"; + sourceTree = ""; + }; + ECBA7D5B2A0C5D3E00F73512 /* MySwiftUiTests */ = { + isa = PBXGroup; + children = ( + ECBA7D5C2A0C5D3E00F73512 /* MySwiftUiTests.swift */, + ); + path = MySwiftUiTests; + sourceTree = ""; + }; + ECBA7D652A0C5D3E00F73512 /* MySwiftUiUITests */ = { + isa = PBXGroup; + children = ( + ECBA7D662A0C5D3E00F73512 /* MySwiftUiUITests.swift */, + ECBA7D682A0C5D3E00F73512 /* MySwiftUiUITestsLaunchTests.swift */, + ); + path = MySwiftUiUITests; + sourceTree = ""; + }; +/* End PBXGroup section */ + +/* Begin PBXNativeTarget section */ + ECBA7D472A0C5D3D00F73512 /* MySwiftUi */ = { + isa = PBXNativeTarget; + buildConfigurationList = ECBA7D6C2A0C5D3E00F73512 /* Build configuration list for PBXNativeTarget "MySwiftUi" */; + buildPhases = ( + ECBA7D442A0C5D3D00F73512 /* Sources */, + ECBA7D452A0C5D3D00F73512 /* Frameworks */, + ECBA7D462A0C5D3D00F73512 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = MySwiftUi; + productName = MySwiftUi; + productReference = ECBA7D482A0C5D3D00F73512 /* MySwiftUi.app */; + productType = "com.apple.product-type.application"; + }; + ECBA7D572A0C5D3E00F73512 /* MySwiftUiTests */ = { + isa = PBXNativeTarget; + buildConfigurationList = ECBA7D6F2A0C5D3E00F73512 /* Build configuration list for PBXNativeTarget "MySwiftUiTests" */; + buildPhases = ( + ECBA7D542A0C5D3E00F73512 /* Sources */, + ECBA7D552A0C5D3E00F73512 /* Frameworks */, + ECBA7D562A0C5D3E00F73512 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ECBA7D5A2A0C5D3E00F73512 /* PBXTargetDependency */, + ); + name = MySwiftUiTests; + productName = MySwiftUiTests; + productReference = ECBA7D582A0C5D3E00F73512 /* MySwiftUiTests.xctest */; + productType = "com.apple.product-type.bundle.unit-test"; + }; + ECBA7D612A0C5D3E00F73512 /* MySwiftUiUITests */ = { + isa = PBXNativeTarget; + buildConfigurationList = ECBA7D722A0C5D3E00F73512 /* Build configuration list for PBXNativeTarget "MySwiftUiUITests" */; + buildPhases = ( + ECBA7D5E2A0C5D3E00F73512 /* Sources */, + ECBA7D5F2A0C5D3E00F73512 /* Frameworks */, + ECBA7D602A0C5D3E00F73512 /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ECBA7D642A0C5D3E00F73512 /* PBXTargetDependency */, + ); + name = MySwiftUiUITests; + productName = MySwiftUiUITests; + productReference = ECBA7D622A0C5D3E00F73512 /* MySwiftUiUITests.xctest */; + productType = "com.apple.product-type.bundle.ui-testing"; + }; +/* End PBXNativeTarget section */ + +/* Begin PBXProject section */ + ECBA7D402A0C5D3D00F73512 /* Project object */ = { + isa = PBXProject; + attributes = { + BuildIndependentTargetsInParallel = 1; + LastSwiftUpdateCheck = 1410; + LastUpgradeCheck = 1410; + TargetAttributes = { + ECBA7D472A0C5D3D00F73512 = { + CreatedOnToolsVersion = 14.1; + }; + ECBA7D572A0C5D3E00F73512 = { + CreatedOnToolsVersion = 14.1; + TestTargetID = ECBA7D472A0C5D3D00F73512; + }; + ECBA7D612A0C5D3E00F73512 = { + CreatedOnToolsVersion = 14.1; + TestTargetID = ECBA7D472A0C5D3D00F73512; + }; + }; + }; + buildConfigurationList = ECBA7D432A0C5D3D00F73512 /* Build configuration list for PBXProject "MySwiftUi" */; + compatibilityVersion = "Xcode 14.0"; + developmentRegion = en; + hasScannedForEncodings = 0; + knownRegions = ( + en, + Base, + ); + mainGroup = ECBA7D3F2A0C5D3D00F73512; + productRefGroup = ECBA7D492A0C5D3D00F73512 /* Products */; + projectDirPath = ""; + projectRoot = ""; + targets = ( + ECBA7D472A0C5D3D00F73512 /* MySwiftUi */, + ECBA7D572A0C5D3E00F73512 /* MySwiftUiTests */, + ECBA7D612A0C5D3E00F73512 /* MySwiftUiUITests */, + ); + }; +/* End PBXProject section */ + +/* Begin PBXResourcesBuildPhase section */ + ECBA7D462A0C5D3D00F73512 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ECBA7D532A0C5D3E00F73512 /* Preview Assets.xcassets in Resources */, + ECBA7D502A0C5D3E00F73512 /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ECBA7D562A0C5D3E00F73512 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ECBA7D602A0C5D3E00F73512 /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXResourcesBuildPhase section */ + +/* Begin PBXSourcesBuildPhase section */ + ECBA7D442A0C5D3D00F73512 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ECBA7E142A0D15A000F73512 /* LibraryDetail.swift in Sources */, + ECCF82082A16D82D00B6406A /* Stub.swift in Sources */, + ECA71A752A12F45900ED0AED /* Episode.swift in Sources */, + ECBA7D7A2A0C5DCE00F73512 /* BiblioView.swift in Sources */, + EC41A9732A1A8727006C4337 /* List.swift in Sources */, + EC41A9712A1A83E0006C4337 /* ColorPersonnalise.swift in Sources */, + EC41A9752A1A9E0F006C4337 /* Explorer.swift in Sources */, + ECA71A7F2A136C3700ED0AED /* EpisodeView.swift in Sources */, + ECBA7E162A0D19C600F73512 /* PersonDetailView.swift in Sources */, + ECBA7E102A0D0B6C00F73512 /* AffichageMenu.swift in Sources */, + ECBA7DD02A0D024300F73512 /* Library.swift in Sources */, + ECBA7D7C2A0C5DDD00F73512 /* RechercheView.swift in Sources */, + ECBA7D782A0C5DBC00F73512 /* ExplorerView.swift in Sources */, + ECBA7D7E2A0C5E0000F73512 /* EcouteView.swift in Sources */, + ECA71A812A14164F00ED0AED /* mysft.swift in Sources */, + ECBA7D4E2A0C5D3D00F73512 /* ContentView.swift in Sources */, + ECF628602A145B84000BC8DB /* GridContentView.swift in Sources */, + ECBA7D4C2A0C5D3D00F73512 /* MySwiftUiApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ECBA7D542A0C5D3E00F73512 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ECBA7D5D2A0C5D3E00F73512 /* MySwiftUiTests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + ECBA7D5E2A0C5D3E00F73512 /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + ECBA7D692A0C5D3E00F73512 /* MySwiftUiUITestsLaunchTests.swift in Sources */, + ECBA7D672A0C5D3E00F73512 /* MySwiftUiUITests.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; +/* End PBXSourcesBuildPhase section */ + +/* Begin PBXTargetDependency section */ + ECBA7D5A2A0C5D3E00F73512 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = ECBA7D472A0C5D3D00F73512 /* MySwiftUi */; + targetProxy = ECBA7D592A0C5D3E00F73512 /* PBXContainerItemProxy */; + }; + ECBA7D642A0C5D3E00F73512 /* PBXTargetDependency */ = { + isa = PBXTargetDependency; + target = ECBA7D472A0C5D3D00F73512 /* MySwiftUi */; + targetProxy = ECBA7D632A0C5D3E00F73512 /* PBXContainerItemProxy */; + }; +/* End PBXTargetDependency section */ + +/* Begin XCBuildConfiguration section */ + ECBA7D6A2A0C5D3E00F73512 /* 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.1; + 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; + }; + ECBA7D6B2A0C5D3E00F73512 /* 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.1; + MTL_ENABLE_DEBUG_INFO = NO; + MTL_FAST_MATH = YES; + SDKROOT = iphoneos; + SWIFT_COMPILATION_MODE = wholemodule; + SWIFT_OPTIMIZATION_LEVEL = "-O"; + VALIDATE_PRODUCT = YES; + }; + name = Release; + }; + ECBA7D6D2A0C5D3E00F73512 /* 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 = "\"MySwiftUi/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.MySwiftUi; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Debug; + }; + ECBA7D6E2A0C5D3E00F73512 /* 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 = "\"MySwiftUi/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.MySwiftUi; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = YES; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + }; + name = Release; + }; + ECBA7D702A0C5D3E00F73512 /* 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.1; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.MySwiftUiTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MySwiftUi.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MySwiftUi"; + }; + name = Debug; + }; + ECBA7D712A0C5D3E00F73512 /* 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.1; + MARKETING_VERSION = 1.0; + PRODUCT_BUNDLE_IDENTIFIER = fr.uca.iut.MySwiftUiTests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MySwiftUi.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MySwiftUi"; + }; + name = Release; + }; + ECBA7D732A0C5D3E00F73512 /* 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.MySwiftUiUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MySwiftUi; + }; + name = Debug; + }; + ECBA7D742A0C5D3E00F73512 /* 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.MySwiftUiUITests; + PRODUCT_NAME = "$(TARGET_NAME)"; + SWIFT_EMIT_LOC_STRINGS = NO; + SWIFT_VERSION = 5.0; + TARGETED_DEVICE_FAMILY = "1,2"; + TEST_TARGET_NAME = MySwiftUi; + }; + name = Release; + }; +/* End XCBuildConfiguration section */ + +/* Begin XCConfigurationList section */ + ECBA7D432A0C5D3D00F73512 /* Build configuration list for PBXProject "MySwiftUi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + ECBA7D6A2A0C5D3E00F73512 /* Debug */, + ECBA7D6B2A0C5D3E00F73512 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + ECBA7D6C2A0C5D3E00F73512 /* Build configuration list for PBXNativeTarget "MySwiftUi" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + ECBA7D6D2A0C5D3E00F73512 /* Debug */, + ECBA7D6E2A0C5D3E00F73512 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + ECBA7D6F2A0C5D3E00F73512 /* Build configuration list for PBXNativeTarget "MySwiftUiTests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + ECBA7D702A0C5D3E00F73512 /* Debug */, + ECBA7D712A0C5D3E00F73512 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + ECBA7D722A0C5D3E00F73512 /* Build configuration list for PBXNativeTarget "MySwiftUiUITests" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + ECBA7D732A0C5D3E00F73512 /* Debug */, + ECBA7D742A0C5D3E00F73512 /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; +/* End XCConfigurationList section */ + }; + rootObject = ECBA7D402A0C5D3D00F73512 /* Project object */; +} diff --git a/Sources/MySwiftUi.xcodeproj/project.xcworkspace/contents.xcworkspacedata b/Sources/MySwiftUi.xcodeproj/project.xcworkspace/contents.xcworkspacedata new file mode 100644 index 0000000..919434a --- /dev/null +++ b/Sources/MySwiftUi.xcodeproj/project.xcworkspace/contents.xcworkspacedata @@ -0,0 +1,7 @@ + + + + + diff --git a/Sources/HelloWorkspace.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist b/Sources/MySwiftUi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist similarity index 100% rename from Sources/HelloWorkspace.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist rename to Sources/MySwiftUi.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist diff --git a/Sources/MySwiftUi/AffichageMenu.swift b/Sources/MySwiftUi/AffichageMenu.swift new file mode 100644 index 0000000..7194062 --- /dev/null +++ b/Sources/MySwiftUi/AffichageMenu.swift @@ -0,0 +1,76 @@ +// +// AffichageMenu.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +// +// AffichageMenu.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct AffichageMenu: View { + let columns = [GridItem(.flexible()), GridItem(.flexible())] + + var body: some View { + NavigationView { + VStack(alignment: .leading) { + HStack { + Image(systemName: "chevron.left") + .padding(.trailing, 5) + Text("Bibliotheque") + .font(.headline) + .padding(.trailing, 20) + .font(.headline) + .foregroundColor(.blue) + } + .font(.headline) + Text("PODSTART") + .font(.largeTitle) + .fontWeight(.black) + .padding(.top, 20) + .multilineTextAlignment(.leading) + + ScrollView { + LazyVGrid(columns: columns, spacing: 0) { + ForEach(staf) { person in + NavigationLink(destination: BiblioView()) { + VStack { + Image(person.thumbnail) + .resizable() + .scaledToFit() + .frame(height: 160) + VStack(alignment: .leading, spacing: 5) { + Text(person.name) + .font(.headline) + .foregroundColor(.primary) + Text(person.maj) + .font(.subheadline) + .foregroundColor(.secondary) + } + } + .padding() + .cornerRadius(10) + .shadow(radius: 5) + } + } + } + .padding() + } + } + .navigationBarTitle("", displayMode: .inline) + } + } +} + +struct Previews_AffichageMenu_Previews: PreviewProvider { + static var previews: some View { + AffichageMenu() + AffichageMenu().environment(\.colorScheme, .dark) + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/AccentColor.colorset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 0000000..eb87897 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/AppIcon.appiconset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 0000000..13613e3 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,13 @@ +{ + "images" : [ + { + "idiom" : "universal", + "platform" : "ios", + "size" : "1024x1024" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/Chaleur.imageset/Chaleur.jpg b/Sources/MySwiftUi/Assets.xcassets/Chaleur.imageset/Chaleur.jpg new file mode 100644 index 0000000..c49dcc6 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/Chaleur.imageset/Chaleur.jpg differ diff --git a/Sources/MySwiftUi/Assets.xcassets/Chaleur.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/Chaleur.imageset/Contents.json new file mode 100644 index 0000000..4ce445f --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/Chaleur.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "Chaleur.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/Contents.json b/Sources/MySwiftUi/Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/artist_1.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/artist_1.imageset/Contents.json new file mode 100644 index 0000000..280c96a --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/artist_1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "artist_1.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/artist_1.imageset/artist_1.png b/Sources/MySwiftUi/Assets.xcassets/artist_1.imageset/artist_1.png new file mode 100644 index 0000000..7db1e69 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/artist_1.imageset/artist_1.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/artist_5.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/artist_5.imageset/Contents.json new file mode 100644 index 0000000..2a27929 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/artist_5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "artist_5.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/artist_5.imageset/artist_5.png b/Sources/MySwiftUi/Assets.xcassets/artist_5.imageset/artist_5.png new file mode 100644 index 0000000..4ec600a Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/artist_5.imageset/artist_5.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/colorWhite.colorset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/colorWhite.colorset/Contents.json new file mode 100644 index 0000000..33ca09b --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/colorWhite.colorset/Contents.json @@ -0,0 +1,38 @@ +{ + "colors" : [ + { + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "1.000", + "green" : "1.000", + "red" : "1.000" + } + }, + "idiom" : "universal" + }, + { + "appearances" : [ + { + "appearance" : "luminosity", + "value" : "dark" + } + ], + "color" : { + "color-space" : "srgb", + "components" : { + "alpha" : "1.000", + "blue" : "0.107", + "green" : "0.084", + "red" : "0.103" + } + }, + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/glm.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/glm.imageset/Contents.json new file mode 100644 index 0000000..2583640 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/glm.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "glm.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/glm.imageset/glm.jpg b/Sources/MySwiftUi/Assets.xcassets/glm.imageset/glm.jpg new file mode 100644 index 0000000..1daa821 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/glm.imageset/glm.jpg differ diff --git a/Sources/MySwiftUi/Assets.xcassets/imag.imageset/Chaleur.jpg b/Sources/MySwiftUi/Assets.xcassets/imag.imageset/Chaleur.jpg new file mode 100644 index 0000000..c49dcc6 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/imag.imageset/Chaleur.jpg differ diff --git a/Sources/MySwiftUi/Assets.xcassets/imag.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/imag.imageset/Contents.json new file mode 100644 index 0000000..7fbe27d --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/imag.imageset/Contents.json @@ -0,0 +1,22 @@ +{ + "images" : [ + { + "filename" : "imag.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "filename" : "Chaleur.jpg", + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/imag.imageset/imag.jpg b/Sources/MySwiftUi/Assets.xcassets/imag.imageset/imag.jpg new file mode 100644 index 0000000..041f023 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/imag.imageset/imag.jpg differ diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/podcast.imageset/Contents.json new file mode 100644 index 0000000..813f96b --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/podcast.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "podcast.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast.imageset/podcast.png b/Sources/MySwiftUi/Assets.xcassets/podcast.imageset/podcast.png new file mode 100644 index 0000000..4443d83 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/podcast.imageset/podcast.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast2.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/podcast2.imageset/Contents.json new file mode 100644 index 0000000..4653f3c --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/podcast2.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "podcast2.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast2.imageset/podcast2.png b/Sources/MySwiftUi/Assets.xcassets/podcast2.imageset/podcast2.png new file mode 100644 index 0000000..d28a7bd Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/podcast2.imageset/podcast2.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast4.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/podcast4.imageset/Contents.json new file mode 100644 index 0000000..7922c5a --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/podcast4.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "podcast4.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast4.imageset/podcast4.png b/Sources/MySwiftUi/Assets.xcassets/podcast4.imageset/podcast4.png new file mode 100644 index 0000000..d207bc3 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/podcast4.imageset/podcast4.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast5.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/podcast5.imageset/Contents.json new file mode 100644 index 0000000..a43de88 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/podcast5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "podcast5.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/podcast5.imageset/podcast5.png b/Sources/MySwiftUi/Assets.xcassets/podcast5.imageset/podcast5.png new file mode 100644 index 0000000..1c10719 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/podcast5.imageset/podcast5.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_1.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/poster_1.imageset/Contents.json new file mode 100644 index 0000000..341db03 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/poster_1.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "poster_1.jpg", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_1.imageset/poster_1.jpg b/Sources/MySwiftUi/Assets.xcassets/poster_1.imageset/poster_1.jpg new file mode 100644 index 0000000..55391e5 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/poster_1.imageset/poster_1.jpg differ diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_3.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/poster_3.imageset/Contents.json new file mode 100644 index 0000000..82eb569 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/poster_3.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "poster_3.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_3.imageset/poster_3.png b/Sources/MySwiftUi/Assets.xcassets/poster_3.imageset/poster_3.png new file mode 100644 index 0000000..948928b Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/poster_3.imageset/poster_3.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_5.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/poster_5.imageset/Contents.json new file mode 100644 index 0000000..66edb29 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/poster_5.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "poster_5.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_5.imageset/poster_5.png b/Sources/MySwiftUi/Assets.xcassets/poster_5.imageset/poster_5.png new file mode 100644 index 0000000..4928547 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/poster_5.imageset/poster_5.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_6.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/poster_6.imageset/Contents.json new file mode 100644 index 0000000..ff96a44 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/poster_6.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "poster_6.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_6.imageset/poster_6.png b/Sources/MySwiftUi/Assets.xcassets/poster_6.imageset/poster_6.png new file mode 100644 index 0000000..9e8c1d9 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/poster_6.imageset/poster_6.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_8.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/poster_8.imageset/Contents.json new file mode 100644 index 0000000..8721c19 --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/poster_8.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "poster_8.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_8.imageset/poster_8.png b/Sources/MySwiftUi/Assets.xcassets/poster_8.imageset/poster_8.png new file mode 100644 index 0000000..a0e0244 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/poster_8.imageset/poster_8.png differ diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_9.imageset/Contents.json b/Sources/MySwiftUi/Assets.xcassets/poster_9.imageset/Contents.json new file mode 100644 index 0000000..78e015a --- /dev/null +++ b/Sources/MySwiftUi/Assets.xcassets/poster_9.imageset/Contents.json @@ -0,0 +1,21 @@ +{ + "images" : [ + { + "filename" : "poster_9.png", + "idiom" : "universal", + "scale" : "1x" + }, + { + "idiom" : "universal", + "scale" : "2x" + }, + { + "idiom" : "universal", + "scale" : "3x" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/Assets.xcassets/poster_9.imageset/poster_9.png b/Sources/MySwiftUi/Assets.xcassets/poster_9.imageset/poster_9.png new file mode 100644 index 0000000..0952fa1 Binary files /dev/null and b/Sources/MySwiftUi/Assets.xcassets/poster_9.imageset/poster_9.png differ diff --git a/Sources/MySwiftUi/BiblioView.swift b/Sources/MySwiftUi/BiblioView.swift new file mode 100644 index 0000000..98f381a --- /dev/null +++ b/Sources/MySwiftUi/BiblioView.swift @@ -0,0 +1,142 @@ +// +// ContentView.swift +// MyAppMusic +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI +import Combine + +struct BiblioView: View { + @State var isClicked: Bool = true + @State private var showEpisodes = true + let description = "Comment faire face au défi climatique ? Tous les mardis, Nabil Wakim et la rédaction du Monde invitent des experts pour comprendre les enjeux et trouver des solutions" + let maxDescriptionLength = 80 + @State private var showMore = false + @State private var color: Color = .white + @Environment(\.presentationMode) var presentationMode + var body: some View { + NavigationView { + ScrollView{ + ZStack { + color + .ignoresSafeArea(edges: .top) + VStack { + Spacer().frame(height: 50) + ///EcouteView + Image("poster_5") + .resizable() + .frame(width: 200 ,height: 200) + .aspectRatio(contentMode: .fit) + + .onReceive(Just(UIImage(named: "poster_5"))) { uiImage in + if let averageColor = uiImage?.averageColor { + self.color = Color(averageColor) + } + } + .scaledToFit() + .clipShape(RoundedRectangle(cornerRadius: 11)) + Text("Chaleur Humaine") + .font(.title2) + .multilineTextAlignment(.leading) + Text("Le Monde") + .font(.subheadline) + HStack { + Image(systemName: "star.fill") + .clipShape(Circle()) + .overlay { + Circle().stroke(.orange, lineWidth: 4) + } + Text("SER Podcast") + .foregroundColor(Color.black) + Image(systemName: "chevron.right") + } + Button(action: { + isClicked.toggle() + }) { + HStack{ + Image(systemName: isClicked ? "star.fill" : "pause.fill").foregroundColor(Color.white) + Text("Dernier épisode").foregroundColor(Color.white) + .padding(.vertical, 12) + .padding(.horizontal, 45) + } + } + .buttonStyle(.borderedProminent) + VStack { + Text(showMore ? description : description.prefix(maxDescriptionLength) + "...") + .foregroundColor(.white) + if description.count > maxDescriptionLength { + HStack{ + Spacer() + Button(action: { + showMore.toggle() + }, label: { + Text(showMore ? "MOINS" : "PLUS") + .foregroundColor(Color.white) + }) + } + .font(showMore ? .footnote : .body) + } + } + HStack { + Image(systemName: "star.fill") + Text("4,8 (457)") + Spacer() + Text("Actualités") + Spacer() + Text("Chaque semaine") + } + ScrollView{mystf()} + + //.padding() + .navigationBarTitle("", displayMode: .inline) + .navigationBarBackButtonHidden(true) + .navigationBarItems( + leading: Button(action: { + presentationMode.wrappedValue.dismiss() + }) { + Image(systemName: "chevron.backward") + .foregroundColor(.accentColor) + .imageScale(.large) + }, + trailing: + HStack(spacing: 16) { + Button(action: { + // Action de téléchargement + }) { + Image(systemName: "arrow.down.circle") + .foregroundColor(.accentColor) + .imageScale(.large) + } + + Button(action: { + // Actions des options + }) { + Image(systemName: "ellipsis") + .foregroundColor(.accentColor) + .imageScale(.large) + } + } + ) + } + } + }.background(color) + }.overlay( + GridContentView() + ).navigationBarHidden(true) + } +} + + +struct BiblioView_Previews: PreviewProvider { + static var previews: some View { + BiblioView() + BiblioView().environment(\.colorScheme,.dark) + + } +} + + + + diff --git a/Sources/MySwiftUi/ColorPersonnalise.swift b/Sources/MySwiftUi/ColorPersonnalise.swift new file mode 100644 index 0000000..5c53771 --- /dev/null +++ b/Sources/MySwiftUi/ColorPersonnalise.swift @@ -0,0 +1,16 @@ +// +// ColorPersonnalise.swift +// MySwiftUi +// +// Created by etudiant on 21/05/2023. +// + +import Foundation +import SwiftUI +public struct ColorPersonnalise{ + + static let colorWhite = Color("colorWhite") + + + +} diff --git a/Sources/MySwiftUi/ContentView.swift b/Sources/MySwiftUi/ContentView.swift new file mode 100644 index 0000000..0e087d6 --- /dev/null +++ b/Sources/MySwiftUi/ContentView.swift @@ -0,0 +1,36 @@ +// +// ContentView.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + TabView { + EcouteView().tabItem{ + Label("Ecouter",systemImage: "play.circle") + } + .foregroundColor(.accentColor) + + Explorer().tabItem{ + Label("Explorer",systemImage: "square.grid.2x2") + } + .foregroundColor(.accentColor) + AffichageMenu().tabItem{ + Label("Bibliotheque",systemImage: "square.stack.fill") + }.foregroundColor(.accentColor) + RechercheView().tabItem{ + Label("Recherche",systemImage: "magnifyingglass") + } + }} +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + ContentView().environment(\.colorScheme,.dark) + } +} diff --git a/Sources/MySwiftUi/EcouteView.swift b/Sources/MySwiftUi/EcouteView.swift new file mode 100644 index 0000000..1f37691 --- /dev/null +++ b/Sources/MySwiftUi/EcouteView.swift @@ -0,0 +1,65 @@ +// +// EcouteView.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + + +import SwiftUI +import Combine + +struct EcouteView: View { + @State private var color: Color = .white + @State private var showBiblioView = false // Ajout d'un état pour afficher la page BiblioView + + var body: some View { + ZStack { + color + VStack { + Button(action: { + showBiblioView = true // Afficher la page BiblioView lors du clic sur l'image + }) { + Image("artist_1") + .resizable() + .aspectRatio(contentMode: .fit) + .frame(height: 200) + .onReceive(Just(UIImage(named: "artist_1"))) { uiImage in + if let averageColor = uiImage?.averageColor { + self.color = Color(averageColor) + } + } + .scaledToFit() + .clipShape(RoundedRectangle(cornerRadius: 20)) + .overlay(RoundedRectangle(cornerRadius: 20) + .stroke(Color.gray, lineWidth: 2)) + } + .buttonStyle(PlainButtonStyle()) // Utiliser un style de bouton simple pour masquer l'apparence du bouton + + Spacer() + } + .padding(EdgeInsets.init(top: 32, leading: 12, bottom: 12, trailing: 12)) + } + .fullScreenCover(isPresented: $showBiblioView) { + BiblioView() // Afficher la page BiblioView en plein écran lorsque showBiblioView est vrai + } + } +} + +struct EcouteView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} + +extension UIImage { + var averageColor: UIColor? { + guard let inputImage = CIImage(image: self) else { return nil } + let extent = inputImage.extent + let context = CIContext(options: nil) + let ciFilter = CIFilter(name: "CIAreaAverage", parameters: [kCIInputImageKey: inputImage, kCIInputExtentKey: CIVector(cgRect: extent)])! + var bitmap = [UInt8](repeating: 0, count: 4) + context.render(ciFilter.outputImage!, toBitmap: &bitmap, rowBytes: 4, bounds: CGRect(x: 0, y: 0, width: 1, height: 1), format: .RGBA8, colorSpace: nil) + return UIColor(red: CGFloat(bitmap[0]) / 255, green: CGFloat(bitmap[1]) / 255, blue: CGFloat(bitmap[2]) / 255, alpha: 1.0) + } +} diff --git a/Sources/MySwiftUi/Episode.swift b/Sources/MySwiftUi/Episode.swift new file mode 100644 index 0000000..c4862c0 --- /dev/null +++ b/Sources/MySwiftUi/Episode.swift @@ -0,0 +1,18 @@ +// +// Episode.swift +// MySwiftUi +// +// Created by etudiant on 16/05/2023. +// + +import Foundation + +struct Episode: Identifiable { + let id: UUID + let date: String + let titre: String + let description: String + let heure: String + } + + diff --git a/Sources/MySwiftUi/Explorer.swift b/Sources/MySwiftUi/Explorer.swift new file mode 100644 index 0000000..cc267fd --- /dev/null +++ b/Sources/MySwiftUi/Explorer.swift @@ -0,0 +1,20 @@ +// +// Explorer.swift +// MySwiftUi +// +// Created by etudiant on 21/05/2023. +// + +import SwiftUI + +struct Explorer: View { + var body: some View { + Text("Explorer?") + } +} + +struct Explorer_Previews: PreviewProvider { + static var previews: some View { + Explorer() + } +} diff --git a/Sources/MySwiftUi/ExplorerView.swift b/Sources/MySwiftUi/ExplorerView.swift new file mode 100644 index 0000000..04f45cb --- /dev/null +++ b/Sources/MySwiftUi/ExplorerView.swift @@ -0,0 +1,38 @@ + + +// +// ContentView.swift +// MyAppMusic +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct ExplorerView: View { + @State var isClicked : Bool = true + + var body: some View { + + VStack { + + Image("imag") + + .ignoresSafeArea(edges: .top) + + .clipShape(RoundedRectangle(cornerRadius: 11)) + + } + .padding() + Spacer() + + +} + +} + +struct ExplorerView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/Sources/MySwiftUi/GridContentView.swift b/Sources/MySwiftUi/GridContentView.swift new file mode 100644 index 0000000..8a649b2 --- /dev/null +++ b/Sources/MySwiftUi/GridContentView.swift @@ -0,0 +1,46 @@ +// +// GridContentView.swift +// MySwiftUi +// +// Created by etudiant on 17/05/2023. +// + +import SwiftUI + +struct GridContentView: View { + var body: some View { + VStack { + Spacer() + + HStack { + Image("poster_5") + .resizable() + .frame(width: 40, height: 40) + .padding() + VStack(alignment: .leading) { + Text("Nadie Narlon ...") + .font(.title2) + Text("29 Avril 2023") + .font(.subheadline) + } + .padding(.horizontal) + Spacer() + Image(systemName: "play.fill") + .font(.system(size: 30)) + Image(systemName: "goforward.30") + .font(.system(size: 30)) + .padding() + } + .frame(height: 50) + .background(ColorPersonnalise.colorWhite) + .frame(width: 400) + } + + } +} + +struct Previews_GridContentView_Previews: PreviewProvider { + static var previews: some View { + GridContentView() + } +} diff --git a/Sources/MySwiftUi/Library.swift b/Sources/MySwiftUi/Library.swift new file mode 100644 index 0000000..8fa6013 --- /dev/null +++ b/Sources/MySwiftUi/Library.swift @@ -0,0 +1,29 @@ +// +// Library.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct Library: Identifiable { + let id = UUID() + var thumbnail: String + var name: String + var maj: String +} + +var staf = [ + Library(thumbnail: String("Chaleur"),name: "Chaleur Humaine", maj: " Mise a jour :Lundi" ), + Library(thumbnail: String("podcast"),name: "Le code à changer", maj: " Mise a jour :Mardi" ), + Library(thumbnail: String("podcast4"),name: "La drole d'humeur de Guiz", maj: " Mise a jour :Jeudi" ), + Library(thumbnail: String("podcast5"),name: "La science CQFD", maj: " Mise a jour :Vendredi" ), + Library(thumbnail: String("podcast2"),name: "Nadie sabe nada", maj: " Mise a jour :Samedi" ), + Library(thumbnail: String("podcast"),name: "Le code à changer", maj: " Mise a jour :Lundi" ), + Library(thumbnail: String("glm"),name: "moment Meurice", maj: " Mise a jour:Aujourd'hui" ), + Library(thumbnail: String("podcast5"),name: "Le drole d'humeur", maj: " Mise a jour :Lundi" ), + Library(thumbnail: String("podcast"),name: "Le code à changer", maj: " Mise a jour :jeudi" ) +] + + diff --git a/Sources/MySwiftUi/LibraryDetail.swift b/Sources/MySwiftUi/LibraryDetail.swift new file mode 100644 index 0000000..e0b411d --- /dev/null +++ b/Sources/MySwiftUi/LibraryDetail.swift @@ -0,0 +1,31 @@ +// +// LibraryDetail.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct LibraryDetail: View { + let library: Library + + var body: some View { + VStack { + Image(library.thumbnail) + .resizable() + .scaledToFit() + VStack(alignment: .leading, spacing: 10) { + Text(library.name) + .font(.title) + .fontWeight(.bold) + Text(library.maj) + .font(.headline) + } + .padding() + + Spacer() + } + .navigationBarTitle(Text(library.name), displayMode: .inline) + } +} diff --git a/Sources/MySwiftUi/List.swift b/Sources/MySwiftUi/List.swift new file mode 100644 index 0000000..e966828 --- /dev/null +++ b/Sources/MySwiftUi/List.swift @@ -0,0 +1,115 @@ +// +// List.swift +// MySwiftUi +// +// Created by etudiant on 21/05/2023. +// + +import SwiftUI + +struct List: View { + @State var episodes: [Episode] = [] + + let gridLayout = [ + GridItem(.flexible()) + + ] + + var body: some View { + + ZStack{ + ScrollView { + + VStack(alignment: .leading){ + Spacer() + HStack{ + + Text("Episodes") + .font(.title) + .fontWeight(.bold) + .foregroundColor(Color.purple) + .padding(.leading, 15.0) + + + Image(systemName: "chevron.down") + .foregroundColor(Color.pink) + + Spacer() + Text("Tout Voir") + .fontWeight(.bold) + .foregroundColor(Color.purple) + .padding(.trailing, 22.0) + + } + Divider() + + LazyVGrid(columns: gridLayout, spacing: 16) { + ForEach(episodes) { episode in + VStack(alignment: .leading) { + Text(episode.date) + .font(.subheadline) + .fontWeight(.bold) + .foregroundColor(Color.gray) + Text(episode.titre) + .font(.title2) + .fontWeight(.bold) + + Text(episode.description) + .fontWeight(.medium) + .foregroundColor(Color.gray) + .lineLimit(2) + .padding(.vertical, 0.0) + + HStack{ + Image(systemName: "play.circle") + .padding(.trailing, 2.0) + .scaleEffect(1.7) + .foregroundColor(Color.purple) + Text(episode.heure) + .font(.headline) + .foregroundColor(Color.purple) + Spacer() + Image(systemName: "ellipsis") + + }.padding(1.0) + + + } + .padding() + Divider() + + + } + } + .listStyle(.plain) + .onAppear { + let stub = Stub() + stub.getEpisodes { (episodes, error) in + if let episodes = episodes { + self.episodes = episodes + } + } + } + + + } + + } + + + + + + + } + } +} + +struct List_Previews: PreviewProvider { + static var previews: some View { + List() + List().preferredColorScheme(.dark) + } +} + + diff --git a/Sources/MySwiftUi/MySwiftUiApp.swift b/Sources/MySwiftUi/MySwiftUiApp.swift new file mode 100644 index 0000000..f8a7555 --- /dev/null +++ b/Sources/MySwiftUi/MySwiftUiApp.swift @@ -0,0 +1,17 @@ +// +// MySwiftUiApp.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// +import SwiftUI +@main +struct MySwiftUiApp: App { + var body: some Scene { + WindowGroup { + ContentView() +// mysft() +// GridContentView() + } + } +} diff --git a/Sources/MySwiftUi/PersonDetailView.swift b/Sources/MySwiftUi/PersonDetailView.swift new file mode 100644 index 0000000..b4dca47 --- /dev/null +++ b/Sources/MySwiftUi/PersonDetailView.swift @@ -0,0 +1,27 @@ +// +// PersonDetailView.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct PersonDetailView: View { + let person: Library + + var body: some View { + VStack { + Image(person.thumbnail) + .resizable() + .scaledToFit() + Text(person.name) + .font(.headline) + .padding() + Text(person.maj) + .font(.subheadline) + .padding() + } + } +} + diff --git a/Sources/MySwiftUi/Preview Content/Preview Assets.xcassets/Contents.json b/Sources/MySwiftUi/Preview Content/Preview Assets.xcassets/Contents.json new file mode 100644 index 0000000..73c0059 --- /dev/null +++ b/Sources/MySwiftUi/Preview Content/Preview Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Sources/MySwiftUi/RechercheView.swift b/Sources/MySwiftUi/RechercheView.swift new file mode 100644 index 0000000..07a70aa --- /dev/null +++ b/Sources/MySwiftUi/RechercheView.swift @@ -0,0 +1,22 @@ +// +// RechercheView.swift +// MySwiftUi +// +// Created by etudiant on 11/05/2023. +// + +import SwiftUI + +struct RechercheView: View { + var body: some View { + Text("MAMADOU") + } +} + +struct RechercheView_Previews: PreviewProvider { + static var previews: some View { + RechercheView() + } +} + + diff --git a/Sources/MySwiftUi/Stub.swift b/Sources/MySwiftUi/Stub.swift new file mode 100644 index 0000000..0db2ce8 --- /dev/null +++ b/Sources/MySwiftUi/Stub.swift @@ -0,0 +1,28 @@ +// +// Stub.swift +// MySwiftUi +// +// Created by etudiant on 19/05/2023. +// + +import SwiftUI + +struct Stub{ + func getEpisodes(completion: @escaping ([Episode]?, Error?) -> Void) { + // Simulation de récupération des épisodes (valeurs fictives) + + let episodes = [ + Episode(id: UUID(), date: "2023-05-01", titre: "Épisode 1", description: "Description de l'épisode 1", heure: "20:00"), + Episode(id: UUID(), date: "2023-05-07", titre: "Épisode 2", description: "Description de l'épisode 2", heure: "19:30"), + Episode(id: UUID(), date: "2023-05-15", titre: "Épisode 3", description: "Description de l'épisode 3", heure: "21:15"), + Episode(id: UUID(), date: "2023-05-07", titre: "Épisode 4", description: "Description de l'épisode 2", heure: "19:30"), + Episode(id: UUID(), date: "2023-05-15", titre: "Épisode 5", description: "Description de l'épisode 3", heure: "21:15"), + Episode(id: UUID(), date: "2023-05-01", titre: "Épisode 6", description: "Description de l'épisode 1", heure: "20:00"), + Episode(id: UUID(), date: "2023-05-07", titre: "Épisode 7", description: "Description de l'épisode 2", heure: "19:30"), + Episode(id: UUID(), date: "2023-05-15", titre: "Épisode 8", description: "Description de l'épisode 3", heure: "21:15") + ] + completion(episodes, nil) + } + } + + diff --git a/Sources/MySwiftUi/mysft.swift b/Sources/MySwiftUi/mysft.swift new file mode 100644 index 0000000..598607c --- /dev/null +++ b/Sources/MySwiftUi/mysft.swift @@ -0,0 +1,83 @@ +import SwiftUI + +struct mystf: View { + @State var episodes: [Episode] = [] + @State var isListVisible = true + + let gridLayout = [ + GridItem(.flexible()) + ] + + var body: some View { + ScrollView { + VStack(alignment: .leading) { + Spacer() + Button(action: { + isListVisible.toggle() + }) { + + Text("Episodes") + .font(.title) + .fontWeight(.bold) + .foregroundColor(Color.purple) + .padding(.leading, 8.0) + Image(systemName: isListVisible ? "chevron.up" : "chevron.down") + .foregroundColor(Color.pink) + Spacer() + Text("Tout Voir") + .fontWeight(.bold) + .foregroundColor(Color.purple) + .padding(.trailing, 12.0) + } + if isListVisible { + LazyVGrid(columns: gridLayout, spacing: 5) { + ForEach(episodes) { episode in + VStack(alignment: .leading) { + Text(episode.date) + .font(.subheadline) + .fontWeight(.bold) + .foregroundColor(Color.gray) + Text(episode.titre) + .font(.title2) + .fontWeight(.bold) + Text(episode.description) + .fontWeight(.medium) + .foregroundColor(Color.gray) + .lineLimit(2) + .padding(.vertical, 0.0) + + HStack{ + Image(systemName: "play.circle") + .padding(.trailing, 2.0) + .scaleEffect(1.7) + .foregroundColor(Color.purple) + Text(episode.heure) + .font(.headline) + .foregroundColor(Color.purple) + Spacer() + Image(systemName: "ellipsis") + } + .padding(1.0) + } + .padding() + Divider() + } + } + .listStyle(.plain) + .onAppear { + let stub = Stub() + stub.getEpisodes { (episodes, error) in + if let episodes = episodes { + self.episodes = episodes + } + } + } + } + } +// .background(Color.white) + + } + } +} + + diff --git a/Sources/MySwiftUiTests/MySwiftUiTests.swift b/Sources/MySwiftUiTests/MySwiftUiTests.swift new file mode 100644 index 0000000..995e696 --- /dev/null +++ b/Sources/MySwiftUiTests/MySwiftUiTests.swift @@ -0,0 +1,36 @@ +// +// MySwiftUiTests.swift +// MySwiftUiTests +// +// Created by etudiant on 11/05/2023. +// + +import XCTest +@testable import MySwiftUi + +final class MySwiftUiTests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // This is an example of a functional test case. + // Use XCTAssert and related functions to verify your tests produce the correct results. + // Any test you write for XCTest can be annotated as throws and async. + // Mark your test throws to produce an unexpected failure when your test encounters an uncaught error. + // Mark your test async to allow awaiting for asynchronous code to complete. Check the results with assertions afterwards. + } + + func testPerformanceExample() throws { + // This is an example of a performance test case. + self.measure { + // Put the code you want to measure the time of here. + } + } + +} diff --git a/Sources/MySwiftUiUITests/MySwiftUiUITests.swift b/Sources/MySwiftUiUITests/MySwiftUiUITests.swift new file mode 100644 index 0000000..b71730a --- /dev/null +++ b/Sources/MySwiftUiUITests/MySwiftUiUITests.swift @@ -0,0 +1,41 @@ +// +// MySwiftUiUITests.swift +// MySwiftUiUITests +// +// Created by etudiant on 11/05/2023. +// + +import XCTest + +final class MySwiftUiUITests: XCTestCase { + + override func setUpWithError() throws { + // Put setup code here. This method is called before the invocation of each test method in the class. + + // In UI tests it is usually best to stop immediately when a failure occurs. + continueAfterFailure = false + + // In UI tests it’s important to set the initial state - such as interface orientation - required for your tests before they run. The setUp method is a good place to do this. + } + + override func tearDownWithError() throws { + // Put teardown code here. This method is called after the invocation of each test method in the class. + } + + func testExample() throws { + // UI tests must launch the application that they test. + let app = XCUIApplication() + app.launch() + + // Use XCTAssert and related functions to verify your tests produce the correct results. + } + + func testLaunchPerformance() throws { + if #available(macOS 10.15, iOS 13.0, tvOS 13.0, watchOS 7.0, *) { + // This measures how long it takes to launch your application. + measure(metrics: [XCTApplicationLaunchMetric()]) { + XCUIApplication().launch() + } + } + } +} diff --git a/Sources/MySwiftUiUITests/MySwiftUiUITestsLaunchTests.swift b/Sources/MySwiftUiUITests/MySwiftUiUITestsLaunchTests.swift new file mode 100644 index 0000000..803a51a --- /dev/null +++ b/Sources/MySwiftUiUITests/MySwiftUiUITestsLaunchTests.swift @@ -0,0 +1,32 @@ +// +// MySwiftUiUITestsLaunchTests.swift +// MySwiftUiUITests +// +// Created by etudiant on 11/05/2023. +// + +import XCTest + +final class MySwiftUiUITestsLaunchTests: XCTestCase { + + override class var runsForEachTargetApplicationUIConfiguration: Bool { + true + } + + override func setUpWithError() throws { + continueAfterFailure = false + } + + func testLaunch() throws { + let app = XCUIApplication() + app.launch() + + // Insert steps here to perform after app launch but before taking a screenshot, + // such as logging into a test account or navigating somewhere in the app + + let attachment = XCTAttachment(screenshot: app.screenshot()) + attachment.name = "Launch Screen" + attachment.lifetime = .keepAlways + add(attachment) + } +}