parent
2423e7db15
commit
de946f59e7
@ -0,0 +1,19 @@
|
||||
//
|
||||
// Colors.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
public struct WtaColor{
|
||||
|
||||
static let cololor = Color("Color")
|
||||
static let dark = Color("dark")
|
||||
static let black_1 = Color("black_1")
|
||||
static let black_2 = Color("black_2")
|
||||
static let white = Color("white")
|
||||
static let font_icon = Color("font_icon")
|
||||
|
||||
}
|
@ -0,0 +1,12 @@
|
||||
//
|
||||
// Image.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
public struct WpaImage {
|
||||
static let flags = Image("Background")
|
||||
}
|
After Width: | Height: | Size: 5.2 KiB |
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "51nL7olRzxL._SL1200_-1.png",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "kisspng-racing-poster-cycling-wallpaper-cycling-5a6f64187e3a29.9835373915172495605171.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 121 KiB |
After Width: | Height: | Size: 37 KiB |
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "006187093.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
After Width: | Height: | Size: 28 KiB |
@ -0,0 +1,21 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"filename" : "41EiI8q5QJL.jpg",
|
||||
"idiom" : "universal",
|
||||
"scale" : "1x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "2x"
|
||||
},
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"scale" : "3x"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -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" : "1.000",
|
||||
"green" : "1.000",
|
||||
"red" : "1.000"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -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" : "1.000",
|
||||
"green" : "1.000",
|
||||
"red" : "1.000"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0.145",
|
||||
"green" : "0.088",
|
||||
"red" : "0.110"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0.105",
|
||||
"green" : "0.072",
|
||||
"red" : "0.034"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "0.069",
|
||||
"green" : "0.074",
|
||||
"red" : "0.074"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "1.000",
|
||||
"green" : "1.000",
|
||||
"red" : "1.000"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "1.000",
|
||||
"green" : "0.955",
|
||||
"red" : "0.883"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "1.000",
|
||||
"green" : "0.377",
|
||||
"red" : "0.300"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,38 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "1.000",
|
||||
"green" : "0.216",
|
||||
"red" : "0.588"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
},
|
||||
{
|
||||
"appearances" : [
|
||||
{
|
||||
"appearance" : "luminosity",
|
||||
"value" : "dark"
|
||||
}
|
||||
],
|
||||
"color" : {
|
||||
"color-space" : "srgb",
|
||||
"components" : {
|
||||
"alpha" : "1.000",
|
||||
"blue" : "1.000",
|
||||
"green" : "0.230",
|
||||
"red" : "0.587"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -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" : "1.000",
|
||||
"green" : "1.000",
|
||||
"red" : "1.000"
|
||||
}
|
||||
},
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,20 @@
|
||||
//
|
||||
// UIImage.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 11/05/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import UIKit
|
||||
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)
|
||||
}
|
||||
}
|
@ -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 = "<group>"; };
|
||||
/* 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 = "<group>";
|
||||
};
|
||||
6FC153152820EFB500D881F3 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6FC153142820EFB500D881F3 /* HelloCLT */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6FC153162820EFB500D881F3 /* HelloCLT */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
6FC153172820EFB500D881F3 /* main.swift */,
|
||||
);
|
||||
path = HelloCLT;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
6FC1531E2820EFD800D881F3 /* Frameworks */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
);
|
||||
name = Frameworks;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* 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 */;
|
||||
}
|
@ -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)
|
||||
|
@ -1,7 +0,0 @@
|
||||
.DS_Store
|
||||
/.build
|
||||
/Packages
|
||||
/*.xcodeproj
|
||||
xcuserdata/
|
||||
DerivedData/
|
||||
.swiftpm/xcode/package.xcworkspace/contents.xcworkspacedata
|
@ -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"]),
|
||||
]
|
||||
)
|
@ -1,3 +0,0 @@
|
||||
# HelloLibrary
|
||||
|
||||
A description of this package.
|
@ -1,6 +0,0 @@
|
||||
public struct HelloStruct {
|
||||
public private(set) var text = "Hello, World!"
|
||||
|
||||
public init() {
|
||||
}
|
||||
}
|
@ -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!")
|
||||
}
|
||||
}
|
@ -1,10 +0,0 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "group:HelloCLT/HelloCLT.xcodeproj">
|
||||
</FileRef>
|
||||
<FileRef
|
||||
location = "group:HelloLibrary">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -0,0 +1,28 @@
|
||||
//
|
||||
// Player.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
import SwiftUI
|
||||
public class Album {
|
||||
|
||||
|
||||
|
||||
public var nom : String = "LE MONDE DES MIONES"
|
||||
public var type : String = "France inter"
|
||||
public var auteur : String = "Jack break"
|
||||
public var image : String = "Image"
|
||||
public var image_album : String = "Background"
|
||||
public var ranking : Int = 12
|
||||
public var description : String = "mode reti opera dies erio dezas one vuote quenta ila caraie in present gratis del boias trios campolaire mode reti opera dies erio dezas one vuote quenta ila caraie in present gratis del boias trios campolaire "
|
||||
|
||||
init(nom: String, type: String, image: String, ranking: Int) {
|
||||
self.nom = nom
|
||||
self.type = type
|
||||
self.image = image
|
||||
self.ranking = ranking
|
||||
}
|
||||
}
|
@ -0,0 +1,26 @@
|
||||
//
|
||||
// Stub.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import Foundation
|
||||
public struct Stub {
|
||||
|
||||
func load()->Album{
|
||||
|
||||
return Album(nom: "LE MOINE", type: "France Culture", image: "Moine", ranking: 12)
|
||||
}
|
||||
|
||||
func loadAll()->[Album]{
|
||||
|
||||
return [Album(nom: "LE MOINE", type: "France Culture", image: "Moine", ranking: 12),
|
||||
Album(nom: "MONDIO", type: "Monde Culture", image: "Image", ranking: 12),
|
||||
Album(nom: "CHA", type: "Monde Culture ", image: "Image", ranking: 122),
|
||||
Album(nom: "Indian d'Amerique du nord", type: "From India ", image: "Indien", ranking: 122)
|
||||
]
|
||||
}
|
||||
|
||||
}
|
||||
// environnement(.\
|
@ -0,0 +1,666 @@
|
||||
// !$*UTF8*$!
|
||||
{
|
||||
archiveVersion = 1;
|
||||
classes = {
|
||||
};
|
||||
objectVersion = 56;
|
||||
objects = {
|
||||
|
||||
/* Begin PBXBuildFile section */
|
||||
0ABB94E02A14EAEB000027A9 /* LecteurView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ABB94DF2A14EAEB000027A9 /* LecteurView.swift */; };
|
||||
0ABB94E22A14F4E9000027A9 /* BottomBar.swift in Sources */ = {isa = PBXBuildFile; fileRef = 0ABB94E12A14F4E9000027A9 /* BottomBar.swift */; };
|
||||
EC4861E22A1395B800CACD89 /* Bibliotheque.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC4861E12A1395B800CACD89 /* Bibliotheque.swift */; };
|
||||
EC4861E42A13979800CACD89 /* BookCard.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC4861E32A13979800CACD89 /* BookCard.swift */; };
|
||||
EC6D6A692A0A3C8200616F92 /* MyApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A682A0A3C8200616F92 /* MyApp.swift */; };
|
||||
EC6D6A6B2A0A3C8200616F92 /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A6A2A0A3C8200616F92 /* ContentView.swift */; };
|
||||
EC6D6A6D2A0A3C8300616F92 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC6D6A6C2A0A3C8300616F92 /* Assets.xcassets */; };
|
||||
EC6D6A702A0A3C8300616F92 /* Preview Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC6D6A6F2A0A3C8300616F92 /* Preview Assets.xcassets */; };
|
||||
EC6D6A7A2A0A3C8300616F92 /* MyFirstProjectTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A792A0A3C8300616F92 /* MyFirstProjectTests.swift */; };
|
||||
EC6D6A842A0A3C8300616F92 /* MyFirstProjectUITests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A832A0A3C8300616F92 /* MyFirstProjectUITests.swift */; };
|
||||
EC6D6A862A0A3C8300616F92 /* MyFirstProjectUITestsLaunchTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A852A0A3C8300616F92 /* MyFirstProjectUITestsLaunchTests.swift */; };
|
||||
EC6D6A942A0A446200616F92 /* CardImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A932A0A446200616F92 /* CardImage.swift */; };
|
||||
EC6D6A972A0A453200616F92 /* Media.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC6D6A962A0A453200616F92 /* Media.xcassets */; };
|
||||
EC6D6A992A0A45BD00616F92 /* Colors.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A982A0A45BD00616F92 /* Colors.swift */; };
|
||||
EC6D6A9B2A0A472E00616F92 /* Image.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = EC6D6A9A2A0A472E00616F92 /* Image.xcassets */; };
|
||||
EC6D6AA02A0A489000616F92 /* Album.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6A9F2A0A489000616F92 /* Album.swift */; };
|
||||
EC6D6AA22A0A48EB00616F92 /* Stub.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC6D6AA12A0A48EB00616F92 /* Stub.swift */; };
|
||||
EC9F0C4E2A0D005900605D80 /* UIImage.swift in Sources */ = {isa = PBXBuildFile; fileRef = EC9F0C4D2A0D005900605D80 /* UIImage.swift */; };
|
||||
ECA948FB2A1562A400225549 /* ListEpisodes.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA948FA2A1562A400225549 /* ListEpisodes.swift */; };
|
||||
ECA948FD2A16367D00225549 /* EpisodeItem.swift in Sources */ = {isa = PBXBuildFile; fileRef = ECA948FC2A16367D00225549 /* EpisodeItem.swift */; };
|
||||
/* End PBXBuildFile section */
|
||||
|
||||
/* Begin PBXContainerItemProxy section */
|
||||
EC6D6A762A0A3C8300616F92 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = EC6D6A5D2A0A3C8200616F92 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = EC6D6A642A0A3C8200616F92;
|
||||
remoteInfo = MyFirstProject;
|
||||
};
|
||||
EC6D6A802A0A3C8300616F92 /* PBXContainerItemProxy */ = {
|
||||
isa = PBXContainerItemProxy;
|
||||
containerPortal = EC6D6A5D2A0A3C8200616F92 /* Project object */;
|
||||
proxyType = 1;
|
||||
remoteGlobalIDString = EC6D6A642A0A3C8200616F92;
|
||||
remoteInfo = MyFirstProject;
|
||||
};
|
||||
/* End PBXContainerItemProxy section */
|
||||
|
||||
/* Begin PBXFileReference section */
|
||||
0ABB94DF2A14EAEB000027A9 /* LecteurView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = LecteurView.swift; sourceTree = "<group>"; };
|
||||
0ABB94E12A14F4E9000027A9 /* BottomBar.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BottomBar.swift; sourceTree = "<group>"; };
|
||||
EC4861E12A1395B800CACD89 /* Bibliotheque.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Bibliotheque.swift; sourceTree = "<group>"; };
|
||||
EC4861E32A13979800CACD89 /* BookCard.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BookCard.swift; sourceTree = "<group>"; };
|
||||
EC6D6A652A0A3C8200616F92 /* MyFirstProject.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MyFirstProject.app; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EC6D6A682A0A3C8200616F92 /* MyApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyApp.swift; sourceTree = "<group>"; };
|
||||
EC6D6A6A2A0A3C8200616F92 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = "<group>"; };
|
||||
EC6D6A6C2A0A3C8300616F92 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
|
||||
EC6D6A6F2A0A3C8300616F92 /* Preview Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = "Preview Assets.xcassets"; sourceTree = "<group>"; };
|
||||
EC6D6A752A0A3C8300616F92 /* MyFirstProjectTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyFirstProjectTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EC6D6A792A0A3C8300616F92 /* MyFirstProjectTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFirstProjectTests.swift; sourceTree = "<group>"; };
|
||||
EC6D6A7F2A0A3C8300616F92 /* MyFirstProjectUITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MyFirstProjectUITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||
EC6D6A832A0A3C8300616F92 /* MyFirstProjectUITests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFirstProjectUITests.swift; sourceTree = "<group>"; };
|
||||
EC6D6A852A0A3C8300616F92 /* MyFirstProjectUITestsLaunchTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = MyFirstProjectUITestsLaunchTests.swift; sourceTree = "<group>"; };
|
||||
EC6D6A932A0A446200616F92 /* CardImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = CardImage.swift; sourceTree = "<group>"; usesTabs = 0; };
|
||||
EC6D6A962A0A453200616F92 /* Media.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Media.xcassets; sourceTree = "<group>"; };
|
||||
EC6D6A982A0A45BD00616F92 /* Colors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Colors.swift; sourceTree = "<group>"; };
|
||||
EC6D6A9A2A0A472E00616F92 /* Image.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Image.xcassets; sourceTree = "<group>"; };
|
||||
EC6D6A9F2A0A489000616F92 /* Album.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Album.swift; sourceTree = "<group>"; };
|
||||
EC6D6AA12A0A48EB00616F92 /* Stub.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Stub.swift; sourceTree = "<group>"; };
|
||||
EC9F0C4D2A0D005900605D80 /* UIImage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = UIImage.swift; sourceTree = "<group>"; };
|
||||
ECA948FA2A1562A400225549 /* ListEpisodes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ListEpisodes.swift; sourceTree = "<group>"; };
|
||||
ECA948FC2A16367D00225549 /* EpisodeItem.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = EpisodeItem.swift; sourceTree = "<group>"; };
|
||||
/* End PBXFileReference section */
|
||||
|
||||
/* Begin PBXFrameworksBuildPhase section */
|
||||
EC6D6A622A0A3C8200616F92 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EC6D6A722A0A3C8300616F92 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EC6D6A7C2A0A3C8300616F92 /* Frameworks */ = {
|
||||
isa = PBXFrameworksBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXFrameworksBuildPhase section */
|
||||
|
||||
/* Begin PBXGroup section */
|
||||
EC6D6A5C2A0A3C8200616F92 = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC9F0C4C2A0D003000605D80 /* Extensions */,
|
||||
EC6D6A9E2A0A487800616F92 /* Model */,
|
||||
EC6D6A952A0A451000616F92 /* Assets */,
|
||||
EC6D6A672A0A3C8200616F92 /* MyFirstProject */,
|
||||
EC6D6A782A0A3C8300616F92 /* MyFirstProjectTests */,
|
||||
EC6D6A822A0A3C8300616F92 /* MyFirstProjectUITests */,
|
||||
EC6D6A662A0A3C8200616F92 /* Products */,
|
||||
);
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A662A0A3C8200616F92 /* Products */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A652A0A3C8200616F92 /* MyFirstProject.app */,
|
||||
EC6D6A752A0A3C8300616F92 /* MyFirstProjectTests.xctest */,
|
||||
EC6D6A7F2A0A3C8300616F92 /* MyFirstProjectUITests.xctest */,
|
||||
);
|
||||
name = Products;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A672A0A3C8200616F92 /* MyFirstProject */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A922A0A441100616F92 /* View */,
|
||||
EC6D6A682A0A3C8200616F92 /* MyApp.swift */,
|
||||
EC6D6A6A2A0A3C8200616F92 /* ContentView.swift */,
|
||||
EC6D6A6C2A0A3C8300616F92 /* Assets.xcassets */,
|
||||
EC6D6A6E2A0A3C8300616F92 /* Preview Content */,
|
||||
);
|
||||
path = MyFirstProject;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A6E2A0A3C8300616F92 /* Preview Content */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A6F2A0A3C8300616F92 /* Preview Assets.xcassets */,
|
||||
);
|
||||
path = "Preview Content";
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A782A0A3C8300616F92 /* MyFirstProjectTests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A792A0A3C8300616F92 /* MyFirstProjectTests.swift */,
|
||||
);
|
||||
path = MyFirstProjectTests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A822A0A3C8300616F92 /* MyFirstProjectUITests */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A832A0A3C8300616F92 /* MyFirstProjectUITests.swift */,
|
||||
EC6D6A852A0A3C8300616F92 /* MyFirstProjectUITestsLaunchTests.swift */,
|
||||
);
|
||||
path = MyFirstProjectUITests;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A922A0A441100616F92 /* View */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A932A0A446200616F92 /* CardImage.swift */,
|
||||
EC4861E12A1395B800CACD89 /* Bibliotheque.swift */,
|
||||
EC4861E32A13979800CACD89 /* BookCard.swift */,
|
||||
0ABB94DF2A14EAEB000027A9 /* LecteurView.swift */,
|
||||
0ABB94E12A14F4E9000027A9 /* BottomBar.swift */,
|
||||
ECA948FA2A1562A400225549 /* ListEpisodes.swift */,
|
||||
ECA948FC2A16367D00225549 /* EpisodeItem.swift */,
|
||||
);
|
||||
path = View;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A952A0A451000616F92 /* Assets */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A962A0A453200616F92 /* Media.xcassets */,
|
||||
EC6D6A982A0A45BD00616F92 /* Colors.swift */,
|
||||
EC6D6A9A2A0A472E00616F92 /* Image.xcassets */,
|
||||
);
|
||||
path = Assets;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC6D6A9E2A0A487800616F92 /* Model */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC6D6A9F2A0A489000616F92 /* Album.swift */,
|
||||
EC6D6AA12A0A48EB00616F92 /* Stub.swift */,
|
||||
);
|
||||
path = Model;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
EC9F0C4C2A0D003000605D80 /* Extensions */ = {
|
||||
isa = PBXGroup;
|
||||
children = (
|
||||
EC9F0C4D2A0D005900605D80 /* UIImage.swift */,
|
||||
);
|
||||
path = Extensions;
|
||||
sourceTree = "<group>";
|
||||
};
|
||||
/* End PBXGroup section */
|
||||
|
||||
/* Begin PBXNativeTarget section */
|
||||
EC6D6A642A0A3C8200616F92 /* MyFirstProject */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = EC6D6A892A0A3C8300616F92 /* Build configuration list for PBXNativeTarget "MyFirstProject" */;
|
||||
buildPhases = (
|
||||
EC6D6A612A0A3C8200616F92 /* Sources */,
|
||||
EC6D6A622A0A3C8200616F92 /* Frameworks */,
|
||||
EC6D6A632A0A3C8200616F92 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
);
|
||||
name = MyFirstProject;
|
||||
productName = MyFirstProject;
|
||||
productReference = EC6D6A652A0A3C8200616F92 /* MyFirstProject.app */;
|
||||
productType = "com.apple.product-type.application";
|
||||
};
|
||||
EC6D6A742A0A3C8300616F92 /* MyFirstProjectTests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = EC6D6A8C2A0A3C8300616F92 /* Build configuration list for PBXNativeTarget "MyFirstProjectTests" */;
|
||||
buildPhases = (
|
||||
EC6D6A712A0A3C8300616F92 /* Sources */,
|
||||
EC6D6A722A0A3C8300616F92 /* Frameworks */,
|
||||
EC6D6A732A0A3C8300616F92 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
EC6D6A772A0A3C8300616F92 /* PBXTargetDependency */,
|
||||
);
|
||||
name = MyFirstProjectTests;
|
||||
productName = MyFirstProjectTests;
|
||||
productReference = EC6D6A752A0A3C8300616F92 /* MyFirstProjectTests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.unit-test";
|
||||
};
|
||||
EC6D6A7E2A0A3C8300616F92 /* MyFirstProjectUITests */ = {
|
||||
isa = PBXNativeTarget;
|
||||
buildConfigurationList = EC6D6A8F2A0A3C8300616F92 /* Build configuration list for PBXNativeTarget "MyFirstProjectUITests" */;
|
||||
buildPhases = (
|
||||
EC6D6A7B2A0A3C8300616F92 /* Sources */,
|
||||
EC6D6A7C2A0A3C8300616F92 /* Frameworks */,
|
||||
EC6D6A7D2A0A3C8300616F92 /* Resources */,
|
||||
);
|
||||
buildRules = (
|
||||
);
|
||||
dependencies = (
|
||||
EC6D6A812A0A3C8300616F92 /* PBXTargetDependency */,
|
||||
);
|
||||
name = MyFirstProjectUITests;
|
||||
productName = MyFirstProjectUITests;
|
||||
productReference = EC6D6A7F2A0A3C8300616F92 /* MyFirstProjectUITests.xctest */;
|
||||
productType = "com.apple.product-type.bundle.ui-testing";
|
||||
};
|
||||
/* End PBXNativeTarget section */
|
||||
|
||||
/* Begin PBXProject section */
|
||||
EC6D6A5D2A0A3C8200616F92 /* Project object */ = {
|
||||
isa = PBXProject;
|
||||
attributes = {
|
||||
BuildIndependentTargetsInParallel = 1;
|
||||
LastSwiftUpdateCheck = 1410;
|
||||
LastUpgradeCheck = 1410;
|
||||
TargetAttributes = {
|
||||
EC6D6A642A0A3C8200616F92 = {
|
||||
CreatedOnToolsVersion = 14.1;
|
||||
};
|
||||
EC6D6A742A0A3C8300616F92 = {
|
||||
CreatedOnToolsVersion = 14.1;
|
||||
TestTargetID = EC6D6A642A0A3C8200616F92;
|
||||
};
|
||||
EC6D6A7E2A0A3C8300616F92 = {
|
||||
CreatedOnToolsVersion = 14.1;
|
||||
TestTargetID = EC6D6A642A0A3C8200616F92;
|
||||
};
|
||||
};
|
||||
};
|
||||
buildConfigurationList = EC6D6A602A0A3C8200616F92 /* Build configuration list for PBXProject "MyFirstProject" */;
|
||||
compatibilityVersion = "Xcode 14.0";
|
||||
developmentRegion = en;
|
||||
hasScannedForEncodings = 0;
|
||||
knownRegions = (
|
||||
en,
|
||||
Base,
|
||||
);
|
||||
mainGroup = EC6D6A5C2A0A3C8200616F92;
|
||||
productRefGroup = EC6D6A662A0A3C8200616F92 /* Products */;
|
||||
projectDirPath = "";
|
||||
projectRoot = "";
|
||||
targets = (
|
||||
EC6D6A642A0A3C8200616F92 /* MyFirstProject */,
|
||||
EC6D6A742A0A3C8300616F92 /* MyFirstProjectTests */,
|
||||
EC6D6A7E2A0A3C8300616F92 /* MyFirstProjectUITests */,
|
||||
);
|
||||
};
|
||||
/* End PBXProject section */
|
||||
|
||||
/* Begin PBXResourcesBuildPhase section */
|
||||
EC6D6A632A0A3C8200616F92 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EC6D6A702A0A3C8300616F92 /* Preview Assets.xcassets in Resources */,
|
||||
EC6D6A9B2A0A472E00616F92 /* Image.xcassets in Resources */,
|
||||
EC6D6A972A0A453200616F92 /* Media.xcassets in Resources */,
|
||||
EC6D6A6D2A0A3C8300616F92 /* Assets.xcassets in Resources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EC6D6A732A0A3C8300616F92 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EC6D6A7D2A0A3C8300616F92 /* Resources */ = {
|
||||
isa = PBXResourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXResourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXSourcesBuildPhase section */
|
||||
EC6D6A612A0A3C8200616F92 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EC6D6A6B2A0A3C8200616F92 /* ContentView.swift in Sources */,
|
||||
EC9F0C4E2A0D005900605D80 /* UIImage.swift in Sources */,
|
||||
EC4861E42A13979800CACD89 /* BookCard.swift in Sources */,
|
||||
EC6D6A992A0A45BD00616F92 /* Colors.swift in Sources */,
|
||||
ECA948FD2A16367D00225549 /* EpisodeItem.swift in Sources */,
|
||||
EC4861E22A1395B800CACD89 /* Bibliotheque.swift in Sources */,
|
||||
EC6D6A942A0A446200616F92 /* CardImage.swift in Sources */,
|
||||
EC6D6A692A0A3C8200616F92 /* MyApp.swift in Sources */,
|
||||
0ABB94E02A14EAEB000027A9 /* LecteurView.swift in Sources */,
|
||||
0ABB94E22A14F4E9000027A9 /* BottomBar.swift in Sources */,
|
||||
EC6D6AA02A0A489000616F92 /* Album.swift in Sources */,
|
||||
EC6D6AA22A0A48EB00616F92 /* Stub.swift in Sources */,
|
||||
ECA948FB2A1562A400225549 /* ListEpisodes.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EC6D6A712A0A3C8300616F92 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EC6D6A7A2A0A3C8300616F92 /* MyFirstProjectTests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
EC6D6A7B2A0A3C8300616F92 /* Sources */ = {
|
||||
isa = PBXSourcesBuildPhase;
|
||||
buildActionMask = 2147483647;
|
||||
files = (
|
||||
EC6D6A842A0A3C8300616F92 /* MyFirstProjectUITests.swift in Sources */,
|
||||
EC6D6A862A0A3C8300616F92 /* MyFirstProjectUITestsLaunchTests.swift in Sources */,
|
||||
);
|
||||
runOnlyForDeploymentPostprocessing = 0;
|
||||
};
|
||||
/* End PBXSourcesBuildPhase section */
|
||||
|
||||
/* Begin PBXTargetDependency section */
|
||||
EC6D6A772A0A3C8300616F92 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = EC6D6A642A0A3C8200616F92 /* MyFirstProject */;
|
||||
targetProxy = EC6D6A762A0A3C8300616F92 /* PBXContainerItemProxy */;
|
||||
};
|
||||
EC6D6A812A0A3C8300616F92 /* PBXTargetDependency */ = {
|
||||
isa = PBXTargetDependency;
|
||||
target = EC6D6A642A0A3C8200616F92 /* MyFirstProject */;
|
||||
targetProxy = EC6D6A802A0A3C8300616F92 /* PBXContainerItemProxy */;
|
||||
};
|
||||
/* End PBXTargetDependency section */
|
||||
|
||||
/* Begin XCBuildConfiguration section */
|
||||
EC6D6A872A0A3C8300616F92 /* 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;
|
||||
};
|
||||
EC6D6A882A0A3C8300616F92 /* 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;
|
||||
};
|
||||
EC6D6A8A2A0A3C8300616F92 /* 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 = "\"MyFirstProject/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.MyFirstProject;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EC6D6A8B2A0A3C8300616F92 /* 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 = "\"MyFirstProject/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.MyFirstProject;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = YES;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
EC6D6A8D2A0A3C8300616F92 /* 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.MyFirstProjectTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MyFirstProject.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MyFirstProject";
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EC6D6A8E2A0A3C8300616F92 /* 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.MyFirstProjectTests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MyFirstProject.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MyFirstProject";
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
EC6D6A902A0A3C8300616F92 /* 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.MyFirstProjectUITests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_TARGET_NAME = MyFirstProject;
|
||||
};
|
||||
name = Debug;
|
||||
};
|
||||
EC6D6A912A0A3C8300616F92 /* 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.MyFirstProjectUITests;
|
||||
PRODUCT_NAME = "$(TARGET_NAME)";
|
||||
SWIFT_EMIT_LOC_STRINGS = NO;
|
||||
SWIFT_VERSION = 5.0;
|
||||
TARGETED_DEVICE_FAMILY = "1,2";
|
||||
TEST_TARGET_NAME = MyFirstProject;
|
||||
};
|
||||
name = Release;
|
||||
};
|
||||
/* End XCBuildConfiguration section */
|
||||
|
||||
/* Begin XCConfigurationList section */
|
||||
EC6D6A602A0A3C8200616F92 /* Build configuration list for PBXProject "MyFirstProject" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EC6D6A872A0A3C8300616F92 /* Debug */,
|
||||
EC6D6A882A0A3C8300616F92 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
EC6D6A892A0A3C8300616F92 /* Build configuration list for PBXNativeTarget "MyFirstProject" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EC6D6A8A2A0A3C8300616F92 /* Debug */,
|
||||
EC6D6A8B2A0A3C8300616F92 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
EC6D6A8C2A0A3C8300616F92 /* Build configuration list for PBXNativeTarget "MyFirstProjectTests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EC6D6A8D2A0A3C8300616F92 /* Debug */,
|
||||
EC6D6A8E2A0A3C8300616F92 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
EC6D6A8F2A0A3C8300616F92 /* Build configuration list for PBXNativeTarget "MyFirstProjectUITests" */ = {
|
||||
isa = XCConfigurationList;
|
||||
buildConfigurations = (
|
||||
EC6D6A902A0A3C8300616F92 /* Debug */,
|
||||
EC6D6A912A0A3C8300616F92 /* Release */,
|
||||
);
|
||||
defaultConfigurationIsVisible = 0;
|
||||
defaultConfigurationName = Release;
|
||||
};
|
||||
/* End XCConfigurationList section */
|
||||
};
|
||||
rootObject = EC6D6A5D2A0A3C8200616F92 /* Project object */;
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<Workspace
|
||||
version = "1.0">
|
||||
<FileRef
|
||||
location = "self:">
|
||||
</FileRef>
|
||||
</Workspace>
|
@ -0,0 +1,11 @@
|
||||
{
|
||||
"colors" : [
|
||||
{
|
||||
"idiom" : "universal"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
{
|
||||
"images" : [
|
||||
{
|
||||
"idiom" : "universal",
|
||||
"platform" : "ios",
|
||||
"size" : "1024x1024"
|
||||
}
|
||||
],
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,216 @@
|
||||
//
|
||||
// ContentView.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import Combine
|
||||
struct ContentView: View {
|
||||
var album : Album?
|
||||
@State private var isExpanded = false
|
||||
|
||||
var myContenView : CardImage?
|
||||
@State var isclicked : Bool = true
|
||||
@State public var color: Color = .white
|
||||
@Environment (\.presentationMode ) var presentationMode
|
||||
init(album: Album, myContenView: CardImage) {
|
||||
self.album = album
|
||||
self.myContenView = myContenView
|
||||
}
|
||||
private func createGridColumns() -> [GridItem] {
|
||||
return Array(repeating: GridItem(.flexible(), spacing: 10), count: 2)
|
||||
}
|
||||
var body: some View {
|
||||
|
||||
NavigationView{
|
||||
|
||||
ZStack(alignment: .top){
|
||||
ScrollView{
|
||||
|
||||
|
||||
VStack {
|
||||
|
||||
myContenView.onReceive(Just(UIImage(named: album?.image ?? "Background"))) { uiImage in
|
||||
if let averageColor = uiImage?.averageColor {
|
||||
self.color = Color(averageColor)
|
||||
}
|
||||
}.padding()
|
||||
|
||||
Text(album?.nom ?? "Nom")
|
||||
.font(.title2)
|
||||
.bold()
|
||||
HStack{
|
||||
Image("Image")
|
||||
.resizable()
|
||||
.scaledToFill()
|
||||
.frame(width: 25, height: 30)
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.white, lineWidth: 2)
|
||||
)
|
||||
.shadow(radius: 5)
|
||||
|
||||
Text(album?.type ?? "Type")
|
||||
.font(.title3)
|
||||
.bold()
|
||||
|
||||
Image(systemName: "chevron.right")
|
||||
}
|
||||
|
||||
Button(action: {
|
||||
self.isclicked = !isclicked
|
||||
}) {
|
||||
HStack{
|
||||
Image(systemName: isclicked ? "play.fill" : "pause.fill"); Text("Dernière épisode")
|
||||
|
||||
}.padding(.all )
|
||||
.background(WtaColor.white).foregroundColor(WtaColor.black_1)
|
||||
.cornerRadius(10)
|
||||
|
||||
}
|
||||
Grid(alignment : .leading){
|
||||
GridRow{
|
||||
Text(album?.description ?? "...").lineLimit(isExpanded ? nil : 2)
|
||||
.padding(.trailing, isExpanded ? 0 : 3).overlay(
|
||||
|
||||
Button(action: {
|
||||
isExpanded.toggle()
|
||||
}) {
|
||||
Text( !isExpanded ? "PLUS" : "MOINS").shadow(radius: 50 ).background(color)
|
||||
.foregroundColor(.indigo).bold().padding(.trailing)
|
||||
}.frame(alignment: .trailing).position(x:350,y:40)
|
||||
|
||||
)
|
||||
|
||||
|
||||
|
||||
}.padding()
|
||||
|
||||
GridRow( ){
|
||||
|
||||
HStack(){
|
||||
Image(systemName: "star.fill")
|
||||
Text("4,4")
|
||||
Text("(1,8 k)")
|
||||
Text(". science")
|
||||
} .padding(.leading)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ListEpisodes()
|
||||
Divider()
|
||||
|
||||
|
||||
}.background(color)
|
||||
|
||||
}.onAppear()
|
||||
|
||||
}.foregroundColor(WtaColor.cololor)
|
||||
|
||||
// toolnbar
|
||||
|
||||
|
||||
|
||||
.navigationBarItems(
|
||||
leading:
|
||||
Button(action: {
|
||||
presentationMode.wrappedValue.dismiss()
|
||||
}) {
|
||||
Grid(alignment: .top){
|
||||
GridRow {
|
||||
Image(systemName: "chevron.left")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.gray) )
|
||||
.background(Color.gray)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 10)
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
|
||||
trailing:
|
||||
Button(action: {
|
||||
// Action du bouton de droite
|
||||
}) {
|
||||
Grid(alignment: .trailing,horizontalSpacing: -15){
|
||||
GridRow {
|
||||
|
||||
Image(systemName: "arrow.down")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.gray) )
|
||||
.background(Color.gray)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 10)
|
||||
|
||||
|
||||
|
||||
Image(systemName: "pause.fill")
|
||||
.scaledToFill()
|
||||
.frame(width: 5, height: 1)
|
||||
.padding().overlay(Circle().stroke(color) )
|
||||
.background(Color.white)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 5)
|
||||
.position(x: 10,y:40)
|
||||
|
||||
|
||||
Image(systemName: "ellipsis")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.gray) )
|
||||
.background(Color.gray)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 10)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
}).background(color)
|
||||
.overlay(
|
||||
VStack{
|
||||
Spacer()
|
||||
|
||||
LecteurView(album: album).background()
|
||||
|
||||
}
|
||||
|
||||
)
|
||||
|
||||
//fi,
|
||||
}
|
||||
.navigationBarHidden(true)
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
struct ContentView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
// pour le thème
|
||||
Group{
|
||||
ContentView(album: Album(nom: "Augustin", type: "Rapp", image: "Image", ranking: 12),myContenView: CardImage(album: Stub().load()))
|
||||
|
||||
ContentView(album: Album(nom: "Augustin", type: "Rapp", image: "Image", ranking: 12),myContenView: CardImage(album: Stub().load())).environment(\.colorScheme, .dark)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
@ -0,0 +1,33 @@
|
||||
//
|
||||
// MyFirstProjectApp.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
@main
|
||||
struct MyApp: App {
|
||||
var body: some Scene {
|
||||
WindowGroup {
|
||||
BottomBar() }
|
||||
}
|
||||
}
|
||||
/*
|
||||
|
||||
Grid(alignment : .bottom){
|
||||
|
||||
GridRow{
|
||||
|
||||
PlayerView()
|
||||
}
|
||||
GridRow{
|
||||
|
||||
LecteurView(album: album)
|
||||
}
|
||||
|
||||
|
||||
|
||||
}
|
||||
*/
|
@ -0,0 +1,6 @@
|
||||
{
|
||||
"info" : {
|
||||
"author" : "xcode",
|
||||
"version" : 1
|
||||
}
|
||||
}
|
@ -0,0 +1,87 @@
|
||||
//
|
||||
// Bibliotheque.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 16/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct Bibliotheque: View {
|
||||
var body: some View {
|
||||
NavigationView{
|
||||
NavigationStack{
|
||||
ScrollView{
|
||||
LazyVGrid(columns: createGridColumns(), spacing: 10) {
|
||||
ForEach(Stub().loadAll(), id: \.nom) { item in
|
||||
NavigationLink{
|
||||
ContentView(album: item,myContenView: CardImage(album: item))
|
||||
} label: {
|
||||
BookCard(album: item)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
.navigationBarHidden(true)
|
||||
|
||||
|
||||
|
||||
}.navigationTitle("Podcasts")
|
||||
|
||||
/* .navigationBarItems(
|
||||
|
||||
leading:
|
||||
Button(action: {
|
||||
|
||||
}) {
|
||||
Grid(alignment: .top){
|
||||
GridRow {
|
||||
Image(systemName: "chevron.left")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.gray) )
|
||||
.background(Color.gray)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 10)
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
trailing: Button(action: {
|
||||
// Action du bouton de droite
|
||||
}) {
|
||||
|
||||
|
||||
Image(systemName: "ellipsis")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.gray) )
|
||||
.background(Color.gray)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 10)
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
)*/
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
struct Bibliotheque_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
Bibliotheque()
|
||||
}
|
||||
}
|
||||
private func createGridColumns() -> [GridItem] {
|
||||
return Array(repeating: GridItem(.flexible(), spacing: 1), count: 2)
|
||||
}
|
||||
|
@ -0,0 +1,41 @@
|
||||
//
|
||||
// BookCard.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 16/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct BookCard: View {
|
||||
var album : Album?
|
||||
init(album: Album) {
|
||||
self.album = album
|
||||
}
|
||||
var body: some View {
|
||||
Grid(alignment : .leading){
|
||||
GridRow{
|
||||
Rectangle() .background(.gray)
|
||||
.overlay(
|
||||
Image(album?.image ?? "Image")
|
||||
)
|
||||
.frame(width: 180,height: 180)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 5))
|
||||
}
|
||||
GridRow(){
|
||||
VStack(alignment:.leading){
|
||||
Text(album?.nom ?? "").font(.subheadline).bold()
|
||||
|
||||
Text("Mise à jour Mardi").font(.caption)
|
||||
}
|
||||
}
|
||||
}.foregroundColor(WtaColor.black_2)
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
struct BookCard_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
BookCard(album: Stub().load())
|
||||
}
|
||||
}
|
@ -0,0 +1,86 @@
|
||||
import SwiftUI
|
||||
import UIKit
|
||||
struct BottomBar: View {
|
||||
@State private var selectedTab: Tab = .bibliotheque
|
||||
|
||||
enum Tab {
|
||||
case home
|
||||
case bibliotheque
|
||||
case favorites
|
||||
case settings
|
||||
}
|
||||
|
||||
var album : Album?
|
||||
var isDisplaylector : Bool = false
|
||||
var body: some View {
|
||||
|
||||
TabView(selection: $selectedTab) {
|
||||
Group{
|
||||
HomeView()
|
||||
.tabItem {
|
||||
Image(systemName: "play.circle.fill")
|
||||
|
||||
Text("Ecouter")
|
||||
}
|
||||
.tag(Tab.home)
|
||||
|
||||
FavoritesView()
|
||||
.tabItem {
|
||||
Image(systemName: "tablecells")
|
||||
Text("Favoris")
|
||||
}.foregroundColor(WtaColor.font_icon)
|
||||
.tag(Tab.favorites)
|
||||
|
||||
BibliothequeView()
|
||||
.tabItem {
|
||||
Image(systemName: "list.bullet.below.rectangle")
|
||||
Text("Biblithèque")
|
||||
}
|
||||
.tag(Tab.bibliotheque)
|
||||
|
||||
SettingsView()
|
||||
.tabItem {
|
||||
Image(systemName: "shower.sidejet.fill")
|
||||
Text("Recherche")
|
||||
}
|
||||
.tag(Tab.settings)
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
struct HomeView: View {
|
||||
var body: some View {
|
||||
Text("Explorer")
|
||||
}
|
||||
}
|
||||
|
||||
struct FavoritesView: View {
|
||||
var body: some View {
|
||||
Text("..........")
|
||||
}
|
||||
}
|
||||
struct BibliothequeView: View {
|
||||
var body: some View {
|
||||
|
||||
Bibliotheque()
|
||||
|
||||
}
|
||||
}
|
||||
struct SettingsView: View {
|
||||
var body: some View {
|
||||
Text("..........")
|
||||
}
|
||||
|
||||
|
||||
|
||||
struct BottomBar_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
BottomBar(album: Stub().load())
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,42 @@
|
||||
//
|
||||
// MyContenView.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
import Combine
|
||||
|
||||
struct CardImage: View {
|
||||
@State public var color: Color = .clear
|
||||
|
||||
var album : Album?
|
||||
var body: some View {
|
||||
|
||||
|
||||
|
||||
GridRow{
|
||||
Rectangle() .background(.gray)
|
||||
.overlay(
|
||||
Image(album?.image ?? "Image")
|
||||
)
|
||||
.frame(width: 180,height: 180)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 20))
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
struct CardImage_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
CardImage()
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
@ -0,0 +1,58 @@
|
||||
//
|
||||
// EpisodeItem.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 18/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct EpisodeItem: View {
|
||||
var body: some View {
|
||||
ZStack{
|
||||
VStack(alignment: .leading){
|
||||
Text("Mardi").font(.caption)
|
||||
Text("ADN poubelle : tout n'est pas à jeter").font(.title).bold()
|
||||
Text("durée : 00:56:13 - La science, CQFD - par : Etienne Klein - le néant, la grandre question !").font(.title3).lineLimit(3)
|
||||
|
||||
|
||||
Grid{
|
||||
GridRow{
|
||||
Group{
|
||||
Image(systemName: "play.fill")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
.clipShape(Circle())
|
||||
.overlay(
|
||||
Circle().stroke(Color.gray) )
|
||||
.background(Color.gray)
|
||||
.clipShape(Circle())
|
||||
.shadow(radius: 10)
|
||||
Text("6 min")
|
||||
}.foregroundColor(WtaColor.font_icon)
|
||||
|
||||
|
||||
Divider()
|
||||
|
||||
|
||||
Image(systemName: "ellipsis")
|
||||
.scaledToFill()
|
||||
.frame(width: 20, height: 10)
|
||||
.padding()
|
||||
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}.padding()
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct EpisodeItem_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
EpisodeItem()
|
||||
}
|
||||
}
|
@ -0,0 +1,52 @@
|
||||
//
|
||||
// LecteurViw.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by Sagbo Augustin AFFOGNON on 17/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct LecteurView: View {
|
||||
var album : Album?
|
||||
var body: some View {
|
||||
ZStack{
|
||||
|
||||
Grid{
|
||||
GridRow(alignment: .center){
|
||||
|
||||
HStack(){
|
||||
Spacer()
|
||||
Image(album?.image ?? "Image")
|
||||
.resizable()
|
||||
.scaledToFill()
|
||||
.frame(width: 80, height: 70)
|
||||
.clipShape(RoundedRectangle(cornerRadius: 10))
|
||||
.shadow(radius: 5)
|
||||
}
|
||||
VStack(spacing : 2){
|
||||
Text(album?.auteur ?? "No Author" ).lineLimit(1)
|
||||
Text("29 Avril 2021").lineLimit(1)
|
||||
}
|
||||
|
||||
HStack(spacing : 30){
|
||||
Image(systemName: "play.fill").resizable()
|
||||
.scaledToFill().frame(width :20,height: 25)
|
||||
Image(systemName: "goforward.30").resizable()
|
||||
.scaledToFill().frame(width :40,height: 25)
|
||||
|
||||
}.frame(height: 50).padding().padding(.horizontal)
|
||||
|
||||
|
||||
} .padding(.horizontal)
|
||||
|
||||
}.background().padding(.vertical).shadow(color: .gray, radius: 80)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct LecteurView_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
LecteurView(album: Stub().load())
|
||||
}
|
||||
}
|
@ -0,0 +1,54 @@
|
||||
//
|
||||
// ListEpisodes.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 17/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct ListEpisodes: View {
|
||||
|
||||
|
||||
|
||||
var body: some View {
|
||||
ZStack{
|
||||
|
||||
Grid{
|
||||
|
||||
GridRow(alignment: .top){
|
||||
|
||||
HStack{
|
||||
Button(action: {}){
|
||||
Text("Episodes")
|
||||
Image(systemName: "chevron.down").bold().foregroundColor(WtaColor.font_icon)
|
||||
}.padding()
|
||||
|
||||
}
|
||||
Divider()
|
||||
Button(action : {}){
|
||||
Text("Tout voir").foregroundColor(WtaColor.font_icon)
|
||||
}.padding()
|
||||
}
|
||||
|
||||
List {
|
||||
ForEach(Stub().loadAll(), id: \.nom) { element in
|
||||
EpisodeItem()
|
||||
}
|
||||
}
|
||||
.listStyle(GroupedListStyle())
|
||||
|
||||
}.padding(.vertical).background()
|
||||
|
||||
|
||||
}
|
||||
.frame(minHeight: 800)
|
||||
.background(Color.white).foregroundColor(WtaColor.black_2).padding(.vertical)
|
||||
}
|
||||
}
|
||||
|
||||
struct ListEpisodes_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
ListEpisodes()
|
||||
}
|
||||
}
|
@ -0,0 +1,23 @@
|
||||
//
|
||||
// Toolbar.swift
|
||||
// MyFirstProject
|
||||
//
|
||||
// Created by etudiant on 11/05/2023.
|
||||
//
|
||||
|
||||
import SwiftUI
|
||||
|
||||
struct Toolbar: View {
|
||||
|
||||
var body: some View {
|
||||
VStack{
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
struct Toolbar_Previews: PreviewProvider {
|
||||
static var previews: some View {
|
||||
Toolbar()
|
||||
}
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
//
|
||||
// MyFirstProjectTests.swift
|
||||
// MyFirstProjectTests
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
@testable import MyFirstProject
|
||||
|
||||
final class MyFirstProjectTests: 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.
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,32 @@
|
||||
//
|
||||
// MyFirstProjectUITestsLaunchTests.swift
|
||||
// MyFirstProjectUITests
|
||||
//
|
||||
// Created by etudiant on 09/05/2023.
|
||||
//
|
||||
|
||||
import XCTest
|
||||
|
||||
final class MyFirstProjectUITestsLaunchTests: 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)
|
||||
}
|
||||
}
|
Loading…
Reference in new issue